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

相关推荐
昨日之日20061 小时前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_1 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
深度学习lover1 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
阡之尘埃4 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
孙同学要努力6 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
Eric.Lee20216 小时前
yolo v5 开源项目
人工智能·yolo·目标检测·计算机视觉
布说在见7 小时前
层次与网络的视觉对话:树图与力引导布局的双剑合璧
信息可视化·数据挖掘·数据分析
其实吧37 小时前
基于Matlab的图像融合研究设计
人工智能·计算机视觉·matlab
丕羽7 小时前
【Pytorch】基本语法
人工智能·pytorch·python