第六章 软件测试
软件测试:在程序员对每一个模块的编码之后先做程序测试,再做单元测试,然后在进行集成测试,系统测试,验收(确认)测试,平行测
试,人工测试,其中单元测试的一部分在编码阶段就开始了,测试横跨开发与测试两个阶段,又有不同的人员参加,测试工作本
身是复杂的。
软件测试目的:测试是程序的执行过程,目的在于发现错误
一个好的测试用例在于能够发现至今未发现的错误
一个成功的测试是发现了至今未发现的错误
软件测试原则:应当吧尽早的和不断的进行软件测试作为软件开发者的座右铭
测试用例应由测试输入数据和对应的与其输出结构这两部分组成
程序员应避免检查自己的程序
在设计测试用例时,应当包括合理的输入条件和不合理的输入条件
测试用例设计:
两种常用的测试方法:黑盒测试(功能测试)、白盒测试(结构测试)
白盒测试
逻辑覆盖
语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖
语句覆盖覆盖的程度是最低的
条件测试路径选择:当程序中判定多余一个时,形成的分支结构可以分为两类前套型分支结构和连锁性分支结构
循环测试路径选择:简单循环、连锁循环、嵌套循环、非结构循环
黑盒测试的测试用例设计
等价类划分
边界值分析
错误推测法
因果图
单元测试以白盒测试为主,集成测试以黑盒测试为主
等价类划分:有效等价类、无效等价类
划分等价类原则:如果取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类
如果输入条件规定了输入值的集合,或者是规定了必须如何的条件时,这时可以确定一个有效等价类和一个无效等价类
如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类
如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理
如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规
则)
软件测试的策略:单元测试、组装测试、确认测试、系统测试
单元测试内容:出错处理、模块接口、局部数据结构、边界条件、独立路径
单元测试步骤:驱动模块
桩模块
部分常见错误清单:
一、 模块接口检查表
模块接受的输入参数个数与模块的变元个数是否一致
参数与变元的属性是否匹配
参数与变元所用的单位是否一致
传替给被调用模块的变元的数目是否等于那个模块的参数的数目
传递给被调用模块的边缘属性和参数的属性是否一致
传递给被调用模块的变元的单位和该模块参数的单位是否一致
传递给内部函数的变元属性、数目和次序是否正确
是否修改了只是作为输入用的变元
全程变量的定义在各个模块中是否一致
有没有吧常熟当作变量来传递
二、 完成外部输入/输出的检查表
文件属性是否正确
Open语句是否正确
格式说明与输入/输出语句给出的信息是否一致
缓冲区容量与记录长度是否匹配
在进行读写操作之前是否打开了文件
对结束文件条件的判断和处理是否正确
对输入/输出错误的处理是否正确
有没有输出信息中有正文错误
三、 模块局部数据结构检查表
不正确或不一致说明
错误的初始值或错误的缺省值
变量名拼写错或缩写错
不相容的数据类型
下溢、上溢或是地址错误
组装测试:
一次性组装方式、增殖性组装方式
增殖式组装方式:自顶向下的、自底向上的、混合增殖式测试
系统测试
测试种类:功能性测试,可靠性测试,强度测试(检查系统运行环境不正常乃至发生故障的情况下,系统可以运行到何种程度的测试
性能测试(是否满足需求说明书中规定的性能)
恢复测试(证实在克服硬件故障(掉电,硬件或网络出错等)后,系统能否正常的继续进行,并不对系统造成任何损害)
调试
几种主要的调试方法:强行排错;使用较多,效率低;回溯法调试;归纳法;演绎法调试
调试原则:
修改错误的原则:再出现错误的地方,很可能还有别的错误;当新修正一个错误的同时,有可能会引入新的错误。
测试分析报告
1、引言
编写目的;项目背景;定义;参考资料
2、测试计划执行情况
测试项目、测试机构和人员;测试结果;
3、软件需求测试总结
4、评价
软件能力、缺陷和限制、建议、测试结论