鉴源论坛·观通丨轨交软件测试技术详述

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

版块 | 鉴源论坛 · 观通

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

01

集成测试技术要求

1.1 总体要求

· 对软件集成测试进行静态测试应先于动态测试;

· 集成过程是动态进行的,在测试计划中须明确集成策略;

· 建立集成测试环境并通过测试组确认;

· 应逐项测试技术文档中明确的软件组件的功能、接口等特征;

· 软件组件功能特征应需要被正常和异常的测试用例覆盖;

· 应测试软件单元和软件部件之间的所有调用,达到要求的测试覆盖率;

· 应测试软件部件的输出数据及格式、部件之间及部件与硬件之间的接口;

· 对安全性关键的软件部件,应对其进行安全性分析,明确每一个危险状态和导致危险的可能原因,并对此进行针对性的测试。

1.2 集成测试-功能测试

· 部件(或单元)间接口数据传递和返回结果的正确性;

· 部件组装后,部件功能的正确性;

· 全局数据结构的正确性。

1.3 集成测试-接口测试

· 软件(或单元)间接口数据流的正确性;

· 数据通过接口是否丢失;

· 软件(或单元)间是否相互存在影响;

· 全局数据结构是否存在问题。

1.4 集成测试-逻辑测试

单元调用关系上的覆盖测试,要求调用覆盖率和功能覆盖率都应达到全覆盖。即测试应覆盖到每个单元均被调用过(主函数除外),且功能实现均完全覆盖。

1.5 集成测试-结束准则

· 软件代码满足软件需求规格说明、设计说明中各部件的功能、性能要求;

· 软件单元(或部件)无错误连接,集成为配置项;

· 接口正确;

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

· 集成测试文档、记录、代码等配置项进入受控库。

02

配置项合格性测试的要求

2.1 总体要求

· 在控制流图中作结构覆盖测试;

· 应逐项测试需求规格说明书中列出的配置项,以及配置参数所实现的功能、性能等特性;

· 配置项的每个功能特性应至少用一个正常的测试用例和一个异常的测试用例验证并覆盖;

· 配置项的每个性能特性应多次进行测试,取测试结果的最大值、最小值和平均值进行评估;

· 测试用例设计时,应考虑输入有效等价类值、输入无效等价类值以及上下边界值;

· 应测试配置项的输出及其格式;

2.2 文档审查

· 文档的完整性:主要审查文档是否符合软件任务书以及软件工程化要求中规定的软件文档。

· 文档的一致性:主要审查文档内容、文档之间内容的一致性和覆盖完整性。

· 文档的准确性:主要审查文档内容的描述是否符合任务要求、文档对功能、性能、接口以及安全性等方面的描述的正确性。

· 文档符合标准:主要审查文档与规范要求的格式的一致性、与规范中要求内容的一致性和正确性等。

2.3 配置项合格性测试-静态分析

静态分析宜借助静态分析工具开展。根据软件编程语言的具体特点制定度量元。

03

动态测试的要求

3.1 功能测试

功能测试是对软件需求规格说明书中的功能项进行遍历的测试,以验证软件是否满足需求。功能测试一般可以分为如下情况:

· 用正常值等价类进行输入的正常测试;

· 用非正常等价类进行输入的异常测试;

· 对每个参数的边界值测试,可以分为正常边界值、异常边界值,上边界、下边界等;

· 用正确的数据类型不断加压运行,测试阈值;

· 在配置项测试时对配置项的逻辑等进行验证。

3.2 性能测试

性能测试一般包括:

· 测试在获得定量结果时程序计算的精确度(处理运算的精度);

· 测试其时间特性和完成运行所需的时间(响应时间);

· 测试为完成功能所处理的数据量(容量);

· 测试程序运行所占用的空间;

· 测试其负荷潜力;

· 测试配置项各部分的协调性;

· 在系统测试时测试软件和硬件结合时,系统的运行性能;

· 在系统测试时测试系统对并发任务的处理能力。

注:性能测试过程中不能改变被测软件的运行逻辑、运行计算以及时序等,可通过外部信号进行监测,必要时可在程序中进行插桩,插桩代码不应影响程序的性能指标。

3.3 接口测试

对于接口的测试,应根据接口的具体情况分别对待,如硬件接口,应对硬件接口的每个指标进行测试,例如对RS422接口的测试,应对波特率、数据位、奇偶校验、停止位以及运行周期等进行测试,以检验是否满足设计的要求。如对软件内部数据接口的测试,应对软件的数据传递类型、数据范围等进行测试,以检验内部数据接口满足设计的情况。

3.4 边界测试

边界测试一般包括:

· 软件的输入和输出边界或端点的测试;

· 状态转换的边界或端点的测试;

· 功能界限的边界或端点的测试;

· 性能界限的边界或端点的测试;

· 容量界限的边界或端点的测试。

