软件测试中的合规性测试(一致性测试)
一致性测试
一致性测试 一致性测试是一种软件测试技术,用于验证软件系统是否符合 IEEE、W3C 或 ETSI 等机构制定的标准和规范。它确定被测系统与特定标准的各项要求的符合程度。一致性测试也称为合规性测试。
它可能涉及技术方面,但其设计也涵盖以下内容:
- 性能
- 功能
- 鲁棒性
- 互操作性
- 系统行为
一致性测试的类型
一致性测试可以是逻辑测试或物理测试,它包括以下几种类型的测试:
下图展示了这些测试类型如何在一个一致性测试程序中协同工作。
为什么我们需要一致性测试?
- 为了检查系统是否满足要求
- 检查系统文档是否完整
- 为了检查开发、设计和评估是否符合规范。
我们需要测试什么?
- 实施所依据的标准
- 待开发系统的调用
- 规范范围
- 规范目标
一致性测试由管理层发起,并确保团队理解适用的标准、规范和程序。
标准和规范应清晰明确,避免歧义。如果标准和规范不够清晰,一致性测试本身有助于确定使其相关且可靠的必要步骤。
何时以及如何进行一致性测试?
当需要根据需求规范检查系统的整体一致性、完整性和正确性时,就会执行一致性测试。其方法与常规开发生命周期阶段并无太大区别:
- 分析需求规范
- 准备测试计划
- 编写测试用例并阐明其目的
- 为已准备好的测试设计创建文档
规范中的一些其他方面需要注意,特别是子集,它们通常分为三种类型——配置文件、级别和模块:
- 简介 它是规范的一个子集,其中包括满足特定用户群体所需的系统功能。
- 楼层 是规范的嵌套子集,其中 Level1 表示基本规范,Level2 表示 Level1 加上附加或新增功能。
- 科目 是一系列高度相关的标准和规范的集合。
一致性测试流程
一致性测试流程(或称合规性测试流程)对于确保软件应用程序的效率和性能,以及避免未来风险至关重要。有效的一致性测试遵循以下步骤:
- 分析标准和规范
- 选择测试工具和测试套件
- 设计测试程序
- 检查必要的验证
- 采纳相关的测试政策和认证
下面所示的符合性与合规性测试流程图,使流程更容易理解。
以用例的形式表达,同样的流程展示了每个阶段由哪个参与者执行。
一致性测试与合规性测试
一致性测试有时也被称为合规性测试,但两者之间存在一些基本区别。下表对它们进行了比较。
| 一致性测试 | 一致性测试 |
| 一种正式且精确的标准测试方法 | 一种非正式且不太精确的测试标准的方法 |
| 符合性认证仅适用于获得官方认证机构批准的操作系统。 | 提供 POSIX(可移植 Operating 系统接口)据称符合 |
| 用于测试完全支持给定标准的系统 | 用于测试仅支持部分给定标准的系统 |
一致性测试的优势
- 确保规范的正确实施。
- 确保可移植性和互操作性
- 提供适当的标准利用
- 确保接口和功能按预期运行。
- 有助于识别必须符合规范的领域和不需要符合规范的领域,例如语法和语义。
一致性测试的缺点
与其他类型的测试一样,一致性测试也包含一些难以执行且可能具有挑战性的任务。以下列举其中一些:
- 高效的一致性测试需要确定被测系统的类别以及合适的测试方法。
- 将规范分为配置文件、级别和模块
- 预定义值
- 设计成功运行测试流程所需的扩展、选项和方法。
一致性测试:关键观点
一致性测试的成功实施需要特别关注和掌握一些特定领域的知识:
- 最适合的测试方法
- 选择一款能够自动化测试过程的测试工具
- 必须清楚地认识到,一致性测试只能显示不符合项,而不能显示符合项本身。
- 设计和实施一致性测试程序
- 定义应如何正式执行
- 政策法规
移动系统一致性测试
与其他类型的软件测试一样,移动系统也可以进行一致性测试。系统组装完成后,在部署之前,需要通过一致性测试来检查其是否能够正常使用。
根据网络类型(例如 GSM 或 CDMA),会进行相应的测试以确保其符合性和互操作性。这些测试可能包括:
用例图示例
以下用例图展示了如何对已部署的系统执行一致性测试。 移动系统.
SIM卡测试可以分两个阶段进行详细阐述。第一阶段是 密码验证,如下所示。
第二阶段是 打电话有两种结果,呼叫成功和呼叫失败。
协议测试遵循相同的模式,正如本用例所示。
下面这个测试用例模板展示了如何编写协议测试的测试用例。
| 测试编号 | 测试场景 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 | 状态 | 备注 |
| 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 | 可以从任意状态到达任意状态 | 退出当前状态并返回上一个或下一个状态 | _ | 应该成功改变状态 | 成功改变状态 | 通过 | _ |
像这样的模板能够使测试流程更加统一。根据网络类型的不同,可能需要定义和执行数百个测试用例,以确认移动系统能够按照需求规范的要求运行。







