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的系统也无济于事。在开发生存周期中,功能测试和对客户期望的深刻理解是必须的。

相关推荐
腾讯云开发者4 分钟前
告别 271 万小时重复劳动:银行数字员工如何再造效率奇迹?
人工智能
xiaoxue..6 分钟前
Vibe Coding之道:从Hulk扩展程序看Prompt工程的艺术
前端·人工智能·prompt·aigc
大模型真好玩8 分钟前
LangChain1.0实战之多模态RAG系统(一)——多模态RAG系统核心架构及智能问答功能开发
人工智能·langchain·agent
聚梦小课堂9 分钟前
2025.11.16 AI快讯
人工智能·安全·语言模型
Mintopia20 分钟前
🚀 Trae 国际版 Max 模型升级:算力与智能的共舞
前端·人工智能·trae
Mintopia21 分钟前
🌍 WebAIGC的高算力消耗:技术优化与绿色计算路径
前端·人工智能·trae
kupeThinkPoem25 分钟前
代码生成工具GitHub Copilot介绍
人工智能
aneasystone本尊26 分钟前
重温 Java 21 之结构化并发
人工智能
咚咚王者41 分钟前
人工智能之数据分析 numpy:第四章 数组属性和数据类型
人工智能·数据分析·numpy
bubiyoushang88844 分钟前
基于MATLAB的马尔科夫链蒙特卡洛(MCMC)模拟实现方法
人工智能·算法·matlab