软件测试中的合规性测试(一致性测试)

一致性测试

一致性测试(Conformance Testing)是一种软件测试技术,用于验证软件系统是否符合IEEE、W3C或ETSI定义的标准和规范。一致性测试的目的是确定被测系统如何确认满足特定标准的各个要求。一致性测试也称为合规性测试(Compliance Testing)。

它可能涉及某些技术方面,但有意地包括

  • 性能
  • 函数
  • 鲁棒性
  • 互操作性
  • 系统行为

一致性测试的类型

一致性测试可以是逻辑的或物理的,它包括以下类型的测试;

Conformance Testing
一致性测试

为什么需要一致性测试?

  • 检查系统要求是否满足
  • 检查系统文档是否完整且必要
  • 检查开发、设计和评估是否符合规范

我们需要测试什么?

  • 实施所依据的标准
  • 待开发的系统调用
  • 规范范围
  • 规范目标

一致性测试由管理层发起,并完全保证团队及其对标准、规范和程序的理解。

为了构建高效的应用程序,应明确提及标准和规范,以避免歧义。如果未提及,则一致性测试本身有助于采取必要的步骤,使其具有相关性和可靠性。

何时以及如何执行一致性测试?

  • 当我们需要检查系统相对于需求规范的整体一致性、完整性和正确性时,就会执行一致性测试。
  • 执行它有几种方法,与我们的开发生命周期阶段没有太大区别,例如;
  • 分析需求规范
  • 准备测试计划
  • 准备测试用例及其目的
  • 为准备好的测试设计创建文档
  • 我们需要关注规范的一些额外方面,例如子集,通常有三种类型,例如“配置文件”、“级别”和“模块”。
  • 配置文件(Profile)是规范的一个子集,包括系统满足特定用户群需求的功能
  • 级别(Levels)是规范的嵌套子集,其中Level1表示基本规范,Level2表示Level1 + 附加/新功能
  • 模块(Modules)是显著相关标准和规范的集合

一致性测试流程

一致性测试流程(Conformance Testing Process)或合规性测试流程对于确保效率、性能和避免软件应用程序的未来风险是必要的。有效的符合性测试包括以下循序渐进的过程

  1. 分析标准和规范
  2. 选择测试工具和测试套件
  3. 设计测试程序
  4. 检查必要的验证
  5. 采用相关的测试政策和认证

让我们快速查看一致性/合规性测试流程的图解表示,以便更好地理解

Conformance Testing Process
合规性测试流程

借助用例,这个过程将更容易理解;

Conformance Testing Process

如上所述,一致性测试有时也称为合规性测试,但仍有一些基本事实使一致性测试与合规性测试有所不同。

我们将回顾两者之间的比较和对比;

一致性测试 合规性测试
一致性测试是测试标准的正式且精确的方法 合规性测试是测试标准的非正式且不太精确的方法
一致性认证仅适用于拥有官方认证机构的操作系统 提供单个 POSIX(可移植操作系统接口)API 的操作系统被称为合规
一致性测试用于测试完全支持给定标准的系统 合规性测试用于测试支持部分给定标准的系统

一致性测试的优点

  1. 确保规范的正确实施
  2. 确保可移植性和互操作性
  3. 提供标准的适当利用
  4. 使得接口和功能能够按预期工作
  5. 有助于识别应符合的区域和不应符合的区域,例如语法和语义

一致性测试的缺点

与其他类型的测试一样,一致性测试也有一些难以执行且可能成为挑战的任务。其中一些列出如下;

  1. 为了高效地执行一致性测试,需要识别需要测试的系统类别以及合适的方法
  2. 将规范分类为配置文件、级别和模块
  3. 预定义值
  4. 设计扩展、选项和方法以成功运行测试过程。

一致性测试:批判性观点

一致性测试在某些方面需要格外关注和知识才能成功实施;

  1. 最适合的测试方法
  2. 选择将自动化测试过程的测试工具
  3. 清晰理解一致性测试,它只显示不一致性而不是一致性
  4. 设计和实施一致性测试程序
  5. 定义应如何正式执行
  6. 政策和法规

移动系统的一致性测试

就像其他类型的软件测试一样,一致性测试也可以针对移动系统进行。系统组装完成后,在部署之前通过一致性测试对其进行检查。

根据网络类型(如 GSM 或 CDMA),执行测试以实现一致性和互操作性。
这些测试可能包括;

  • 协议测试
  • 安全/安全测试
  • SIM卡测试
  • 射频 (RF) 测试
  • 音频测试
  • 比吸收率测试

用例图示例

以下用例图显示了如何对已部署的移动系统执行一致性测试;

Example Use Case Diagram

此外,这可以通过以下方式分两个阶段详细说明 SIM 卡测试;

  1. 密码验证
Password Validation
密码验证
  1. 拨打电话
Making Call
拨打电话

系统可能存在两种情况,例如

1. 呼叫成功

2. 呼叫失败

同样,对于协议测试,请考虑以下用例;

Protocol Testing
协议测试

以下测试用例模板将帮助您了解如何为协议测试编写测试用例

测试ID 测试场景 测试步骤 测试数据 预期结果 实际结果 状态 备注
PT001 协议无死锁 开始通信过程 _ 应成功建立通信 通信成功建立 通过 _
PT002 “Ping”命令在超时时正常运行 在命令提示符中输入 Ping 命令为“Ping -w” Ping 1000 应显示消息“传输成功”。 消息显示“传输成功”。 通过 _
PT003 计算“echo”请求的数量 在命令提示符中输入 Ping 命令为“Ping -n” Ping 4 应开始 Ping 0.0.0.4,数据为 32 字节,并应显示消息“传输成功”。 开始 Ping 0.0.0.4,数据为 32 字节,但显示消息“传输失败”。 失败 语义/功能错误
PT004 任何状态都可以从任何状态到达 退出一个状态并返回到上一个或下一个状态 _ 应成功更改状态 成功更改状态 通过 _

这些术语表明一致性测试也适用于测试技术标准的实施。

为了使测试过程统一,定义了测试用例。根据网络类型,可以定义和执行数百个测试用例,以确保移动系统按照需求规范正常工作。

摘要

  • 一致性测试也称为类型测试,这是一种正式的测试方式
  • 它用于确定系统是否符合需求规范
  • 它包括压力测试、负载测试、容量测试和合规性测试
  • 它也被认为是合规性测试,但两者之间存在基本差异
  • 一致性测试程序、测试方法和测试工具是一致性测试中一些最关键的领域
  • 通过软件工程中的一致性测试,可以实现标准利用和互操作性的保证。
  • 一致性测试也适用于移动系统。