990-33产品经理:Seven Principles of Testing 测试的七项原则

According to International Software Testing Qualification Board there are seven principles that should be considered when developing the testing strategy for a software project/product.

根据国际软件测试资格认证委员会(International Software Testing Qualification Board)的说法,在开发软件项目/产品的测试策略时,应该考虑七个原则。

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

By testing you can show presence of defects in a product but you can never prove that the product under test is defect free. The testing strategy should focus on clustering the defects in order to reduce the residual risk of the software to a minimum but, even if no defects are found, it is not a proof of correctness.

通过测试,您可以显示产品中存在的缺陷但你永远无法证明测试中的产品是无缺陷的。测试策略应该集中于对缺陷进行聚类,以便将软件的残余风险降低到最低限度。但是,即使没有发现缺陷,也不能证明正确性。

2) Exhaustive testing is impossible 2)穷举测试是不可能的

Testing all possible scenarios (all combinations of preconditions and inputs) is not feasible. Techniques like risk analysis should be used to prioritize and focus the testing efforts.

测试所有可能的情况(先决条件和输入的所有组合)是不可行的。应使用风险分析等技术来确定检测工作的优先顺序和重点。

3) Early testing

The testing activities should be started as early as possible during the software or system development life cycle. The cost to fix a bug increases exponentially if the bug is found in a later phase of the development life cycle. The testing activity shall be focused on defined objectives.

测试活动应该在软件或系统开发生存周期中尽早开始。如果bug是在开发生存周期的后期发现的,那么修复bug的费用将呈指数级增长。测试活动应集中在规定的目标上。

4) Defect clustering

The density of modules should be used to decide where to focus the testing effort. Usually a small number of modules contains most of the defects. That is why, in order to have an efficient test strategy, this areas of the software should be explored in more details by the testing strategy.

4)缺陷聚类

应该使用模块的密度来决定测试工作的重点。通常一小部分模块包含了大部分的缺陷。这就是为什么,为了有一个有效的测试策略,软件的这个区域应该被测试策略更详细地探索。

5) Pesticide paradox

The test cases should be reviewed and updated on regular basis. New tests should be developed to exercise new parts of the software or system. If this is not done and the same tests are repeated again and again eventually no new bugs will be found, but this does not mean that the system is defect free. Testing should focus on continuous improvement during the complete development life cycle.

5)农药悖论

测试用例应该定期被检查和更新。应该开发新的测试来测试软件或系统的新部分。如果不这样做,同样的测试一遍又一遍地重复,最终不会发现新的bug,但这并不意味着系统没有缺陷。测试应该关注在整个开发生存周期中的持续改进。

6) Testing is context dependent

Different kind of systems are tested in a different way. A safety critical system like an automotive or aircraft ECU will be tested more extensively than a presentation website of a company.

6)测试依赖于上下文

不同类型的系统以不同的方式进行测试。像汽车或飞机ECU这样的安全关键系统将比公司的演示网站进行更广泛的测试。

7) Absence -- of -- errors fallacy

In short words: if a systems does not fulfill the user needs and expectations then having a bug free system does not help. Functional testing and a deep understanding of the customer expectations is a must during the development life cycle.

7)无错误谬误

简而言之:如果一个系统不能满足用户的需求和期望,那么即使有一个没有bug的系统也无济于事。在开发生存周期中,功能测试和对客户期望的深刻理解是必须的。

相关推荐
985小水博一枚呀33 分钟前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
SEU-WYL2 小时前
基于深度学习的任务序列中的快速适应
人工智能·深度学习
OCR_wintone4212 小时前
中安未来 OCR—— 开启高效驾驶证识别新时代
人工智能·汽车·ocr
matlabgoodboy2 小时前
“图像识别技术:重塑生活与工作的未来”
大数据·人工智能·生活
最近好楠啊2 小时前
Pytorch实现RNN实验
人工智能·pytorch·rnn
OCR_wintone4212 小时前
中安未来 OCR—— 开启文字识别新时代
人工智能·深度学习·ocr
学步_技术2 小时前
自动驾驶系列—全面解析自动驾驶线控制动技术:智能驾驶的关键执行器
人工智能·机器学习·自动驾驶·线控系统·制动系统
IFTICing2 小时前
【文献阅读】Attention Bottlenecks for Multimodal Fusion
人工智能·pytorch·python·神经网络·学习·模态融合
大神薯条老师2 小时前
Python从入门到高手4.3节-掌握跳转控制语句
后端·爬虫·python·深度学习·机器学习·数据分析
程序猿阿伟2 小时前
《C++游戏人工智能开发:开启智能游戏新纪元》
c++·人工智能·游戏