认识软件测试
- 一 软件测试的定义和分类
-
- 1.1 定义
- 1.2分类
- 二 软件测试的过程模型
-
- 2.1 V模型
- 2.2 W模型
- 2.3 H模型
- 三 软件测试的原则
一 软件测试的定义和分类
1.1 定义
- 通俗说:软件测试就是在软件投入运行之前,对软件需求分析,设计规格说明书和编码实现的最终审查,它是软件质量保证的关键步骤。
- IEEE给出的定义是:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清楚预期结果与实际结果之间的差别。
除了上述两种定义方法之外,还有其他一些定义,这些定义并没有对错之分只是进行定义的角度不同。
这里有一个关于软件测试心里学的有意思的话题:
- 观点一:软件测试是为了证明软件不存在错误的过程。
- 观点二:软件测试是为了发现错误而执行程序的过程。
现在比较认同的是观点二 有兴趣的小伙伴可以看一下Glenford J.Myers提出软件测试目的。
1.2分类
2.2 W模型
三 软件测试的原则
1.完全测试程序是不可能的
例: 测试windows计算机器中的加法功能,需要测试任意两个整数,实数的加法运算几乎是不可能完成的,输入量太大,输出量也很多。
2.软件测试是有风险的行为
例:在Windows计算器加法测试中未测试1314+520的情况,就意味着1314+520的计算结果可能出错。
对软件不能进行完全测试,而不测试又会漏掉软件缺陷这是矛盾的。测试数量越多成本越大,测试数量太少又不能很好的发现软件缺陷,因此我们要在软件测试数量和发现软件缺故障之间做出较好的平衡。

3.测试无法显示潜伏的软件缺陷
软件工程师可以 告已发现的软件缺陷,却无法 告潜伏的软件缺陷。
4.软件缺陷的集群现象
软件缺陷可能会成群出现,一处有问题,附近的好几处都有问题。造成该现象的原因有
- 程序员疲倦
- 程序员往往犯同样的错误
- 有些小问题看似没有关系,但有可能是一个及其严重的原因造成的这些问题
5.杀虫剂怪事
软件测试的越多,其免疫能力越强。
6.并非所有的软件缺陷都能被修复
软件修复的过程是有风险,需要成本的,且软件缺陷也有等级之分,因此并不是所有的软件缺陷都能被修复。造成此现象的原因有:
- 没有足够的时间
- 不算正真的软件缺陷
- 修复风险太大
7.难以描述的软件缺陷
存在但尚未发现的软件缺陷不能进行修复。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!