文档章节

软件测试的七个原则

如比如比
 如比如比
发布于 2015/08/23 12:05
字数 1942
阅读 430
收藏 6

原文:http://www.testingexcellence.com/seven-principles-of-software-testing/

有翻译的错误,也有原文夸大的成分。但如果能通过它把握软件测试的要义也就足够了。

 

Seven Principles of Software Testing

测试的七个原

 

Software testing is an extremely creative and intellectually challenging task.

测试是一个极性的和挑智力的任

 

When testing follows the principles given below, the creative element of test design and execution rivals any of the preceding software development steps.

测试遵循下面的原测试设计比其他件开具有有

 

  1. TESTING SHOWS THE PRESENCE OF BUGS

1. 测试揭BUG的存在

 

Testing an application can only reveal that one or more defects exist in the application, however, testing alone cannot prove that the application is error free.

测试应用程序只能揭露用程序在的一个或多个缺陷然而测试通过不能用程序无

 

Therefore, it is important to design test cases which find as many defects as possible.

因此设计尽可能多发现缺陷的测试用例是重要的

 

  1. EXHAUSTIVE TESTING IN IMPOSSIBLE

2. 彻底测试是不可能的

 

Unless the application under test (UAT) has a very simple logical structure and limited input, it is not possible to test all possible combinations of data and scenarios.

除非测试过的应用程序(UAT)有非常简单逻辑结构和有限的它不可能测试所有可能的合的数据和景。

 

For this reason, risk and priorities are used to concentrate on the most important aspects to test.

出于个原因风险用于集中测试最重要的方面。

 

3. EARLY TESTING

3早早测试

 

The sooner we start the testing activities the better we can utilize the available time.

越早开始测试活动我们就越能更好地利用可用的时间。

 

As soon as the initial products, such the requirement or design documents are available, we can start testing.

一旦最初的产品,这样的要求或设计文档可用,我们就可以开始测试。

 

It is common for the testing phase to get squeezed at the end of the development lifecycle, i.e. when development has finished, so by starting testing early, we can prepare testing for each level of the development lifecycle.

测试阶段被压缩在开发生命周期的结束即开发完成时是很常见的,所以尽早开始测试,我们可以准备测试为每个级别的开发生命周期。

 

Another important point about early testing is that when defects are found earlier in the lifecycle, they are much easier and cheaper to fix.

早早测试的另一个重要的一点是,当缺陷被发现在生命周期的早期,他们更容易和便宜。

 

It is much cheaper to change an incorrect requirement than having to change a functionality in a large system that is not working as requested or as designed!

在一个大系统中改变错误的要求比改变一个不是要求或设计的功能要便宜得多!

 

4. DEFECT CLUSTERING

4缺陷聚

 

During testing, it can be observed that most of the reported defects are related to small number of modules within a system.

在测试过程中,可以观察到的大部分缺陷与系统少数模块相关。

 

i.e. small number of modules contain most of the defects in the system.

即少数模块包含系统中大部分的缺陷。

 

This is the application of the Pareto Principle to software testing: approximately 80% of the problems are found in 20% of the modules.

这就是帕累托原则在软件测试的应用:大约80%的问题被发现在20%的模块。

 

 

5. THE PESTICIDE PARADOX

5

 

If you keep running the same set of tests over and over again, chances are no more new defects will be discovered by those test cases.

如果你继续一遍又一遍地运行相同的测试,用那些测试用例是没有机会发现更多的新缺陷的。

 

Because as the system evolves, many of the previously reported defects will have been fixed and the old test cases do not apply anymore.

因为随着系统的发展,许多以前报道的缺陷将会被修正和旧的测试用例就不再适用了。

 

Anytime a fault is fixed or a new functionality added, we need to do regression testing to make sure the new changed software has not broken any other part of the software.

随时修正错误或添加一个新的功能后,我们需要做回归测试,以确保新改变的软件没有破坏软件的任何其他部分。

 

However, those regression test cases also need to change to reflect the changes made in the software to be applicable and hopefully fine new defects.

然而,这些回归测试用例也需要根据软件本身的变化作出改变以反映更改软件的适用并找到新的缺陷。

 

6. TESTING IS CONTEXT DEPENDENT

6测试是依于上下文的

 

Different methodologies, techniques and types of testing is related to the type and nature of the application.

不同的方法、技测试类是根据用程序的型和性有关。

 

For example, a software application in a medical device needs more testing than a games software.

例如在一个医疗设备的软用程序戏软件需要更多的测试

 

More importantly a medical device software requires risk based testing, be compliant with medical industry regulators and possibly specific test design techniques.

更重要的是医疗设备件需要基于风险测试符合医业监管机构和特定测试设计

 

By the same token, a very popular website, needs to go through rigorous performance testing as well as functionality testing to make sure the performance is not affected by the load on the servers.

一个非常受迎的网站需要经过严格的性能测试以及功能测试确保性能不受服器上的负载的影响

 

7. ABSENCE OF ERRORS FALLACY

7没有错误谬误

 

