OOAD - 测试和质量保证

一旦编写了程序代码,就必须对其进行测试以检测并随后处理其中的所有错误。 许多方案用于测试目的。

另一个重要的方面是程序目的的适应性,以确定该程序是否达到其预期目的。 适应性决定了软件质量。

测试面向对象的系统

测试是软件开发过程中的一项持续活动。 在面向对象的系统中,测试分为三个层次,即单元测试、子系统测试和系统测试。

单元测试

在单元测试中,会测试各个类。 查看类属性是否按照设计实现,方法和接口是否没有错误。 单元测试由实现该结构的应用工程师负责。

子系统测试

这涉及测试特定模块或子系统,并且是子系统领导的责任。 它涉及测试子系统内部的关联以及子系统与外部的交互。 子系统测试可用作每个新发布的子系统版本的回归测试。

系统测试

系统测试涉及对整个系统进行测试,由质量保证团队负责。 在组装新版本时,团队经常使用系统测试作为回归测试。

面向对象的测试技术

灰盒测试

可设计用于测试面向对象程序的不同类型的测试用例称为灰盒测试用例。 灰盒测试的一些重要类型是 −

  • 基于状态模型的测试 − 这包括状态覆盖、状态转换覆盖和状态转换路径覆盖。

  • 基于用例的测试 − 每个用例中的每个场景都经过测试。

  • 基于类图的测试 − 每个类、派生类、关联和聚合都经过测试。

  • 基于序列图的测试 − 测试了序列图中消息中的方法。

子系统测试技术

子系统测试的两种主要方法是 −

  • 基于线程的测试 − 集成并测试了在子系统中实现单个用例所需的所有类。

  • 基于使用的测试 − 测试层次结构中每个级别的模块的接口和服务。 测试从单个类开始,到类组成的小模块,逐渐到更大的模块,最后是所有主要子系统。

系统测试的类别

  • Alpha 测试 − 这是由软件开发组织内的测试团队执行的。

  • Beta 测试 − 这是由精选的合作客户群体执行的。

  • 验收测试 − 这是由客户在接受交付成果之前执行的。

软件质量保证

软件质量

Schulmeyer 和 McManus 将软件质量定义为"整个软件产品的适用性"。 高质量的软件会准确地完成其应该做的事情,并根据用户制定的需求规范的满足程度来解释。

质量保证

软件质量保证是一种确定软件产品适合使用程度的方法。 用于确定软件质量的活动包括 −

  • 审计
  • 制定标准和指南
  • 制作报告
  • 质量体系审核

质量因素

  • 正确性 − 正确性决定了软件需求是否得到适当满足。

  • 可用性 − 可用性决定了软件是否可以被不同类别的用户(初学者、非技术人员和专家)使用。

  • 可移植性 − 可移植性决定了软件能否在不同平台、不同硬件设备上运行。

  • 可维护性 − 可维护性决定了纠正错误和更新模块的难易程度。

  • 可重用性 − 可重用性决定了模块和类是否可以重用于开发其他软件产品。

面向对象的指标

指标大致可分为三类:项目指标、产品指标和流程指标。

项目指标

项目指标使软件项目经理能够评估正在进行的项目的状态和绩效。 以下指标适用于面向对象的软件项目 −

  • 场景脚本数量
  • 关键类的数量
  • 支持类数量
  • 子系统数量

产品指标

产品指标衡量已开发的软件产品的特征。 适用于面向对象系统的产品指标是 −

  • 每个类的方法 − 它决定了类的复杂性。 如果假设一个类的所有方法都同样复杂,那么具有更多方法的类就会更复杂,因此更容易出错。

  • 继承结构 − 具有多个小继承格子的系统比具有单个大继承格子的系统结构更加良好。 作为经验法则,继承树的层数不应超过 7 (± 2),并且树应保持平衡。

  • 耦合和内聚 − 具有低耦合和高内聚的模块被认为是更好的设计,因为它们允许更高的可重用性和可维护性。

  • 类响应 − 它衡量类实例调用的方法的效率。

流程指标

流程指标有助于衡量流程的执行情况。 它们是在很长一段时间内针对所有项目收集的。 它们被用作长期软件流程改进的指标。 一些过程指标是 −

  • KLOC(千行代码)数量
  • 缺陷去除效率
  • 测试期间检测到的平均失败次数
  • 每个 KLOC 的潜在缺陷数量