1.3 Seven Testing Principles

2015-06-23

Principle 1 - Testing shows presence of defects(测试显示存在缺陷)

Testing can show that defects are present, but cannot prove that there are no defects. Testing can reduces the probability of undiscovered defects remaining in software, but even if no defects are found, it is not a proof of correctness.

测试可以显示存在缺陷,但不能证明系统不存在缺陷。测试可以减少软件中存在未被发现缺陷的可能性,但即使测试没有发现任何缺陷,也不能证明软件或系统是完全正确的。

Principle 2 - Exhaustive testing is impossible(穷尽测试是不可行的)

Testing everything (all combination of input and precondition) is not feasible except for trivial cases. Instead of exhaustive testing, risk analysis and priorites should be used to focus testing efferts.

除了小型项目,进行完全(各种输入和前提条件的组合)的测试是不可行的。通过运用风险分析和不同系统功能的测试优先级,来确定测试的关注点,从而替代穷尽测试。

Principle 3 - Early testing(测试尽早介入)

To find defects early, testing activities shall be started as early as possible in the software or system development of life cycle, and should focus on defined objectives.

为了尽早发现缺陷,在软件或系统开发生命周期中,测试活动应该尽可能早的介入,并且应该将关注点放在已经定义的测试目标上。

Principle 4 - Defect clustering(缺陷集群性)

Testing effert shall be focused proportionally to the expected and later observed defect density. A small number of modules usually contains most of the defects discovered during pre-release testing, or is responsible for most of the operational failures

测试工作的分配比例应该与预期的和后期观察到的缺陷分布模块相适应。少数模块通常包含大部分在测试版本中发现的缺陷或失效。

Principle 5 - Pesticide paradox(杀虫剂悖论)

If the same tests are repeat over and over again, eventually the same set of test cases will no longer find new defect. To overcome this "Pesticide paradox", test cases need to be regularly reviewed and revised, and new and different tests need to be written to exercise different part of the software or system to find potentially more defects.

采用同样的测试用例多次重复进行测试,最后将不再能够发现新的缺陷。为了克服这种“杀虫剂悖论”,测试用例需要进行定期评审和修改,同时需要不断增加新的不同的测试用例来测试软件或系统的不同部分,从而发现潜在的更多的缺陷。

Principle 6 - Testing is context dependent(测试活动依赖于测试背景)

Testing is done differently in different contexts. For example, safety-critical software is tested differently from an e-commerce site.

针对不同的测试背景,进行不同的的测试活动。比如,对安全关键的软件进行测试,与对一般的电子商务软件的测试是不一样的。

Principle7 - Absence-of-errors fallacy(不存在缺陷(就是有用系统)的谬论)

Finding and fixing defects does not help if the system built is unusable and does not fulfill the users' need and expectation.

假如系统无法使用,或者系统不能完成客户的需求和期望,发现和修改缺陷是没有任何意义的。

1.3 Seven Testing Principles的更多相关文章

  1. [React Testing] Setting up dependencies && Running tests

    To write tests for our React code, we need to first install some libraries for running tests and wri ...

  2. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  3. (译)TDD(测试驱动开发)的5个步骤

    原文:5 steps of test-driven development https://developer.ibm.com/articles/5-steps-of-test-driven-deve ...

  4. Building the Testing Pipeline

    This essay is a part of my knowledge sharing session slides which are shared for development and qua ...

  5. 转:15 Best Responsive Web Design Testing Tools

    Responsive Web Design is regarded as being the approach which suggests that web design and developme ...

  6. 读书笔记-Software Testing(By Ron Patton)

    Software Testing Part I:The Big Picture 1.Software Testing Background Bug's formal definition 1.The ...

  7. Bit error testing and training in double data rate (ddr) memory system

    DDR PHY interface bit error testing and training is provided for Double Data Rate memory systems. An ...

  8. A/B Testing的简要知识

    A/B testing主要用来检测网站或者APP的两个版本中哪一个更好,它的中心思想是把流量一分为二,一份用作experiment group,访问新的版本,另一份用作control group,访问 ...

  9. Monkey Patch/Monkey Testing/Duck Typing/Duck Test

    Monkey Patch Monkey Testing Duck Typing Duck Test

随机推荐

  1. C语言宏定义和宏定义函数

    要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定 ...

  2. 【Android UI】使用RelativeLayout与TableLayout实现登录界面

    使用RelativeLayout与TableLayout分别实现两种登录界面,学习RelativeLayout布局 中如何对齐与调整组件相对位置,使用TableLayout实现登录界面,学习如何设置列 ...

  3. 关于vs2013调试的偶然错误发现与总结(vs2013的承载进程)---ShinePans

    当项目的属性选择为 启用 vs2013承载进程 或出现一下错误: 尝试运行项目时出错:未能加载文件或程序集"GroupBoxTest" 或它的某一个依赖项.给定程序集名称" ...

  4. PHP登入网站抓取并且抓取数据

    有时候需要登入网站,然后去抓取一些有用的信息,人工做的话,太累了.有的人可以很快的做到登入,但是需要在登入后再去访问其他页面始终都访问不了,因为他们没有带Cookie进去而被当做是两次会话.下面看看代 ...

  5. idea maven 报-source 1.5 中不支持 diamond 运算符

    需要修改 project setting 中的

  6. Python 高级图像处理

    构建图像搜索引擎并不是一件容易的任务.这里有几个概念.工具.想法和技术需要实现.主要的图像处理概念之一是逆图像查询(RIQ).Google.Cloudera.Sumo Logic 和 Birst 等公 ...

  7. PHP 支持简写方式

    在我的Windows系统里使用的是"WAMP"集成环境 如果要让PHP支持简写方式则需要在PHP.ini里将short_open_tag 设置为on 更改php.ini文件后需要重 ...

  8. Java 并发:内置锁 Synchronized

    摘要: 在多线程编程中,线程安全问题是一个最为关键的问题,其核心概念就在于正确性,即当多个线程訪问某一共享.可变数据时,始终都不会导致数据破坏以及其它不该出现的结果. 而全部的并发模式在解决问题时,採 ...

  9. Java之开发工具(1) - Eclipse 如何设置注释的模板

    最常用的注释就是对类的说明和方法的说明,关于这类代码的注释方式,在Eclipse中可以这样进行设置: windows---preferences...---java--code style--code ...

  10. js获取时间戳的三种方式

      js获取时间戳的三种方式 CreateTime--2018年5月23日08:44:10 Author:Marydon // 方式一:推荐使用 var timestamp=new Date().ge ...