📜  OOAD-测试和质量保证

📅  最后修改于: 2020-12-14 04:14:01             🧑  作者: Mango


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

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

测试面向对象的系统

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

单元测试

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

子系统测试

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

系统测试

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

面向对象的测试技术

灰箱测试

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

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

  • 基于用例的测试测试每个用例中的每个方案。

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

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

子系统测试技术

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

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

  • 基于使用的测试-在每个层次结构的级别上测试模块的接口和服务。测试从各个类到由类组成的小模块,再到较大的模块,最后是所有主要子系统。

系统测试类别

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

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

  • 验收测试-这是由客户在接受交付物之前进行的。

软件质量保证

软件质量

Schulmeyer和McManus将软件质量定义为“适合使用整个软件产品”。高质量的软件完全可以完成预期的工作,并可以满足用户制定的要求规范。

质量保证

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

  • 稽核
  • 制定标准和准则
  • 制作报告
  • 质量体系审查

品质因素

  • 正确性-正确性确定是否适当满足软件要求。

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

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

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

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

面向对象的指标

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

项目指标

项目度量标准使软件项目经理可以评估正在进行的项目的状态和性能。以下指标适用于面向对象的软件项目-

  • 场景脚本数量
  • 关键课程数
  • 支持班数
  • 子系统数

产品指标

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

  • 每个类的方法-确定的复杂性。如果假定一个类的所有方法都同样复杂,则具有更多方法的类将更复杂,因此更容易出错。

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

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

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

流程指标

流程指标有助于衡量流程的执行情况。它们是长期收集在所有项目中的。它们用作长期软件过程改进的指标。一些过程指标是-

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