一、测试流程
测试流程:需求分析-->编写测试计划-->测试设计-->测试执行-->测试结果输出
需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。
测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书制定项目总体计划,内容包括测试范围,环境资源的准备,进度安排,人力物力的分配,整体测试策略的制定,风险评估与规避措施有一个制定。
测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。
测试执行阶段:搭建环境,执行冒烟测试,然后按照测试用例进入正式测试,进行bug跟踪管理直到测试结束。
测试结果输出:出测试报告,确认是否可以上线
详细测试流程:了解用户需求-->参考需求规格说明书-->测试计划-->编写测试用例-->评审用例-->搭建环境-->冒烟测试-->执行测试用例-->bug跟踪处理-->测试报告输出-->版本上线-->上线验证-->面向用户
二、测试用例设计方法
软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果
测试用例设计常用的7种方法:等价类、边界值、场景设计法、判定表、因果图、正交法、错误猜测法。
1.等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。
(1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明所规定的功能和性能。
(2)无效等价类
指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
2.边界值
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
与等价划分的区别:
(1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
(2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3.场景设计法
通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。
基本流:是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
备选流:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况)
场景法的运用:
例:有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
· 基本流
· 备选流: 1)进入购物网站,选择物品,登录账号,付费,生成订单
2)账号不存在
3)账户余额不足
更多的备选流。。。。。。
4.判定表
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
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是什么,那么这两列就可以合并;
化简后如下:
未完待续。。。