轨交软件测试技术

描述

作者 | 刘艳青 上海控安安全测评部测试经理

版块 | 鉴源论坛 · 观通

引语:第一篇对轨交信号系统从铁路系统分类和组成、城市轨交系统分类和组成、城市轨交系统功能、城市轨交系统发展方面做了介绍;第二篇从信号基础的讲述了信号机、转辙机、轨道电路等设置原则和含义;第三篇从轨交系统的安全性设计的必要性、控制设计、需求分析以及实现等方面进行分析;第四篇重点从联锁系统的原理方面进行阐述;第五篇从轨交软件测试过程管理分析;本文将从轨交软件的测试技术入手进行讲解。

01

软件开发过程简介

基本活动:为了保证开发能够实现任务的要求而必须完成的工作活动。

支持活动:为了保证开发过程按照既定的体系要求而开展的管理活动。

其他管理活动:为了确保软件开发过程的风险、保密、安全,与利益相关方、体系持续改进等工作而需要实施的管理活动。

软件测试

图 1

项目策划:

承办方接收到交办方的软件研制任务书时为软件立项,应为实施本规范所要求的活动和软件研制任务书中其他有关软件需求所要求的各项活动制定软件开发计划。该计划应与系统级策划一致,计划应以软件项目估计为基础。计划包括估计工作产品和任务的属性,确定需要的资源,协商承诺,产生进度表,以及标识和分析项目风险,制定测量、数据管理、评审、和利益相关方的协调计划等。

为了制定软件开发计划可能有必要反复进行这些活动。根据软件开发计划提供实施和控制软件项目活动的基础,而软件项目活动处理对项目交办方的承诺。项目进行中,软件开发计划常因下列情况而需修订:需求和承诺更改、不准确的估计、纠正措施和过程更改。

其结果为承办方负责完成的软件开发计划,开发计划中应包括估计报告。软件质量保证计划和软件配置管理计划一般合并在软件开发计划中,必要时,可以分别编制,但应在软件开发计划中说明理由。

支持活动:

a) 软件配置管理;

b) 软件产品评价;

c) 软件质量保证;

d) 纠正措施;

e) 评审;

f) 测量与分析。

其他管理活动:

a) 风险管理;

b) 保密有关活动;

c) 分承办方管理(即分承制方管理);

d) 与独立验证和确认机构的联系;

e) 与相关开发方的协调;

f) 项目过程的改进。

这些活动可以重叠或迭代应用,不必按上面列出的次序执行。针对具体软件,可对这些活动进行裁剪,软件开发过程及对这些活动进行的裁剪,各单位组织级应制定裁剪指南,项目级应在软件开发计划中描述。

02

软件内部测试

2.1 如何做软件内部测试

Why:

软件测试的目的是为了节省后期修改软件问题资金和进度。

第一,是为了确认软件的质量是否满足设计要求,一方面是为了确认软件做了期望做的事情;另一方面是确认软件是否以正确的方式来做了事情;(做了三级中规定的验证和确认的测试部分的工作);

第二,提供质量信息,为开发组提供质量相关信息;

第三,对软件和开发进行评价。

When:

软件测试一般是在完成软件实现后进行测试,但根据具体实施,最佳实践是在软件实现过程中完成了产品模块的编码后,及时进行测试工作能有效提高软件测试效率,集成测试工作可结合软件代码。

What:

软件测试就是为了验证和确认软件是否按照设计要求完成了既定的要求。

Who:

单元测试和集成测试工作一般由软件开发人员进行验证工作,配置项合格性测试和系统合格性测试一般由专业的测试队伍进行软件测试,配置项合格性测试由项目开发团队的测试组织进行,系统合格性测试一般由软件任务下达方组织实施。

How:

单元测试一般要开展代码审查、静态分析、逻辑测试、功能测试、边界测试;

集成测试一般要开展功能测试、接口测试和逻辑测试;

配置项合格性测试一般要开展文档审查、代码审查、静态分析、功能测试、性能测试、接口测试和余量测试、边界测试、人机界面测试、安全性测试、恢复性测试和安装性测试等;系统合格性测试要求和配置项合格性测试的类型基本一致。

软件测试

图 2

2.2 测试的工作流程

确定测试的对象和测试目的 → 明确测试依据 → 确定进入时机 → 确定测试类型和测试策略 → 规范测试步骤 → 明确测试的技术要求 → 建立结束准则 → 确定测试工作产品。

03

单元测试技术的要求

3.1 总体要求

a)应建立测试软件单元的环境,如桩模块和驱动模块;

b)对软件设计文档规定的软件单元的功能、性能、接口等逐项进行测试;

c)软件单元的每个特性应至少被一个正常测试用例和一个异常测试用例覆盖;

d)测试用例的输入应至少包括有效等价类值、无效等价类值和边界数据值;

e)满足语句覆盖率要达到100%的要求;

f)满足分支覆盖率要达到100%的要求;

g)满足输出数据及其格式的要求。

3.2 单元测试-代码审查的要求

a)代码审查应是人工阅读代码的结果,可以借助辅助工具予以辅助分析,但不应以工具扫描结果作为代码审查结果;

b)代码审查的内容包括:程序代码的控制流程、数据处理是否满足设计要求;程序代码的编程语言使用是否正确、规范、安全、可靠;程序代码是否满足软件可靠性安全性设计准则的相关要求;

c)代码审查应建立代码审查单,依据使用语言、软件特点,细化代码审查内容,检查的内容包括:命名规则检查、代码格式检查、内存使用检查、表达式判断逻辑检查、程序可读性检查、程序多余物检查、寄存器使用情况检查等内容。

软件测试

表 1

3.3 单元测试-静态分析的要求

静态分析应明确分析工具的名称和版本。

静态分析的内容包括:程序结构分析;数据结构分析;控制流程分析;程序质量度量。

静态分析结果的使用:为代码审查提供必要的信息为单元测试提供必要的信息;提供程序代码质量度量信息。

质量度量指标要求:模块的平均圈复杂度不大于10模块圈复杂度大于20的比例不大于20%;模块最大圈复杂度不大于80;源程序的总注释率不小于20%模块的平均规模不大于200行。

根据软件编程语言的具体特点开展控制流分析、数据流分析、表达式分析。

软件测试

表 2

3.4 单元测试—逻辑测试

a)语句覆盖率(SC)测试;

b)分支覆盖率(DC)测试;

逻辑测试主要通过动态运行测试用例,统计测试用例的运行路径,计算覆盖率。

语句覆盖率是指在运行完成所有设计的测试用例后,软件程序对每一条语句的覆盖百分比;

注:语句覆盖率 = (至少被执行一次的语句数量)/(可执行的语句总数)

分支覆盖率是指在运行完成所有设计的测试用例后,使得程序中每个判断至少取真分支和假分支一次,即判断的真假值均曾被满足的百分比。

注:分支覆盖率=(判定结果被评价的次数)/(判定结果的总数)

3.5 单元测试—结束准则

a)软件功能与设计说明一致;

b)控制流程正确;

c)语句覆盖率和分支覆盖率达到规定的覆盖率;

d)质量保证完成对内部测试的文档、程序是否符合规范的要求等符合性检查;

e)单元测试文档、代码等配置项进入受控库管理。

04

总 结

本文从为什么要做测试、什么时候是合适的介入测试的时机、如何做单元测试几个方面介绍了测试技术。测试不是一蹴而就,也不是可以跟着理论走一遍下了,就可以很好地做好测试这门技术。需要测试人员结合测试理论,系统全面地了解项目,多方面地挖掘测试本身的侧重点,结合项目的实际,挖掘项目自身的风险点。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分