面向开发人员的测试,第1部分:什么是测试?


Image title


在本系列中,我们将概述每个开发人员需要了解的关于测试的基本情况。首先,我们将从定义测试和讨论基本术语开始。目的是让所有团队成员对质量保证的基本术语和所有相关流程有共同的理解。稍后,这将改善沟通和审查质量。它将进一步提高每个成员的测试能力。

作为我们提供的专业服务的一部分,Bellatrix,我们咨询公司并帮助他们改进QA流程,并建立自动化测试基础设施。在对一些公司进行初步审查并提出改进建议后,我们需要聘请新的人才来帮助公司扩大我们提供的解决方案。这是我们为我们咨询的一家公司所做的培训的一部分,这样我们就可以教育他们的所有开发人员。

定义

IEEE软件工程术语标准词汇表中的软件质量定义:

  • 软件质量:系统、组件或过程满足特定要求的程度。
  • 软件质量:系统、组件或过程满足客户或用户需求或期望的程度。

测试是一个过程,而不是单一的活动。它包括所有生命周期活动,如静电,软件产品和相关工作产品的动态测试、规划、准备、评估。

测试的主要目标

  • 识别:识别软件中的缺陷
  • 信心:使涉众对系统的质量水平充满信心
  • 决策:为决策提供信息
  • 预防:通过改进开发过程和标准来防止未来的错误
  • 帮助达到标准
  • 合同或法律要求
  • 行业特定标准

故障成本

在需求阶段纠正问题可能需要花费1美元,而在实施后纠正问题可能需要数千美元。在极端情况下,软件或系统故障可能会造成生命损失。

Image title


条款

  • 异常:指基于需求规范、设计文档、用户文档、标准、其他规范或某人的感知或经验而偏离预期的任何情况。在审查、测试、分析、编译或使用软件产品或适用文档期间,可能会发现异常,但不限于此。[IEEE1044]
  • 错误/缺陷/故障/问题:组件或系统中可能导致组件或系统无法执行其所需功能的缺陷,例如不正确的语句或数据定义。如果在执行过程中遇到缺陷,可能会导致组件或系统出现故障。
  • 故障:组件或系统与其预期交付、服务或结果的实际偏差。也称为“外部故障”。
  • 缺陷/故障屏蔽:一个缺陷阻止检测到另一个缺陷的情况。

多少次测试才够呢?

过多的测试可能会推迟产品的发布,提高产品的价格。测试不充分隐藏了最终产品出错的风险。我们需要一种测试方法,为项目提供适量的测试。我们可以根据不同区域中的风险级别(技术风险和业务风险)来改变测试工作。

七个测试原则

测试显示存在缺陷

测试可以显示存在缺陷,但不能证明没有缺陷。适当的测试可以降低软件中未发现缺陷的可能性。

彻底的测试是不可能的

测试所有东西(输入和前提条件的所有组合)是不可行的,除非是在微不足道的情况下。应该使用风险分析和优先级来集中测试工作。

早期测试

测试活动应该在软件或系统开发生命周期中尽可能早地开始,并且应该集中在定义的目标上。错误发现得越晚,成本就越高!

缺陷聚集

测试工作应与模块的预期和稍后观察到的缺陷密度成比例地集中。少数模块包含在预发布测试期间发现的大部分缺陷或显示最多的操作故障

农药悖论

反复重复的相同测试往往会失去效果。以前未检测到的缺陷仍未被发现。测试用例需要定期检查和修改。需要编写新的和不同的测试。

测试依赖于上下文

测试在不同的环境中进行的方式不同。例如,安全关键型软件的测试方式与电子商务网站不同。

无差错谬论

如果所构建的系统不可用,并且不能满足用户的需求和期望,那么查找和修复缺陷本身的行为是无济于事的。