注:边界测试的数据选择主要针对测试过程中的输入数据,选择输入数据的要求一般选择在数据有效范围的边界和端点,如输入数据a的类型为整型,取值范围为(0,100),(300,500),则最少选择的边界数据为12个,即每个端点处至少选择3个边界数据;如输入数据b为状态参数,应选择b状态的几个边缘点进行测试;如测试的对象为性能测试,则测试处最大性能参数与最小的性能参数;如测试对象为容量界限,一般选择测试运行内存内容。对于性能测试和容量测试时,须对软件进行逻辑、功能、性能分析后进行边界测试用例的设计。

3.5 人机交互界面测试

人机交互界面测试用例设计应保证对设计中所有的正确的要求进行用例设计和测试,其次,应对未对保护的工作逻辑进行测试。人机交互界面中存在输入输出数据时,同时考虑对输入输出数据的功能性测试、边界测试等。

3.6 恢复性测试

恢复性测试的具体要求如下:

· 应对软件出现故障后通过容错措施恢复正常工作的能力进行测试;

· 应对软件失效后通过自复位或备机切换等措施等恢复继续工作的能力进行测试;

· 应对系统失效后重新运行时软件依据记录数据恢复续接式作业工作的能力进行测试;

· 恢复性测试可结合其它测试类型一起进行,如:安全性测试、功能测试、性能测试等。

注:恢复性测试一般仅仅针对软件或系统重新运行不会对整个系统造成影响的情况方才具备该测试类型,一般要求在运行过程中停止运行、条件触发复位等各项操作,测试复位并重新启动后,软件对系统的影响以及自身的运行情况的测试。

3.7数据处理测试

数据处理测试的具体要求如下:

· 应对数据文件的存取、数据库的存取、数据格式的转换等专门数据处理功能进行测试;

· 对数据库应用软件、数据采集软件、产生大量数据文件的软件等应进行数据处理测试;

· 数据处理测试可结合其它测试类型一起进行,如:功能测试、性能测试、接口测试等。

数据处理测试一般包括:数据采集功能的测试;数据融合功能的测试;数据转换功能的测试;剔除坏数据功能的测试;数据解释功能的测试。

数据处理测试一般关注数据计算过程的逻辑、计算的正确性,在具备标准数据的输入、输出时,可采用动态测试的方式实现,否则一般以代码审查的方式审查代码与模型的一致性。

3.8 安装性测试

安装性测试的具体要求如下:

· 应对应用软件安装到应用系统中的操作过程进行测试,验证安装过程的正确性;

· 应验证安装过程与产品规格说明或用户手册中所说明的安装步骤是否文实一致;

· 应对软件卸载过程进行测试,测试卸载后系统中的软件痕迹是否彻底清除干净;

· 对适用于多种操作系统或多种系统配置的软件,应进行各种环境下的安装测试。

对于嵌入式软件一般不进行安装性测试,安装性测试针对的主要是以安装包的形式提交产品库的要求时进行测试,主要测试的内容包括测试过程的符合性、安装过程的符合性以及卸载后是否存在遗留等。

3.9 结束准则

· 软件满足软件需求规格说明中所规定的功能、性能、接口、约束及限制等软件本身质量特性要求;

· 完成配置项合格性测试报告的编制并通过评审;

· 质量保证完成对配置项合格性测试的文档、程序是否符合规范的要求等符合性检查;

· 配置项合格性测试文档、记录、代码等配置项进入受控库。

04

总 结

本文从集成测试、配置项合格性测试、动态测试等方面介绍了测试的要求、各测试阶段应关注的测试内容、以及结束的准则。除以上所提及的测试活动之外,不同的产品或系统,也会对应增加或简化测试过程,如系统合格性测试、信息安全性等测试活动。从整个开发管理活动来说,还有软件使用准备、软件移交准备、软件验证等后续管理活动。

参考文献:

[1] GB-T 15532-2008 计算机软件测试规范

http://www.doc88.com/p-7394374075165.html

[2] GB T 33783-2017 可编程逻辑器件软件测试指南

https://wenku.so.com/d/7e5129fc816015b21f1d0f3c901d307b

某军工企业系统集成类项目管理系统的分析与设计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CVHub | CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO = CLIP + DINOv2 + SAM

本文来源公众号“CVHub”,仅用于学术分享,侵权删,干货满满。 原文链接:CVPR 2024 | 英伟达发布新一代视觉基础模型: AM-RADIO CLIP DINOv2 SAM 标题:《AM-RADIO: Agglomerative Vision Foundation Model Reduce Al…

vscode 之 output 输出中文乱码,终端输出中文正常

# 1. 背景 因为没钱买正版的软件,所以转战 vscode 编译器。 在编译 python 文件时,发现直接右键 runner code,输出中文乱码。 但是在 teiminal 终端 执行py test.py 时,输出正常,中文正常。 output 输出中文样式(中文…

Go微服务: Prometheus性能监控与Grafana平台的搭建

Prometheus 概述 promethues 是一套开源的监控&报警&时间序列数据库的组合基本原理是通过http协议周期性抓取被监控组件的状态适合Docker、Kubernetes环境的监控系统 Promethues 整体架构 一、抓取数据的两种方式 1 )Short-lived jobs 短暂的任务 不会提…

RedisTemplate操作Redis详解之连接Redis及自定义序列化

