面向对象分析与设计 - 测试与质量保证



程序代码编写完成后,必须进行测试以检测并随后处理其中的所有错误。测试目的采用多种方案。

另一个重要方面是程序的适用性,它确定程序是否达到了其目标。适用性定义了软件质量。

面向对象系统的测试

测试是软件开发过程中的持续活动。在面向对象系统中,测试包含三个级别:单元测试、子系统测试和系统测试。

单元测试

在单元测试中,测试各个类。查看类属性是否按设计实现,以及方法和接口是否无错误。单元测试是实现结构的应用工程师的责任。

子系统测试

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

系统测试

系统测试涉及对整个系统进行测试,这是质量保证团队的责任。在组装新版本时,团队经常将系统测试用作回归测试。

面向对象测试技术

灰盒测试

可以为测试面向对象程序而设计的不同类型的测试用例称为灰盒测试用例。一些重要的灰盒测试类型包括:

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

  • 基于用例的测试 - 测试每个用例中的每个场景。

  • 基于类图的测试 - 测试每个类、派生类、关联和聚合。

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

子系统测试技术

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

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

  • 基于使用的测试 - 测试每个层次结构级别上的模块的接口和服务。测试从单个类开始,到包含类的较小模块,逐步到较大的模块,最后到所有主要子系统。

系统测试类别

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

  • Beta测试 - 由选择的合作客户组执行。

  • 验收测试 - 客户在接受交付物之前执行。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

软件质量保证

软件质量

Schulmeyer和McManus将软件质量定义为“整个软件产品的适用性”。高质量的软件正是它应该做的,并根据用户规定的需求规范的满足程度来解释。

质量保证

软件质量保证是一种确定软件产品适用程度的方法。确定软件质量所包含的活动包括:

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

质量因素

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

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

  • 可移植性 - 可移植性决定软件是否可以在具有不同硬件设备的不同平台上运行。

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

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

面向对象度量

度量可以大致分为三类:项目度量、产品度量和过程度量。

项目度量

项目度量使软件项目经理能够评估正在进行的项目的状况和绩效。以下度量适用于面向对象的软件项目:

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

产品度量

产品度量衡量已开发软件产品的特性。适用于面向对象系统的产品度量包括:

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

  • 继承结构 - 具有多个小型继承格的系统比具有单个大型继承格的系统结构更好。根据经验,继承树不应超过 7 (± 2) 个级别,并且树应保持平衡。

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

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

过程度量

过程度量有助于衡量过程的执行情况。它们在长期内收集所有项目的数据。它们被用作长期软件过程改进的指标。一些过程度量包括:

  • 千行代码 (KLOC) 数量
  • 缺陷去除效率
  • 测试期间检测到的平均故障数量
  • 每千行代码的潜在缺陷数量
广告