1、什么是软件测试?
从广义上说,软件测试是软件生命周期中的所有检查、评审和确认工作,包括在分析、设计阶段,以及完成开发后确认阶段的各类文档、代码的审查和确认。
从狭义上说,是识别软件缺陷的过程,即实际结果与预期结果不一致。
2、软件测试的目标?
最终目标是确保软件功能符合用户需求,在产品发布或交付前尽可能多的发现并改正缺陷。
3、软件测试的原则?
Good-enough原则。一种权衡投入/产出比的原则。
保证测试的覆盖度,但穷举测试是不可能的。
所有测试都应追溯到用户需求。
越早测试越好,测试过程与开发过程应是相互结合的。
测试的规模由小到大,从单元测试到系统测试。
为了尽可能的发现错误,应由独立的第三方进行测试。
不能为了便于测试擅自修改程序。
既应该测试软件应该做什么,也应该测试软件不应该做什么。
测试只是展示缺陷。测试只能表明有缺陷存在,但不能证明没有缺陷,测试能降低未发现缺陷留存的概率,却不能证明软件是绝对正确的。
穷尽测试是不可能的。测试所有的输入和条件组合是不可能的,可以取而代之的是基于风险和优先级的测试。
缺陷簇生。要对缺陷发生率高的模块投入更多的测试。少量的模块往往隐藏了大部分的缺陷。缺陷发生率高的模块往往与需求不清、设计不当、编码复杂度高等内在原因关联,所以从风险的角度来看必然较高。
杀虫剂悖论。相同的测试再重复多次后就无法再找到缺陷了。测试用例要不断评审修改,不断添加新的和不同的测试,就有可能找到更多缺陷。
测试是上下文关联的。测试在不同上下文环境中的执行是不同的。
无错谬论。即使修改了系统中存在的大部分缺陷,但若系统本身背离了用户需求,那么发现和修复缺陷就毫无帮助了。
网友评论