目录
一、软件测试的分类
二、软件测试的生命周期
1、
2、
3、
4、
5、
三、静态测试和动态测试
1、静态测试
静态测试是指被测程序不被运行,而通过其
他手段进行检测的测试方法。
2、动态测试
动态测试是指通过运行和使用被测程序,发
现软件故障,以达到检测目的的测试方法。
四、黑盒测试和白盒测试
1、黑盒测试
黑盒测试将程序看作是从输入定义域映射到输出值域的函数过程,其主要依据是程序的规格说明,不涉及内部结构和特性,只依靠被测程序的输入和输出间关系设计测试用例。
不用考虑软件具体实现,即使软件实现发生变化,只要软件接口不变,测试用例也可不变;用例设计和软件实现可同时进行。
(1)等价类划分法
等价类划分:把程序输入的定义域划分为若干子集,并从每一个子集中选取少量具有代表性的数据生成测试用例。
等价类:输入定义域的某个子集。等价类中各个输入数据具有等价特性,因此测试等价类中的代表值等价于测试这一类中其它值。
使用等价类划分法的目的是既希望进行完备测试,又希望避免冗余。
(2)边界值划分法
人们从长期的测试工作经验得知,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应选取正好等于、刚刚大于或刚刚小于边界的值作为边界测试数据。
(3)决策表法
(4)因果图法
2、白盒测试
白盒测试是基于被测程序的源代码,而不是软件
规格说明的测试活动。白盒测试按照程序内部的
结构测试程序,检验程序中的每条通路是否都能
按预定要求正确工作,而不顾它的功能。
1、逻辑覆盖测试
(1)语句覆盖
各个语句都走过
(2)判断覆盖
所有T和F都走过
(3)条件覆盖
各个条件都有T和F
(4)判断/条件覆盖
(5)路径覆盖
所有可能的路径
2、路径分析测试
对于比较简单的小程序来说,实现路径覆盖是可能的,但如果程序比较复杂,存在多个判断和多个循环,实际上可以做到的只是有选择地测试程序中某些有代表性的路径。
(1)独立路径测试
step1:导出程序控制流图
step2:求出程序环形复杂度
step3:基于独立路径集设置测试用例
例子
(2)z路径测试
所谓简化循环就是减少循环的次数,不考虑循环体的形式和复杂度如何,也不考虑循环体实际上需要执行多少次,只考虑通过循环体零次和一次这两种情况。
零次循环是指跳过循环体,从循环体的入口直接到循环体的出口。通过一次循环体是指检查循环初始值。根据简化循环的思路,循环要么执行,要么跳过,这和判定分支的效果是一样的。
可见,简化循环就是将循环结构变成选择结构。