您现在的位置是:首页 >学无止境 >如何避免软件bug?优化你的测试流程和设计用例方法就对啦!网站首页学无止境
如何避免软件bug?优化你的测试流程和设计用例方法就对啦!
目录
引言
对于大多数软件开发者和测试人员而言,避免出现bug是一项非常重要的任务。但是,在实际的开发过程中,我们经常容易忽略一些细节或者流程上的问题,导致测试的结果不尽如人意。因此,对于软件测试的流程和用例设计方法进行优化是非常有必要的。
为了更好地帮助你成功hold住bug,本文将介绍一些非常实用的软件测试基础知识,包括测试流程、用例设计方法等方面,这些内容都是来自于专业的软件测试领域,经过实践和总结得出的经验。相信只要你能够认真学习并灵活应用这些知识,就一定可以在软件测试方面取得更好的效果。
一、测试流程
测试流程:需求分析-->编写测试计划-->测试设计-->测试执行-->测试结果输出
需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。
测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书制定项目总体计划,内容包括测试范围,环境资源的准备,进度安排,人力物力的分配,整体测试策略的制定,风险评估与规避措施有一个制定。
测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。
测试执行阶段:搭建环境,执行冒烟测试,然后按照测试用例进入正式测试,进行bug跟踪管理直到测试结束。
测试结果输出:出测试报告,确认是否可以上线
详细测试流程:了解用户需求-->参考需求规格说明书-->测试计划-->编写测试用例-->评审用例-->搭建环境-->冒烟测试-->执行测试用例-->bug跟踪处理-->测试报告输出-->版本上线-->上线验证-->面向用户
二、测试用例设计方法
软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果
测试用例设计常用的7种方法:等价类、边界值、场景设计法、判定表、因果图、正交法、错误猜测法。
等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。
(1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明所规定的功能和性能。
(2)无效等价类
指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
边界值
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
与等价划分的区别:
(1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
(2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
场景设计法
通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。
基本流:是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
备选流:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况)
场景法的运用:
例:有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
· 基本流
· 备选流:
1)进入购物网站,选择物品,登录账号,付费,生成订单
2)账号不存在
3)账户余额不足
更多的备选流。。。。。。
判定表
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
1)条件桩:在左上部,列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
2)动作桩:在左下部,列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
3)条件项:在右上部,列出针对它左列条件的取值。在所有可能情况下的真假值。
4)动作项:在右下部,列出在条件项的各种取值情况下应该采取的动作。
判定表的建立步骤:
1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作项。得到初始判定表。
5)简化.合并相似规则(相同动作)
判定表实例:
例1:思想品德好,身体好,学习好,全部合格才能成为三号学生,否则不能成为
A.确定规则个数:3个条件,故规则个数= 2^3 =8
B.得到条件桩和动作桩。
C.生成判定表
例2:需要确保电脑有打印机的驱动,打印机正常工作、打印机的纸张充足、打印机墨粉充足才能满足打印。
A.确定规则个数:4个条件,故规则个数= 2^4 =16
B.得到条件桩和动作桩
C.生成判定表
* 其中出现多个动作项的情况,按照最先触发的情况给出。
D.简化
1)在2/3/4/6/7/10/12/15列中,结果都为X2,所以只要C1=0,就用不管C2/C3/C4是什么,那么这几列就可以合并;
2)在1/8/9/13列中,结果都是X3,所以只要C1=1,C2=0,就不用管C3/C4是什么,那么这几列就可以合并;
3)在5/14列中,结果都是X4,所以只要C1=1,C2=1,C3=0,就不用管C4是什么,那么这两列就可以合并;
化简后如下:
错误推测法
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
例如, 输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行。 这些都是容易发生错误的情 况。可选择这些情况下的例子作为测试用例。
例如,测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用 例:
1) 无SIM 卡插入时进行呼出(非紧急呼叫)
2) 插入已欠费SIM卡进行呼出
3) 射频器件损坏或无信号区域插入有效SIM卡呼出
4) 网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)
5) 网络正常,插入有效SIM卡,使用“快速拨号”功能呼出设置无效号码的数字
例如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:
1) 输入的线性表为空表;
2) 表中只含有一个元素;
3) 输入表中所有元素已排好序;
4) 输入表已按逆序排好;
5) 输入表中部分或全部元素相同。
结语
这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。
获取方式:留言【软件测试学习】即可
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!