连接到Redis 使用Redis和Spring时的首要任务之一是通过IoC容器连接到Redis。为此,需要java连接器(或绑定)。无论选择哪种库,你都只需要使用一组Spring Data Redis API(在所有连接器中行为一致):…

面对.halo勒索病毒,如何有效防范与应对?

导言: 随着网络技术的不断发展,网络安全问题也日益凸显。其中,勒索病毒作为一种极具破坏性的网络攻击手段,近年来在全球范围内频发。其中,.halo勒索病毒作为勒索病毒家族中的一员,其危害性和传播性不容忽视…

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 论文阅读

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Proposed Approach4 Experiments5 Conclusion 文章信息: 原文链接:https://ojs.aaai.org/index.php/AAAI/article/view/4…

二叉树专题(有关二叉树的相关学习)

二叉树 1.数概念及结构 1.1树的结构 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结…

ollama离线部署llama3(window系统)

首先介绍下ollama是什么?Ollama是一个开源的大型语言模型服务工具,旨在为用户提供本地化的运行环境,满足个性化的需求。具体来说,Ollama是一个功能强大的开源框架,可以简化在Docker容器中部署和管理大型语言模型&a…

【C++】内联函数、auto、范围for

文章目录 1.内联函数2.auto关键字2.1auto简介2.2auto的注意事项2.3auto不能推导的场景 3.基于范围的for循环(C11)4.指针空值nullptr(C11) 1.内联函数 概念: 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函…

商场综合体能源监管平台,实现能源高效管理

商场作为大型综合体建筑,其能源消耗一直是备受关注的问题。为了有效管理商场能耗,提高商场能源效率,商场综合体能源监管平台应运而生。 商场综合体能源监管平台可通过软硬件一起进行节能监管,硬件设备包括各种传感器、监测仪表和…

Matter 1.3版标准新出炉,支持更多智能家居/家电/能源等设备

5月8日,CSA连接标准联盟正式发布了Matter 1.3标准,过去CSA一直保持约每六个月一次的标准更新节奏。 图源CSA连接标准联盟官方 获得一系列改进的Matter 1.3标准,将提升设备的互操作性,扩展支持的设备类别,并增强整个智…

Android 几种系统升级方式详解

目录 ◆ 概述 ● 几种启动模式 ● MISC分区 ● CACHE分区 ● 几种系统升级方式 ◆ Recovery升级 ● 升级包构成,签名,制作 ● 升级脚本 ● 升级过程 ◆ OTA升级 ● 升级包构成,制作 ● 升级脚本 ● 升级过程 ◆ fastboot升级 ◆ ADB升级 几…

【研发日记】Matlab/Simulink技能解锁(七)——两种复数移相算法

复数移相,也称为复数相位旋转,就是在原有复数的基础上,不改变模数,只把相位角做一定的偏移。 文章目录 前言 三角函数移相 复数乘法移相 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编…

(三)Spring教程——依赖注入与控制反转

Spring框架是为了简化企业级应用开发而创建的,其强大之处在于对Java SE和Java EE开发进行全方位的简化,Spring还对常用的功能进行封装,可以极大地提高Java EE的开发效率。 依赖注入是Spring的核心技术之一,也被称为“控制反转”&a…

【Linux】自动化编译工具——make/makefile(超细图例详解!!)

目录 一、前言 二、make / Makefile背景介绍 🥝Makefile是干什么的? 🍇make又是什么? 三、demo实现【见见猪跑🐖】 四、依赖关系与依赖方法 1、概念理清 2、感性理解【父与子👨】 3、深层理解【程序…

【JavaEE】HTTP 协议

文章目录 一、HTTP 协议1、HTTP 是什么2、理解 "应用层协议"3、理解 HTTP 协议的工作过程4、HTTP 协议格式5、HTTP 请求 (Request)5.1 认识 URL 6、 二、HTTPS1、HTTPS是什么2、"加密" 是什么3、HTTPS 的工作过程3.1 对称加密3.2 非对称加密3.3 证书3.4 完…

零样本身份保持:ID-Animator引领个性化视频生成技术新前沿

在最新的研究进展中,由Xuanhua He及其团队提出的ID-Animator技术,为个性化视频生成领域带来了突破性的创新。这项技术的核心在于其零样本(zero-shot)人物视频生成方法,它允许研究者和开发者根据单一的参考面部图像生成…

深度解刨性能测试工具Locust

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 Locust安装 …

gin框架学习笔记(三) ——路由请求与相关参数

参数种类与参数处理 查询参数 在讲解查询参数的定义之前,我们先来看一个例子,当我打开了CSDN,我现在想查看我的博客浏览量,那么我就需要点击我的头像来打开我的个人主页,像下面这样: 我们现在把浏览器的网址取下来,…

【35分钟掌握金融风控策略27】贷中风控策略与客户运营体系

目录 贷中风控策略与客户运营体系 贷中风控日标 贷中风控数据源 贷中风控策略与客户运营体系 贷中是风控的第二道防线,贷中阶段风控的重点工作就是存量客户风控及运营。在当下,新客市场趋于饱和且获客成本越来越高,所以,在做好…