版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ICS35.080
CCSL67
团体标准
CQAE*****—2024
嵌入式软件白盒测试方法
WhiteBoxTestingMethodforEmbeddedSoftware
(报批稿)
202X-XX-XX发布202X-XX-XX实施
中国电子质量管理协会发布
CQAE*****—2024
目 次
前 言.................................................................................................................................................................I
嵌入式软件白盒测试方法.....................................................................................................................................1
1范围...................................................................................................................................................................1
2规范性引用文件...............................................................................................................................................1
3术语和定义.......................................................................................................................................................1
3.1嵌入式软件....................................................................................................................................................1
3.2嵌入式系统....................................................................................................................................................1
3.3软件白盒测试................................................................................................................................................1
3.4软件黑盒测试................................................................................................................................................1
3.5软件单元测试................................................................................................................................................2
3.6单元集成测试................................................................................................................................................2
3.7逻辑覆盖率....................................................................................................................................................2
3.8语句覆盖........................................................................................................................................................2
3.9判定覆盖........................................................................................................................................................2
3.10条件覆盖......................................................................................................................................................2
3.11判定/条件覆盖.............................................................................................................................................2
3.12修正的条件判定覆盖(MC/DC).............................................................................................................2
3.13条件组合覆盖..............................................................................................................................................2
3.14路径覆盖......................................................................................................................................................3
3.15基本路径覆盖..............................................................................................................................................3
3.16控制流图......................................................................................................................................................3
3.17LCSAJ密度.................................................................................................................................................3
4嵌入式软件白盒测试方法.................................................................................................................................3
4.1文档审查........................................................................................................................................................3
4.2静态代码分析................................................................................................................................................3
4.3代码审查........................................................................................................................................................4
4.4代码走查........................................................................................................................................................4
4.5逻辑测试........................................................................................................................................................4
4.6单元集成测试................................................................................................................................................5
5软件白盒测试过程...........................................................................................................................................5
5.1测试需求分析与策划....................................................................................................................................5
5.1.1输入条件.................................................................................................................................................5
5.1.2活动要求.................................................................................................................................................6
5.1.3阶段输出.................................................................................................................................................6
5.2测试设计与实现............................................................................................................................................6
CQAE*****—2024
5.2.1输入条件.................................................................................................................................................6
5.2.2活动要求.................................................................................................................................................6
5.2.3阶段输出.................................................................................................................................................7
5.3测试执行........................................................................................................................................................7
5.3.1输入条件.................................................................................................................................................7
5.3.2活动要求.................................................................................................................................................7
5.3.3阶段输出.................................................................................................................................................7
5.4测试总结........................................................................................................................................................7
5.4.1输入条件.................................................................................................................................................7
5.4.2活动要求.................................................................................................................................................8
5.4.3阶段输出.................................................................................................................................................8
6测试要求...........................................................................................................................................................8
6.1静态测试........................................................................................................................................................8
6.1.1测试对象...................................................................................................................................................8
6.1.2测试目的...................................................................................................................................................9
6.1.3进入条件...................................................................................................................................................9
6.1.4内容要求...................................................................................................................................................9
6.1.5测试环境...................................................................................................................................................9
6.1.6结束准则...................................................................................................................................................9
6.1.7阶段输出.................................................................................................................................................10
6.2单元测试......................................................................................................................................................10
6.2.1测试对象...............................................................................................................................................10
6.2.2测试目的...............................................................................................................................................10
6.2.3进入条件...............................................................................................................................................10
6.2.4内容要求...............................................................................................................................................10
6.2.5测试环境...............................................................................................................................................11
6.2.6结束准则...............................................................................................................................................11
6.2.7阶段输出...............................................................................................................................................11
6.3单元集成测试..............................................................................................................................................11
6.3.1测试对象.................................................................................................................................................11
6.3.2测试目的.................................................................................................................................................12
6.3.3进入条件.................................................................................................................................................12
6.3.4内容要求.................................................................................................................................................12
6.3.5测试环境.................................................................................................................................................12
6.3.6结束准则.................................................................................................................................................12
6.3.7阶段输出.................................................................................................................................................13
6.4回归测试......................................................................................................................................................13
6.4.1测试对象..................................................................................................................................................13
6.4.2测试目的..................................................................................................................................................13
6.4.3进入条件..................................................................................................................................................13
6.4.4内容要求..................................................................................................................................................13
6.4.5结束准则..................................................................................................................................................14
I
CQAE*****—2024
6.4.6阶段输出..................................................................................................................................................14
附录A(资料性附录)设计文档审查项...........................................................................................................15
附录B(资料性附录)静态分析内容及度量指标...........................................................................................18
附录C(资料性附录)代码审查单...................................................................................................................25
附录D(资料性附录)测试充分性指标...........................................................................................................34
附录E(资料性附录)单元集成方法示例.......................................................................................................43
附录G(资料性附录)单元测试示例...............................................................................................................52
附录H(资料性附录)单元集成测试示例.......................................................................................................56
附录I(资料性附录)测试用例设计要求........................................................................................................60
附录J(资料性附录)代码常见缺陷示例........................................................................................................63
CQAE*****—2024
嵌入式软件白盒测试方法
1范围
本文件规定了嵌入式软件白盒测试的方法、过程以及要求。
本文件适用于嵌入式软件产品的测试,三方评测机构参照执行。
2规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,标注日期的引用文
件,仅该日期对应的版本适用于本文件;不标注日期的引用文件,其最新版本(包括所有的修改单)适
用于本文件。
GB/T9386-2008计算机软件测试文档编制规范
GB/T15532-2008计算机软件测试规范
GB/T11457-2006信息技术软件工程术语
GB/T17544-1998信息技术软件包质量要求和测试
GB/T18905.1-2002软件工程产品评价第1部分:概述
GB/T25000.51-2016系统与软件工程系统与软件质量要求和评价(SQuaRE)第51部分:就绪可
用软件产品(RUSP)的质量要求和测试细则
GJB/Z141-2004军用软件测试指南
3术语和定义
GB/T11457和GB/T9386确定的以及下列术语和定义适用于本文件。
3.1嵌入式软件
嵌入式软件,是指专门设计用于控制、监视、或辅助操作机器和硬件设备的计算机程序。通常嵌
入在设备内部,为设备提供智能和自动化功能。
3.2嵌入式系统
嵌入式系统,是以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、
体积、功耗要求严格的专用计算机系统。
3.3软件白盒测试
软件白盒测试,又称透明盒测试、结构测试,程序代码对测试人员是可见的。测试人员清楚地了解
程序内部逻辑结构和处理过程,检查程序内部结构和路径是否达到了预期的要求。
3.4软件黑盒测试
1
CQAE*****—2024
软件黑盒测试,又称不透明盒测试、基于规格说明的测试,程序代码对测试人员是不可见的。测试
人员不需要了解程序的内部结构和处理过程,只需要依据需求规格说明书等文档中软件功能相关的输入、
输出和外部处理过程来进行测试。
3.5软件单元测试
软件单元测试,又称软件模块测试,在计算机编程中,针对软件单元(软件设计的最小单位)来进
行正确性检验的测试工作。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单
元将在与程序的其他部分相隔离的情况下进行测试。
3.6单元集成测试
单元集成测试,又称软件组装测试,依据软件概要设计说明对计算机软件部件进行的测试,集成测
试主要关注软件单元间的接口以及集成后部件的外部特性。
3.7逻辑覆盖率
逻辑覆盖率是单元测试的一种用例充分性度量,描述程序中源代码被测试的比例和程度,常见的覆
盖率标准包括:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、修正的判定条件覆盖、条件组合覆盖、
路径覆盖等。
3.8语句覆盖
语句覆盖是指通过设计足够多的测试用例,使得被测程序中每一个可执行语句至少执行一次。
3.9判定覆盖
判定覆盖,又称分支覆盖或判断覆盖,是指通过设计足够多的测试用例,使得程序中每个判定的取
真分支和取假分支至少执行一次。满足了判定覆盖的测试用例集一定满足语句覆盖。
3.10条件覆盖
条件覆盖是指通过设计足够多的测试用例,使得程序中每个判定的每个条件的真值和假值至少执行
一次。
3.11判定/条件覆盖
判定/条件覆盖是指通过设计足够多的测试用例,使得程序中每个判定的每个条件的真值和假值至
少执行一次,同时每个判定的取真分支和取假分支至少执行一次。满足了判定/条件覆盖就一定满足判
定覆盖和条件覆盖。
3.12修正的条件判定覆盖(MC/DC)
修正的条件判定覆盖(Modifiedcondition/decisioncoverage,简称MC/DC)是指通过执行足够多的
测试用例,使得程序除了满足判定/条件覆盖,还要求判定中的每一个条件都被证明可以独立影响判定
的输出。满足了MC/DC覆盖就一定满足判定/条件覆盖。
3.13条件组合覆盖
条件组合覆盖是指通过设计足够多的测试用例,使得程序中每个判定的所有可能的条件取值组合至
少执行一次。满足了条件组合覆盖就一定满足修正的条件/判定覆盖。
I
CQAE*****—2024
3.14路径覆盖
路径覆盖是指通过设计足够多的测试用例,覆盖程序中所有可能的路径。
3.15基本路径覆盖
基本路径覆盖是指在程序控制流图的基础上,通过分析程序控制流图的环路复杂度,导出基本可执
行路径的集合,然后据此设计测试用例,并且设计出的测试用例要保证被测程序的每一条可执行语句至
少执行一次。
3.16控制流图
控制流图也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,
由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。用图的形式表示一个过程内所
有基本块执行的可能流向,也能反映一个过程的实时执行过程。
3.17LCSAJ密度
LCSAJ密度,是指每行代码被多少个LCSAJ所包含的度量。用于评估代码复杂度和可靠性的指标,
通过计算每一个代码被LCSAJ包含的次数来得出。
4嵌入式软件白盒测试方法
嵌入式软件白盒测试是指通过文档审查、静态代码分析、代码审查、代码走查、逻辑测试和单元集
成测试等手段对嵌入式软件的结构测试、逻辑测试或基于程序的测试,了解程序的内部结构,并根据内
部构造设计测试用例。
4.1文档审查
文档审查是依据软件开发文档编写要求,开展针对软件白盒测试依据的软件文档进行审核,如概要
设计说明、详细设计说明等。
文档审查的具体要求包括:
1)审查软件文档种类是否齐全,如是否包括软件需求规格说明、软件概要设计说明、软件详细设
计说明等;
2)审查软件文档内容是否完整,如功能描述是否完整,软件单元描述是否完整,数据流、控制流
和接口等描述是否清晰等;
3)审查软件文档描述是否准确,如文档内容是否正确、准确、可测试,文档描述是否存在二义性、
错别字等;
4)审查软件文档格式是否规范;
5)审查软件文档是否文文一致、设计文件与软件程序逻辑相符。
为适应不同软件白盒测试文档的审查,需要编制不同的文档检查单。同时应考虑嵌入式软件的开发
和应用环境的具体要求。
文档检查要求见附录A。
4.2静态代码分析
3
CQAE*****—2024
静态代码分析,又称静态分析,从被测代码语法、结构、过程、接口等方面着手,发现被测程序的
缺陷,验证被测程序的质量。静态分析通常是使用代码扫描工具来进行的,代码扫描工具内部集成了静
态代码分析规则集,用于扫描和找出代码的不符合项。
通过静态分析对被测程序进行质量检查,为其他人了解被测程序结构以及复杂程度提供了快速概览。
静态分析的内容通常包括程序结构分析、数据结构分析、控制流分析、数据流分析、接口分析、表达式
分析、语言使用分析、代码度量指标分析等,具体分析内容见附录B.1、B.2。
静态代码分析的重要工作之一就是统计被测代码的度量元,确认代码质量度量元是否符合要求。代
码质量度量的主要目标是控制代码的复杂度,使得代码具有更好的可读性、可重用性、可维护性等。一
般情况下,代码度量通过工具获取一组软件的度量值,以衡量其代码的复杂性和可维护性。代码度量常
见的度量元包括:模块行数、注释率、扇入数、扇出数、圈复杂度、循环嵌套层数等,通常指标要求内
容见附录B.3。
4.3代码审查
代码审查是一种对嵌入式系统中的代码进行细致分析和评估的过程。目的是确保代码的质量和安全
性,以及符合规范和最佳实践。代码审查主要从两个方面进行,一是合规性的审查,主要参考的依据为
各类通用规范、行业标准以及企业内部的规范性文档。二是符合性的审查,主要参考该项目的各种文档
包括合同、需求、设计等内容,通过软件测试工具对代码进行规则扫描的同时加以人工审查。工作内容
上包含编码规范、代码逻辑、程序结构、需求满足四个审查维度。具体的内容如下:
1)编码规范的检查:根据编码规范,对程序的编码进行符合性检查。这个过程需要确定编码规范
的检查标准。确定测试工具并使用工具扫描,扫描结果应经过人工核实确认;最后需要对编码规范问题
进行分类、统计和量化分析;
2)代码逻辑审查:审查程序代码的条件判别、控制流程、数据处理等是否满足设计要求。必要时
要对算法的可行性进行推理验证;
3)程序结构审查:依据设计文档,审查程序代码的结构设计,包括程序结构设计和数据结构设计,
接口设计,在程序设计层发现问题;
4)需求满足审查:依据需求文档及其他相关资料包括合同以及行业要求,审查程序代码的具体功
能实现,必要时要求对具体算法进行推理以验证该算法是否能够满足需求。
需要注意的是在软件静态测试开展的代码审查时,应根据软件的特点及审查内容,确定审查所用的
代码审查单,通常不同编程语言的代码审查单要求内容见附录C。
4.4代码走查
代码走查是由测试和开发人员共同组成走查小组以人脑模拟计算机,沿程序逻辑执行测试用例,形
成对代码的集体阐述和理解,查找代码中可能存在的缺陷。代码走查的通常要求如下:
1)成立走查小组,集体对代码进行阅读讨论,集体扮演人脑计算机角色对代码进行走查;
2)针对需要走查的代码,根据流程图和代码分支,设计具有代表性的测试用例,覆盖走查内容,
测试用例需明确输入条件、走查步骤和执行结果;
3)代码走查过程应具有完整的走查记录,记录测试用例执行过程中每一步骤的走查结果。
4.5逻辑测试
逻辑测试是测试程序逻辑结构的合理性、实现的正确性。通过对代码控制流所表达出来的逻辑结构
的遍历,实现对代码不同程度的覆盖测试。逻辑测试应由测试人员利用程序内部的逻辑结构及有关信息,
设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态
是否与预期的状态一致。逻辑测试一般需考虑进行:
1)语句覆盖;
2)判定覆盖;
I
CQAE*****—2024
3)条件覆盖;
4)判定/条件覆盖;
5)条件组合覆盖;
6)修正的判定/条件覆盖;
7)路径覆盖。
单元级别的逻辑测试,可以借助单元测试工具便捷地实现各种覆盖率信息的获取,具体详见附录D。
4.6单元集成测试
单元集成测试是在单元测试之后,将多个已经通过单元测试的模块组合在一起进行测试。目标是验
证这些模块能够正确地协同工作。单元集成测试可以通过测试整个软件的不同组件之间的交互来发现可
能存在的问题,例如接口错误、数据传递错误等。单元集成测试需要确保各个模块能够正确地集成,并
且系统的整体功能能够按照预期工作。单元集成测试的方法一般包括:一次性集成测试方法、自顶向下
集成测试方法、自底向上集成测试方法、混合集成测试方法,具体描述如下:
1)一次性集成测试方法:将经过单元测试的所有单元一次性进行集成,是一种非增量式的集成方
法。集成的结果是整个软件,以验证整个软件的功能和性能。这种方法能够快速验证软件是否正确实现
了所需的功能性能等指标,但当测试过程出现缺陷时,不容易对缺陷进行定位和修复;
2)自顶向下集成测试方法:根据软件的模块结构图,按照调用层次从高到低的顺序对模块进行集
成。也就是从最顶层模块(往往为main函数)向下逐步集成,并在集成的过程中进行测试,直至组装成
目标系统。这种方法往往适用于控制类的模块集合,由上层的控制模块逐渐集成下层的执行模块,以验
证控制逻辑的有效性,同时验证执行状态和结果的获取及处理逻辑的有效性;
3)自底向上集成测试方法:根据软件的模块结构图,按照调用层次从低到高的顺序对模块进行集
成。也就是从最底层模块(没有再调用其他非库模块的模块)向上逐步集成,并在集成的过程中进行测
试,直至组装成目标系统。这种方法往往适用于执行类的模块集合,即最底层的模块往往实现接口数据
收发、文件读写、数据处理计算等相关功能,应首先验证执行单元模块本身的正确性,再向上逐渐集成,
以验证底层执行模块调用场景、执行控制等逻辑的正确性;
4)混合集成测试方法:混合集成是一种结合多种集成方法的综合性集成方法。在混合集成中,可
以根据具体需求和情况,灵活选择自顶向下集成、自底向上集成,甚至是一次性集成的组合方式。通过
混合集成,可以充分利用不同方法的优势,有效地发现和解决问题,提高测试的全面性和效率。混合集
成,可以首先从主模块开始,逐步集成整个程序的控制逻辑框架。
具体的单元集成测试方法示例见附录E。
5软件白盒测试过程
5.1测试需求分析与策划
本阶段主要是根据软件研制过程中产生的相关文档,进行文档审查,确定需要测试的内容;确定测
试的充分性要求;提出测试的基本方法;确定测试的资源和技术需求;制定测试资源计划和测试进度计
划;以及确定交付工作产品。
5.1.1输入条件
开展软件测试需求分析与策划活动的输入应包括:
1)软件白盒测试要求、合同或其他等效文件;
2)软件开发文档,例如,软件详细设计说明、软件概要设计说明、接口设计说明等;
5
CQAE*****—2024
3)软件运行资源;
4)软件源代码、可执行代码;
5)建立受控库和产品库;
6)测试所需的硬件、软件环境。
5.1.2活动要求
软件测试需求分析与策划要求一般包括:
1)确定项目测试内容覆盖的范围及范围所要求的覆盖程度;
2)确定测试通过准则和结束条件;
3)确定测试策略、技术和方法;
4)确定测试工具;
5)确定测试资源要求,包括软硬件设备、环境条件、人员数量和技能等要求;
6)进行项目风险分析,列举项目可能遇到的风险,并制定风险的缓解措施或应急措施;
7)确定测试进度及人员安排;
8)编写软件白盒测试计划。
5.1.3阶段输出
1)测试环境确认;
2)测试对象和范围确认;
3)测试通过准则和结束条件确认;
4)测试策略、技术和方法确认;
5)测试工具确认;
6)风险管理确认;
7)测试进度及人员安排确认;
8)软件白盒测试计划。
5.2测试设计与实现
本阶段主要是开展软件测试设计与实现需要编制测试用例、设计测试数据,准备测试资源,以及确
定交付工作产品。
5.2.1输入条件
开展软件测试设计与实现的输入应包括但不限于以下内容:
1)软件白盒测试计划;
2)测试工具;
3)测试脚本和程序;
4)测试数据。
5.2.2活动要求
软件测试设计与实现的要求一般包括:
1)测试环境建立;
2)软件白盒测试用例设计,包括输入、期望测试结果、测试结果评估准则、执行步骤;
3)测试脚本和程序编写;
4)测试数据获取和验证;
I
CQAE*****—2024
5)根据测试资源、风险等约束条件,确定测试用例执行顺序;
6)编写软件白盒测试说明。
5.2.3阶段输出
1)测试环境建立记录;
2)软件白盒测试用例;
3)测试脚本和程序;
4)软件白盒测试说明。
5.3测试执行
本阶段主要是根据软件白盒测试计划、测试说明执行测试,包括静态测试中文档审查、静态代码分
析、代码审查、代码走查逻辑测试,单元测试、单元集成测试,以及确定交付工作产品。
5.3.1输入条件
开展软件测试执行的输入应包括:
1)通过评审且问题归零的软件白盒测试计划、测试说明、回归测试说明;
2)已建立并通过验证的软件白盒测试环境、测试数据、测试工具等;
3)被测软件已纳入配置管理。
5.3.2活动要求
软件白盒测试执行要求一般包括:
1)静态测试通常先于单元测试、单元集成测试执行;
2)文档审查、代码审查应按照审查单要求逐项进行,记录审查情况、存在的问题等信息;
3)应按照软件白盒测试说明的内容和要求执行测试用例,如实、具体、完整地记录测试输入
数据、测试结果。当测试结果有量值要求时,应准确记录实际的量值。根据每个软件白盒
测试用例的期望测试结果、实际测试结果和评估准则,分析并判定测试结果;
4)在执行软件白盒测试的过程中,可根据测试的进展情况补充软件白盒测试用例,变更软件
白盒测试说明,必要时变更软件白盒测试计划;
5)当所有的软件白盒测试用例执行完毕,应对软件白盒测试的充分性进行分析。如果发现软
件白盒测试工作不足,或软件白盒测试未达到预期要求时,可增加新的软件白盒测试用例
或测试数据,直到达到充分性要求。执行软件白盒测试后,变更软件白盒测试说明,必要
时变更软件白盒测试计划;
6)汇总软件白盒测试中有异议的问题,组织问题确认评审。
5.3.3阶段输出
1)软件白盒测试执行记录;
2)软件白盒问题报告单。
5.4测试总结
本阶段主要是根据软件测试执行情况,分析评价测试工作,总结形成测试报告,以及确定交付工作
产品。
5.4.1输入条件
7
CQAE*****—2024
开展软件白盒测试总结的输入应包括:
1)软件白盒测试要求、合同或其他等效文件;
2)被测软件开发文档,例如,软件源代码、详细设计说明、概要设计说明、接口设计说明、
数据库设计说明等;
3)软件白盒测试文档,包括软件白盒测试计划、软件白盒测试说明、软件白盒测试记录、软
件白盒问题报告、软件白盒回归测试方案(如需要)。
5.4.2活动要求
软件测试总结要求一般包括:
1)分析和评价软件白盒测试工作,一般包括:
a)总结软件白盒测试计划和软件测试说明的变化情况及其原因;
b)分析软件白盒测试工作完成情况,包括回归测试;
c)分析软件白盒测试环境与软件实际运行环境之间的差异及其对测试结果的影响;
d)对测试异常终止情况,分析未能被测试活动充分覆盖的范围及其理由。
2)分析和评价被测软件,一般包括:
a)说明被测软件对软件研制过程中文档规定的软件功能、性能、接口及质量特性,以及
对测试需求分析过程中的测试计划等要求的满足情况;
b)统计并分析所发现的软件问题,对遗留的软件问题说明不能解决的理由,给出其可能
给软件和系统带来的影响,可能时,推荐纠正方案或方法;
c)分析软件设计、代码中可能存在的缺陷和风险;
d)根据测试结果评价被测软件,给出评价意见和改进建议。
3)分析测试产生的数据和文档;
4)编制软件白盒测试报告;
5)应进行软件白盒测试总结评审;
6)软件白盒测试报告应受到变更控制和版本控制。
5.4.3阶段输出
1)软件白盒测试报告。
6测试要求
6.1静态测试
在本阶段中主要依据软件研制的已有文档代码以及在测试准备阶段中的工作输出对软件进行文档
审查、静态代码分析、代码审查、代码走查等工作内容。
6.1.1测试对象
静态测试的测试对象通常包括:
1)源代码:对源代码进行静态检查,以发现潜在的错误、代码质量问题、潜在的安全漏洞等。
静态测试可以包括代码规范的检查、代码风格的评估、命名约定的遵循性检查等;
2)软件需求类文档:在静态测试中对需求文档进行检查,以验证需求的准确性、一致性、规范
性和完整性。可以检查需求规范的清晰度、可追踪性和可测试性等方面;
I
CQAE*****—2024
3)软件设计类文档:对设计文档进行审查,以确保设计满足功能需求、软件架构的合理性和可
维护性等。可以检查设计的一致性、模块接口的合理性、设计模式的正确使用等方面。
6.1.2测试目的
静态测试的测试目的是发现软件开发过程中潜在的问题、错误和缺陷,以提高软件的质量和可靠性。
主要关注于代码和相关文档的静态分析、评审和检查,而不涉及实际执行代码。
其主要测试目的一般包括:
1)问题检测和修复:发现代码中的潜在问题、错误和缺陷,例如语法错误、逻辑错误、代码质
量问题等。通过及早发现和修复这些问题,可以防止在软件交付后导致错误和故障;
2)质量改进:静态测试可以帮助提高代码的质量,通过检查代码规范、代码风格、代码复杂度
等方面,确保代码符合最佳实践和标准。通过分析代码度量指标,如代码覆盖率、代码重复率等;
3)需求和规范验证:对需求和规范文档进行审查,以确保其准确性、一致性、规范性和完整性。
通过对文档的静态分析和评审,可以发现需求中存在的准确性、一致性、规范性或完整性等问题。
6.1.3进入条件
静态测试的进入条件可以根据具体的项目和组织而有所不同,通常包括以下条件:
1)代码和文档可用:静态测试需要访问的源代码、文档和相关资料等的可用性。包括软件项目
的源代码、需求文档、设计文档、测试文档等;
2)静态测试工具和环境:通常需要使用特定的工具和环境来进行代码和文档的分析、评审和检
查。可以包括静态代码分析工具、代码度量工具、文档评审工具等;
3)定义的静态测试策略和计划:在进行静态测试之前,应该制定明确的静态测试策略和计划。
包括确定要进行哪些类型的静态测试、测试的范围和目标,以及测试的时间安排和资源分配;
4)测试人员的培训和准备:测试人员需要具备适当的培训和准备,以了解静态测试的目的、方
法和工具。
6.1.4内容要求
静态测试的内容要求主要涉及以下几个方面:
1)代码规范和风格要求:应该包括对代码是否符合特定的编码规范和风格要求的检查;
2)代码质量要求:需要评估代码的质量特征,代码质量要求可以根据项目的特定需求和标准进
行定义和制定;
3)安全性要求:检查代码中的安全漏洞和弱点,以满足安全性要求;
4)需求和规范要求:审查需求和规范文档,以确保其准确性、一致性、规范性和完整性。
6.1.5测试环境
静态测试通常不需要特定的测试环境,侧重于对代码和文档进行分析、评审和检查,并不涉及实际
执行代码。在进行一些特定类型的静态测试时,需要一些特定的环境或工具支持。
1)集成开发环境(IDE):通常静态测试在开发环境中进行。开发人员使用集成开发环境(IDE)
来编写、编辑和管理代码;
2)静态代码分析工具:静态代码分析工具是用于自动分析源代码的工具;
3)代码度量工具:代码度量工具用于对代码进行度量和评估,以衡量代码的质量特征;
4)文档评审工具:在进行文档审查时,可能使用一些专门的文档审查工具。
6.1.6结束准则
9
CQAE*****—2024
静态测试的结束准则通常是根据预先定义的目标和条件来判断。以下是一些常见的静态测试结束准
则:
1)达到测试覆盖率目标:可以有不同的覆盖范围,例如代码覆盖率、文档覆盖率等;
2)问题解决和修复:通常会发现代码或文档中的问题、错误或缺陷;
3)符合质量标准和要求:确保代码和文档符合特定的质量标准和要求;
4)测试时间和资源耗尽:通常有时间和资源的限制。如果测试时间和资源已经耗尽,且已经达
到预期的测试目标,则可以结束静态测试;
5)测试策略和计划完成:按照制定的测试策略和计划,所有测试活动都已完成时,可以视为结
束静态测试;
6)问题已闭环处理,完成回归测试。
6.1.7阶段输出
静态测试的阶段产品通常是关于代码和文档的分析和评审结果。以下是一些常见的静态测试阶段产
品:
1)软件静态测试报告:静态测试通常涉及对源代码进行分析,以检测潜在的问题、错误和缺陷;
2)文档审查内容:在进行文档审查时,可能会生成文档审查内容,记录了对文档的审查结果,
包括发现的问题描述、问题修改和意见;
3)代码度量和统计报告:使用代码度量工具来评估代码的质量特征,例如代码复杂度、代码覆
盖率、代码重复率等。
6.2单元测试
本阶段主要工作内容是根据相关文档编写单元测试用例,执行单元测试用例。通过动态执行测试用
例来验证软件的每一个单元是否与需求及设计一致,工作难点是保证测试用例的充分性。
6.2.1测试对象
单元测试的对象是具有输入输出、完成特定功能、可被调用使用的最小代码集合的软件单元。
注:在计算机编程语言中,通常将一个函数、一个模块、一个过程、一个子程序视为一个软件单元。
6.2.2测试目的
验证软件单元是否实现了软件设计规定的功能、性能、接口和其他设计约束等要求,发现单元内可
能存在的错误,并保证代码质量。
6.2.3进入条件
单元测试进入条件如下:
1)软件单元代码无错误地通过编译或汇编;
2)被测软件单元已纳入配置管理且受控;
3)具备与被测软件源代码版本对应的文档(软件需求类文档、设计类文档等);
4)具备满足要求的测试环境及测试工具。
6.2.4内容要求
单元测试具体要求如下:
1)单元测试应列表说明被测单元的清单,对单元的剪裁应说明理由,关键单元、重要单元不允
许被剪裁;
I
CQAE*****—2024
2)单元测试的直接依据应是详细设计文档(软件设计说明中的详细设计部分),被测单元清单
中应说明文档依据的索引;
3)应采用静态测试和动态白盒测试的测试方法开展单元测试;
4)一般应在动态测试前开展静态测试,静态测试发现的问题修改后再进行动态测试;
5)在动态测试中,应设计测试用例逐项验证软件单元的功能、性能、接口等设计要求;
6)测试用例的输入应覆盖单元接口输入变量的有效值、无效值和边界值;
7)单元测试覆盖率要求如下:
(1)所有单元的语句覆盖率和分支覆盖率应达到100%;
(2)关键单元的MC/DC覆盖率应达到100%;
(3)对于覆盖率未达到指标要求的单元,应说明原因,并通过附加验证。
6.2.5测试环境
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国地质调查局烟台海岸带地质调查中心招聘工作人员28人备考题库(第一批)及一套参考答案详解
- 黑龙江八一农垦大学《当代中国政府与行政》2023-2024学年第二学期期末试卷
- 2026成都市树德实验中学(东区)寒假招聘校聘储备教师的备考题库含答案详解(模拟题)
- 湖北中医药高等专科学校《海洋数学物理方法》2023-2024学年第二学期期末试卷
- 连云港职业技术学院《数字录像》2023-2024学年第二学期期末试卷
- 2026中国共产党平果市委员会党校城镇公益性岗位人员招聘1人备考题库(广西)附参考答案详解(巩固)
- 2026吉林省科维交通工程有限公司东南地区项目部劳务派遣人员招聘14人备考题库带答案详解(完整版)
- 2026上半年贵州事业单位联考务川自治县招聘48人备考题库带答案详解(夺分金卷)
- 2026广东佛顺德容桂泰安小学招聘2人备考题库附答案详解(轻巧夺冠)
- 2026年东营市第二中学教师岗位人才引进备考题库(3人)附参考答案详解(研优卷)
- 三体系基础培训
- (2025年)羽毛球三级裁判练习试题附答案
- AI大模型在混凝土增强模型中的应用研究
- 医院培训课件:《标本采集方法》
- 成都新易盛高速率光模块技术与产线扩产升级项目环境影响报告表
- 股骨干骨折脂肪栓塞护理查房
- 美容护肤技术授课张秀丽天津医学高等专科学校04课件
- 公司越级汇报管理制度
- 2025年江苏省淮安市涟水县中考一模化学试题(原卷版+解析版)
- DBJ33T 1307-2023 微型钢管桩加固技术规程
- 叉车安全管理人员岗位职责
评论
0/150
提交评论