作者 | 刘艳青 上海控安安全测评部测试经理
版块 | 鉴源论坛 · 观通
社群 | 添加微信号“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
某军工企业系统集成类项目管理系统的分析与设计