缺点:
1.测试用例数量较大
2.测试用例可能产生很多冗余
3.覆盖率不可能达到100%
优点:
1.与软件如何实现无关,如果实现发生变化,功能测试用例任然可用
方法:(常用)
1.功能分解
2.等价类划分
3.边界值分析
4.因果图法
一、功能分解:通过功能分解可以明确软件功能性测试的内容,使软件功能性测试可度量,有利于测试监督和管理
二、等价类划分:将程序的输入或输出域的不同区间或分为不同的数据类,以便导出测试用例
有效等价类:对于程序的需求来说是合理的、有意义的输入数据所构成的集合
无效等价类:对于程序的输入或者输出是不合理、没有意义的数据构成的集合
用于检验程序对于无效数据的处理能力
三、边界值分析:边界值分析是对等价类的补充,缺陷往往遗漏在角落,聚集在边界,选取输入条件的边界区域作为测试数据比中间的数据更加容易发现错误
四、因果图:考虑到输入条件之间的相互联系、相互组合,因果图最终生成的是判定表,它适用于检查程序输入条件的各种组合情况
判定表组成:条件桩、动作桩、条件项、动作项
五、其他测试方法:错误推测法
测试流程:
1.制定测试计划
2.设计测试用例,测试用例:是用于检验软件是否符合要求的一种示例,基本要素有目的、前提条件、输入数据或动作、预计结果
3.如果满足“启动准则”,那么执行测试
4.撰写测试报告
5.如果满足“完成准则”,那么结束测试
l测试启动准则:
(1)测试计划已经制定并且通过了审批;
(2)测试用例已经设计并且通过了审批;
(3)被测试对象已经开发完毕并等待测试。
l测试完成准则:
(1)功能性测试用例通过率达到100%;
(2)非功能性测试用例通过率达到90%时。
(3)相邻n个CPU小时内“测试期缺陷密度”全部低于某个值m。例如n大于10,m小于等于1。
测试人员应该知道的事:
1.测试能提高软件的质量,但是提高质量不能依赖测试
2.测试能证明缺陷存在,不能证明软件不存在
3.80--20原则:80%的缺陷存在20%的模块中,经常出错的模块改错后还会经常出错