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

⚡ 智能摘要

一致性测试证明软件系统符合 IEEE、W3C 或 ETSI 等机构制定的标准和法规,涵盖性能、功能、健壮性、互操作性和整体系统行为。

  • 🔘 也被称为: 合规性测试或类型测试,是对已发布标准进行的形式化验证。
  • 📚 覆盖范围: 包含合规性测试、负载测试、压力测试和容量测试,所有测试都在一个合规性测试程序中进行。
  • 🧭 子集: 在测试设计开始之前,规格会按配置文件、级别和模块进行分组。
  • 🔄 过程: 分析标准,选择工具,设计流程,验证,然后采纳认证政策。
  • 📱 移动: GSM 和 CDMA 设备增加了协议、SIM 卡、射频、音频和吸收测试。
  • 区别: 符合性是正式的、完全的支持;合规性是非正式的、部分的支持。

软件测试中的一致性测试和合规性测试流程

一致性测试

一致性测试 一致性测试是一种软件测试技术,用于验证软件系统是否符合 IEEE、W3C 或 ETSI 等机构制定的标准和规范。它确定被测系统与特定标准的各项要求的符合程度。一致性测试也称为合规性测试。

它可能涉及技术方面,但其设计也涵盖以下内容:

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

一致性测试的类型

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

下图展示了这些测试类型如何在一个一致性测试程序中协同工作。

一致性测试的类型包括合规性测试、负载测试、应力测试和容量测试。

为什么我们需要一致性测试?

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

我们需要测试什么?

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

一致性测试由管理层发起,并确保团队理解适用的标准、规范和程序。

标准和规范应清晰明确,避免歧义。如果标准和规范不够清晰,一致性测试本身有助于确定使其相关且可靠的必要步骤。

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

当需要根据需求规范检查系统的整体一致性、完整性和正确性时,就会执行一致性测试。其方法与常规开发生命周期阶段并无太大区别:

  • 分析需求规范
  • 准备测试计划
  • 编写测试用例并阐明其目的
  • 为已准备好的测试设计创建文档

规范中的一些其他方面需要注意,特别是子集,它们通常分为三种类型——配置文件、级别和模块:

  • 简介 它是规范的一个子集,其中包括满足特定用户群体所需的系统功能。
  • 楼层 是规范的嵌套子集,其中 Level1 表示基本规范,Level2 表示 Level1 加上附加或新增功能。
  • 科目 是一系列高度相关的标准和规范的集合。

一致性测试流程

一致性测试流程(或称合规性测试流程)对于确保软件应用程序的效率和性能,以及避免未来风险至关重要。有效的一致性测试遵循以下步骤:

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

下面所示的符合性与合规性测试流程图,使流程更容易理解。

从标准分析到认证的五阶段一致性测试流程

以用例的形式表达,同样的流程展示了每个阶段由哪个参与者执行。

包含测试人员和认证参与者的一致性测试流程用例图

一致性测试与合规性测试

一致性测试有时也被称为合规性测试,但两者之间存在一些基本区别。下表对它们进行了比较。

一致性测试 一致性测试
一种正式且精确的标准测试方法 一种非正式且不太精确的测试标准的方法
符合性认证仅适用于获得官方认证机构批准的操作系统。 提供 POSIX(可移植 Operating 系统接口)据称符合
用于测试完全支持给定标准的系统 用于测试仅支持部分给定标准的系统

一致性测试的优势

  1. 确保规范的正确实施。
  2. 确保可移植性和互操作性
  3. 提供适当的标准利用
  4. 确保接口和功能按预期运行。
  5. 有助于识别必须符合规范的领域和不需要符合规范的领域,例如语法和语义。

一致性测试的缺点

与其他类型的测试一样,一致性测试也包含一些难以执行且可能具有挑战性的任务。以下列举其中一些:

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

一致性测试:关键观点

一致性测试的成功实施需要特别关注和掌握一些特定领域的知识:

  1. 最适合的测试方法
  2. 选择一款能够自动化测试过程的测试工具
  3. 必须清楚地认识到,一致性测试只能显示不符合项,而不能显示符合项本身。
  4. 设计和实施一致性测试程序
  5. 定义应如何正式执行
  6. 政策法规

移动系统一致性测试

与其他类型的软件测试一样,移动系统也可以进行一致性测试。系统组装完成后,在部署之前,需要通过一致性测试来检查其是否能够正常使用。

根据网络类型(例如 GSM 或 CDMA),会进行相应的测试以确保其符合性和互操作性。这些测试可能包括:

用例图示例

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

已部署移动系统一致性测试用例图

SIM卡测试可以分两个阶段进行详细阐述。第一阶段是 密码验证,如下所示。

SIM 卡密码验证用例,包含正确和错误的 PIN 码路径

第二阶段是 打电话有两种结果,呼叫成功和呼叫失败。

创建一个通话用例,展示通话成功和通话失败的结果。

协议测试遵循相同的模式,正如本用例所示。

移动系统一致性测试中的协议测试用例

下面这个测试用例模板展示了如何编写协议测试的测试用例。

测试编号 测试场景 测试步骤 测试数据 预期结果 实际结果 状态 备注
PT001 协议无僵局 从沟通过程开始 _ 应成功建立通信 通信建立成功 通过 _
PT002 “Ping“命令超时后运行正常” 输入 Ping 命令为'Ping 在命令提示符中输入“-w” Ping 1000 应显示消息“Transmit 成功的。” 信息显示“Transmit 成功的。” 通过 _
PT003 统计“echo”请求的数量 输入 Ping 命令为'Ping 在命令提示符中使用“-n” Ping 4 应该开始了 ping使用 32 字节数据从 0.0.0.4 发送消息并显示“Transmit 成功的。” 开始 ping使用 32 字节数据从 0.0.0.4 发送消息,但显示消息“Transmit 失败的。” 失败 语义或功能错误
PT004 可以从任意状态到达任意状态 退出当前状态并返回上一个或下一个状态 _ 应该成功改变状态 成功改变状态 通过 _

像这样的模板能够使测试流程更加统一。根据网络类型的不同,可能需要定义和执行数百个测试用例,以确认移动系统能够按照需求规范的要求运行。

常见问题

除了ISO之外,IEEE、W3C、ETSI和3GPP是被提及最多的组织。它们各自发布规范,并且在许多情况下,还会发布一套官方测试套件,供实验室在授予认证前进行测试。

模型读取冗长的规范并将每个条款映射到一个候选测试用例,从而缩短测试用例的编写时间。 trac可行性工作。合格的审核员仍需签字确认,因为认证证据必须能够经得起审计员的检验。

是的,对于已发布测试套件中重复出现的测试框架代码和断言,代理运行器也可以在每次构建时重新执行该套件,但通过标准必须来自标准,而不是代理运行器本身。

经标准组织认可的认证机构或测试实验室,而非研发团队认可的机构。自行声明的结果通常被称为符合性声明,而非证书。

每当标准修订或实现方式发生变更,且该变更涉及已认证的接口时,都需要重新执行认证。许多证书还具有有效期,过期后需要重新执行整个认证流程。

一致性证明某个实现符合规范。 互操作性测试 然后证明两个独立构建的实现确实能够协同工作。通过第一个实现并不能保证第二个实现也有效。

主要采用黑盒测试。该测试套件会执行已发布的接口,并将观察到的行为与标准进行比较,而不依赖于内部实现方式。

A trac可行性矩阵将标准中的每个条款与测试用例、执行结果以及任何声称的配置文件或级别关联起来。审核员阅读的是这个包,而不是代码。

总结一下这篇文章: