天天看点

软件测试七大原则

  1. 测试显示缺陷的存在
    • 测试可以显示缺陷的存在,但不能证明系统不存在缺陷。测试可以减少软件中存在缺陷的可能性,但即使测试没有发现任何缺陷,也不能证明软件或系统是完全正确的,或者说是不存在缺陷的。
  2. 测试有效性(杀虫剂悖论)
    • 论杀虫剂用得多了,害虫就有免疫力,杀虫剂就发挥不了效力。在测试中,同样的测试用例被一遍一遍反复使用时,发现缺陷的能力就会越来越差。这种现象的主要原因在于测试人员没有及时更新测试用例,同时对测试用例及测试对象过于熟悉,形成思维定势。为克服这种现象,测试用例需要经常的评审和修改,不断增加新的不同的测试用例来测试软件或系统的不同部分,保证测试用例永远是最新的,即包含着最后一次程序代码或说明文档的更新信息。
    • 如何解决?
      • 1.内部测试人员交叉测试,这是比较常用有效的方法。
      • 2.测试用例常更新,在测试过程中根据软件的特性修改测试用例。
      • 3.多尝试测试方法,尽量不要使用单一的测试方法去测试软件,根据软件内容采取不同的测试手段和测试方法。
  3. 测试的尽早介入
    • 根据统计表明,在软件开发生命周期早期引入的错误占软件过程中出现所有错误(包括最终的缺陷)数量的50%~60%。此外,IBM的一份研究结果表明,缺陷存在放大趋势。如需求阶段的一个错误可能会导致N个设计错误,因此,越是测试后期,为修复缺陷所付出的代价就会越大。因此,软件测试人员要尽早地且不断地进行软件测试,以提高软件质量降低软件开发成本。
  4. 缺陷集群性(2/8原则)
    • 有人会听说过成长理论:一个人是否成功,那要看他20%的业余时间都在做什么事情。
    • 软件测试也同样符合二八原则:
      • 1.从功能上来说,一个软件如果有20 %为主要功能,那就需要花费软件测试人员80%的时间。
      • 2.再从bug上分析,一个功能模块发现的bug越高,那存在的未被发现的bug也越高,所以发现的bug与未发现的bug是成正比的。(“80%的错误集中在20%的程序模块中”)
  5. 测试活动依赖于测试内容
    • 相信不少测试人员曾经在面试过程中都有遇到“做软件测试什么最重要”这样的问题,应该大多数人都知道对测试人员来说需求是最重要的,这对于公司来说就是业务。根据业务的不同,软件测试内部也分不同的行业。行业不同,测试活动的开展也不同:工具的选择、测试流程都不同。
  6. 不存在缺陷的谬论
    • 没有bug,对软件测试人员来说奢望。
    • 那没有bug的软件就是好的软件吗?我们要明确,判断一个软件的好或者不好,主要依据是用户需求,用户体验和是否实现了用户所要的结果。
  7. 穷尽测试是不可能的
    • 穷尽测试是不可能的,当满足一定的测试出口准则时测试就应当终止。考虑到所有可能输入值和它们的组合,以及结合所有不同的测试前置条件,这是一个天文数字,我们没有可能进行穷尽测试。