软件集成测试 – 示例

发布于 2023-6-20 17:39
浏览
0收藏

项目在遵循ASPICE或ISO26262要求时,软件集成测试活动通常是项目存在较大疑问的一个活动。一个普遍的疑问是:软件集成测试要测什么?


本文结合ASPICE模型要求,就该问题进行分析,并结合一个简单示例予以说明。

一. 软件集成测试,要测什么

ASPICE PAM V3.1模型中的关于软件集成测试内容,有如下陈述:

软件集成测试 – 示例 -汽车开发者社区

结合如上陈述,可以了解到:


  • 软件集成测试规范的依据是软件架构设计


软件集成测试规范要能充分验证:“集成之后的软件”中的软件组件之间的接口和交互,满足“软件架构设计”。

用通俗的话来讲就是:软件架构设计时,设计了软件组件与软件组件之间的接口和交互;软件集成测试时就需要验证:开发出来的软件组件与软件组件之间的接口和交互是与软件架构设计相符合的。


  • 软件集成测试需要覆盖软件架构设计中的所有设计项


软件架构设计中的所有设计项,都需要被验证(测试)。如下图所示:

软件集成测试 – 示例 -汽车开发者社区

二. 软件集成测试示例

(1) 软件架构设计


软件架构设计中,设计了“组件A”、”组件B”、”组件C”等3个组件。


组件B的接口:


  • FuncB_1(……);
  • FuncB_2(……);
  • FuncB_3(……);


组件C的接口:


  • FuncC_2(……);
  • FuncC_3(……);


组件A、组件B、组件C之间的动态行为(时序图),如下:

软件集成测试 – 示例 -汽车开发者社区

(2) 软件集成测试用例


①接口测试类型的集成测试


目的:验证组件间接口交互的正确性(即:在各种情况下,接口都是OK的)


根据软件架构设计中的接口定义,采用例如边界值、等价类等测试用例设计方法,设计接口测试用例。


  • “组件A”与“组件B”之间的接口:FuncB_1(……);
  • “组件A”与“组件B”之间的接口:FuncB_2(……);
  • “组件A”与“组件B”之间的接口:FuncB_3(……);
  • “组件A”与“组件C”之间的接口:FuncC_2(……);
  • “组件A”与“组件C”之间的接口:FuncC_3(……);


例如,“组件A”与“组件B”之间的接口:FuncB_1(……)的测试用例如下图所示:

软件集成测试 – 示例 -汽车开发者社区

测试用例设计方法可参考公众号文章:ISO26262软件部分的测试: (2) 软件集成测试


②动态行为类型的集成测试


目的:验证动态行为的正确性,例如:时序图中的时序、状态迁移图的条件跳转等


上述的时序图示例中,包括如下2个时序:

软件集成测试 – 示例 -汽车开发者社区

为验证时序的正确性,设计2个测试用例,分别验证时序1、时序2。


说明:


  • 本示例是简化示例,仅体现①接口测试类型的集成测试、②动态行为类型的集成测试
  • 示例中的接口,仅以“函数接口”类型的接口为例(例如:未包括变量类型的接口)
  • 示例中的动态设计,仅以“时序图”为例(例如:未包括状态迁移、调度、Timeline等类型的动态行为
  • 本示例采用的集成测试策略是:在接口测试中测试接口的各种情况,在基于时序图的动态行为测试中测试时序,该策略既能保证覆盖了架构设计中的所有设计项,又避免了测试用例之间的冗余。该测试策略仅是示例


文章转载自公众号:仨人谈起

分类
收藏
回复
举报
回复
相关推荐