1.软件测试范围:单元测试、集成测试、配置项测试、系统测试等。
2.测试目的(依据):验证软件是否满足软件研制任务书、软件需求规格说明和软件设计说明所规定的软件质量特殊性要求;
3.测试用例设计原则:a)基于测试需求的原则。应按照测试级别的不同要求,设计测试用例。如,单元测试依据详细设计说明,集成测试依据概要设计说明,配置项测试依据软件需求规格说明,系统测试依据用户需求(系统/子系统设计说明、软件研制任务书等)。
4.测试用例要素:
a)名称和标识。
b)测试追踪。
c)用例说明。简要描述测试的对象、目的和所采用的测试方法;
d)测试的初始化要求。如软硬件配置、测试配置和参数设置等;
e)测试的输入。在测试用例执行中发送给被测对象的所有测试命令、数据和信号等;
f)期望测试结果。说明测试用例执行中由被测软件所产生的期望测试结果,即经过验证,认为正确的结果;
g)评估测试结果的标准。判断测试用例执行中产生的中间和最后结果是否正确的标准;
h)操作过程。实施测试用例的执行步骤;
i)前提和约束。在测试用例说明中施加的所有前提条件和约束条件,如果有特别限制、参数偏差或异常处理,应该标识出来,并要说明它们对测试用例的影响;
j)测试终止条件。说明测试正常终止和异常终止的条件,测试用例执行完毕(或出现异常,终止测试用例执行)。
5.测试方法:静态测试方法和动态测试方法。
静态测试方法:静态测试方法包括检查单和静态分析方法,对文档的静态测试方法主要是以检查单的形式进行,而对代码的静态测试方法一般采用代码审查、代码走查和静态分析,静态分析一般包括控制流分析、数据流分析、接口分析和表达式分析。
动态测试方法:动态测试方法一般采用白盒测试方法和黑盒测试方法。黑盒测试方法一般包括功能分解、边界值分析、判定表、随机测试和正交试验法等;白盒测试方法一般包括控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、条件组合覆盖测试、路径覆盖测试)、数据流测试、程序变异、程序插桩、域测试和符号求值等。
在软件动态测试过程中,应采用适当的测试方法,实现测试要求。配置项测试和系统测试一般采用黑盒测试方法;集成测试一般主要采用黑盒测试方法,辅助以白盒测试方法;单元测试一般采用白盒测试方法,辅助以黑盒测试方法。
文档审查可作为进入单元测试的前提条件。
单元测试内容:代码审查、静态分析、接口测试、局部数据结构测试、控制流测试、边界条件。
(1)代码审查:代码审查主要使用相应工具对源码进行统计,同时通过相应工具进行分析结果后,人工对数据进行分析。
(2)静态分析:静态分析包括控制流分析、数据流分析、接口分析、表达式分析,并给出软件质量度量数据。
(3)接口测试:
a)输入的实际参数与形式参数的个数是否相同;
b)输入的实际参数与形式参数的属性是否匹配;
c)输入的实际参数与形式参数的量纲是否一致;
d)调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;
e)调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;
f)调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;
g)调用预定义函数时所用参数的个数、属性和次序是否正确;
h)是否存在与当前入口点无关的参数引用;
i)是否修改了只读型参数;
j)对全程变量的定义各模块是否一致;
k)是否把某些约束作为参数传递。
(4)局部数据流结构测试
检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。局部数据结构往往是错误的根源,应仔细设计测试用例,检查是否有下面几类错误:
a)不合适或不相容的类型说明;
b)变量无初值;
c)变量初始化或省缺值有错;
d)不正确的变量名(拼错或不正确的截断);
e)出现上溢、下溢和地址异常。
(5)控制流测试
在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。此时设计测试用例是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。此时基本路径测试和循环测试是最常用且最有效的测试技术。
计算中常见的错误包括:
a)误解或用错了算符优先级;
b)混合类型运算;
c)变量初值错;
d)精度不够;
e)表达式符号错。
(6)边界条件
边界条件测试是单元测试中最后的环节,也是最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值和其左、右设计测试用例,比较容易发现软件新的错误。