Just because testing didn’t find any defects in the software, it doesn’t mean that the software is ready to be shipped.

仅仅因为在软件测试中没有发现任何缺陷,但这并不意味着软件已准备好发布。

 

Were the executed tests really designed to catch the most defects? or where they designed to see if the software matched the user’s requirements?

执行测试是否真正地捕捉大多数缺陷?或者他们设计软件是否符合用户的需求?

 

There are many other factors to be considered before making a decision to ship the software.

在做决定软件发布之前有很多其他因素需要考虑。

 

Other principles to note are:

其他原则需要注意的是:

 

Testing must be done by an independent party.

测试必须由一个独立的方来完成。

 

Testing should not be performed by the person or team that developed the software since they tend to defend the correctness of the program.

测试不应由开发软件的个人或团队来执行,因为他们倾向于保护程序的正确性。

 

Assign best personnel to the task.

最好的人员分配任务。

 

Because testing requires high creativity and responsibility only the best personnel must be assigned to design, implement, and analyze test cases, test data and test results.

因为测试需要高度的创造力性和责任感只有最好地人员必须分配到设计,实现和分析测试用例,测试数据和测试结果上去。

 

Test for invalid and unexpected input conditions as well as valid conditions.

测试无效和意想不到的输入条件,以及有效的条件。

 

The program should generate correct messages when an invalid test is encountered and should generate correct results when the test is valid.

程序应该在无效的测试情况下生成正确的消息和有效的测试时要产生正确的结果。

 

Keep software static during test.

测试期间保持软件静态。

 

The program must not be modified during the implementation of the set of designed test cases.

在实施设计的测试用例集的期间不能修改程序。

 

Provide expected test results if possible.

尽可能提供预期测试结果。

 

A necessary part of test documentation is the specification of expected results, even if providing such results is impractical.

测试文档的必要成部分是果的即使提供这样果是不切实际的。

 


© 著作权归作者所有

如比如比
粉丝 126
博文 178
码字总数 286951
作品 0
日本
程序员
私信 提问
代码整洁之所以重要的七个理由

首先要承认,大学毕业的时候我是个糟糕的程序员。 我拿到了学位,学到了一大堆书本知识,然后,我开始做一个不太重要的项目,每天晚上花大量的时间做简化。 起初,一切正常,但是我的代码风格...

oschina
2014/03/17
10.2K
55
开源图书--设计模式Java版

Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式),为了方便大家学习,quanke 现将所有文章...

匿名
2016/05/09
2.8K
1
PMI-ACP 敏捷项目管理6——交付价值与确认价值

一、交付价值 交付价值贯穿敏捷项目执行始终。为了完成这个目标,团队应该利用精益的最大化价值交付活动和最小化浪费或者合规活动(非增值)原则。例如,一些组织中必需的但是不直接专注于交付...

隔壁老李头
2017/11/26
0
0
设计模式Java版,Gitbook开源电子书,含源码

Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式),为了方便大家学习,http://quanke.name ...

quanke_
2016/05/03
1K
5
Chapter One 软件和软件工程

要点浏览 概念 软件是开发并维护的产品。在不同体系的设备上运行,并产生各种结果,以及各种可以copy及store的描述信息。 软件工程包括过程、各种方法/实践以及各种工具,以协助相关人员构建...

SimpleOne
2014/04/21
70
0

没有更多内容

加载失败,请刷新页面

加载更多

jquery底层函数-jQuery.ajaxSetup()

jQuery.ajaxSetup( options )返回: 描述: 为以后要用到的Ajax请求设置默认的值 添加的版本: 1.1jQuery.ajaxSetup( options ) options 类型: PlainObject 一个用来配置Ajax请求的"{键:值}"对,......

前端老手
24分钟前
3
0
Qt编写自定义控件56-波浪曲线

一、前言 波浪曲线控件,其实是之前一个水波进度条控件的一个核心,其实就是利用正弦曲线来生成对应的坐标进行绘制,把这个功能单独提取出来,是为了更详细的研究各种正弦余弦等拓展效果,当...

飞扬青云
30分钟前
3
0
深入理解计算机系统cp1:存储单位与编码

摘要: 理解计算机是如何存储数据的。 原文:深入理解计算机系统cp1:存储单位与编码 作者:Chor Fundebug经授权转载,版权归原作者所有。 1. 存储单位 位:即 bit,表示二进制位,要么是 0 ...

Fundebug
33分钟前
3
0
Python查询比特币实时价格

在本文中我们将学习如何使用使用coinmarketcap提供的比特币行情API,编写Python程序来获取像比特币、莱特币或以太币之类的区块链数字货币的实时行情/实时价格。 1、比特币行情API调用代码 我...

汇智网教程
今天
8
0
爬虫平台Crawlab核心原理--自动提取字段算法

⚠注意: 可配置爬虫现在仅在Python版本(v0.2.1-v0.2.4)可用,在最新版本Golang版本(v0.3.0)还暂时不可用,后续会加上,请关注近期更新 背景 实际的大型爬虫开发项目中,爬虫工程师会被要...

tikazyq
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部