软件测试笔记(三)- 软件测试的实质

对软件开发的事实进行分析,认识到为什么你无论做多大的努力,软件永远不会完美。了解掌握软件测试员的基本术语和概念。

一、测试的原则

对于软件测试应该具有认识或者心态。

  • 完全的测试程序是不可能的

找出所有的软件缺陷,确保软件完美无缺是不可能的:

  1. 输入量太大。
  2. 输出结果太多。
  3. 软件执行路径太多
  4. 软件说明书是主观的。可以说从旁观者来看是缺陷。

如果觉得某些测试条件是重复的、务必要的,或者为了节省空间,而将其剔除,那么采用的就是不完全测试。

  • 软件测试是有风险的行为

如果决定不去测试所有的情况,那就是选择了冒险。

软件测试员要学会一个关键的思想是,如何把数量巨大的可能测试减少到可以控制的范围,以及图和针对分线做出明治的抉择,哪些测试重要,哪些不重要。我们的目标是找到最优的测试量,是测试不多不少。

  • 测试无法显示潜伏的软件缺陷

软件测试员可以 告软件缺陷存在,却不能 告团建缺陷不存在,你可以继续测试,发现并 告软件缺陷,但是任何情况下都不能保证软件缺陷没有了。唯一的方法是继续测试,可能还会找到一些。

  • 找到的软件缺陷越多,就说明软件缺陷越多

通常,软件测试员会在很长时间内找不到软件缺陷。接着找到一个,之后恒快就会接二连三的找到更多。其中的原因:

  1. 程序员也有心情不好的时候。
  2. 程序员往往犯同样的错误。
  3. 某些软件缺陷实乃冰山一角。
  • 杀虫剂怪事

用于描述软件测试越多,其对测试的免疫力越强的现象。但若未更新测试用例,反复执行测试,难以发现新的缺陷。

为了克服杀虫剂怪事,软件测试元必须不断编写不同的、新的测试程序,对程序的不同部分进行测试,以找出更多的软件缺陷。

  • 并非所有的软件缺陷都要修复

在软件测试中令人沮丧的是,虽然测试员尽了最大的努力,但并非找出的所有的软件缺陷都要修复。不要泄气——这并不意味着软件测试员未达到目的,或者项目小组将发布质量欠佳的产品。

作为优秀的软件测试员要进行良好的判断,搞清楚在什么情况下追求完美。项目小组要进行取舍,根据风险决定哪些缺陷要修复,哪些不需要修复。

不修复软件缺陷的原因:

  1. 没有足够的时间。
  2. 不算真正的软件缺陷。很多情况下,理解错误、测试错误或者说明书变更会把可能的软件缺陷当作功能来对待。
  3. 修复的风险太大。
  4. 不值得修复。不常出现的软件缺陷和不常用功能中出现的软件缺陷是可以放过的。可以躲过和用户有办法防御的软件缺陷通常不用修复。这些都要归结为商业风险决策。
  • 什么时候才叫缺陷难以说清

略。

  • 产品说明书没有最终版本

软件测试员必须要想到产品说明书可能改变。未曾计划测试的功能可能会增加,经过测试并 告软件缺陷的功能有可能 发生变化甚至被删除。

这些都有可能发生,软件测试员要灵活地制定测试计划和执行测试的技术。

  • 软件测试员在产品小组中不受欢迎

软件测试员的工作是检查和批评同事的工作,,挑毛病、公布发现的问题。唉。做这项工作不会受到普遍的欢迎的!你准备好了吗/p>

下面是保持小组成员和睦的建议:

  1. 早日找出缺陷。在三个月之前而不是在产品即将发面前夕找出严重的软件缺陷,会产生更小的影响,跟容易让人接受。
  2. 控制情绪。
  3. 不要总是 告坏消息。
  • “软件从测试是一项讲究条理的技术专业”

现在,软件测试成为一个职业选择——需要驯良和规范,而且有发展空间。

二、软件测试的术语和定义

软件测试员应该常常澄清小组中使用的术语的含义,最好是在术语定义上取得一致而不是在“正确性”上争论。

  • 精确和准确

软件测试员必须知道 精确(precision)准确(accuracy) 之间的区别。

软件测试要精度和准度很大程度上取决产品是什么,最终取决于开发小组的目标。

  • 确认和验证
  1. 确认(verification) :保证软件符合产品说明书的过程。
  2. 验证(validation) :保证软件满足用户要求的过程。

注意:绝不假定产品说明书是对的,如果 确认 产品说明书并且需要对最终产品进行 验证

  • 质量和可靠性
  1. 质量(quality) :“优秀程度”或者“同类优越性”。如果说软件产品质量高,就是指它能够满足客户要求。客户会感到该产品性能卓越,优于其他产品。
  2. 可靠性(reliability) :仅仅是质量的一个方面。

软件使用者心目中的质量可能包括,功能的多少,在自己旧PC机上运行的能力、软件公司的服务电话好不好打以及软件的价格。产品的可靠性或者产品多长时间崩溃的问题也许重要,但常常不被考虑到。

  • 测试和质量保证(QA)
  1. 软件测试(testing)员:目标是尽可能早地找出软件缺陷,并确保缺陷得以取得修复。
  2. 软件质量保证(Qualiity Assurance,QA)人员:主要职责是创建和执行改进软件开发过程并防止软件缺陷发生的保准和方法。

最重要的是要了解自己的工作职责,并于开发小组的其他成员交流。

参考文献

  1. 《软件测试(原书第2版)》
  2. 《软件测试的艺术(原书第3 版)》

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月20日
下一篇 2019年7月20日

相关推荐