单元测试规范

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

密级:普通

文件编号:

文件类别:测试管理体系文件

发放号:1001

华中8型软件

单元测试规范

版本:

华中数控软件开发部

版本说明

目录

1引言

1.1编写目的

1.1.1编写目的

本文档规定了HNC8软件单元测试方法和步骤、测试用例的设计方法、测试代码的书写规范、流程以及单元测试的产品提交和验收规范,目的在于控制单元测试的质量,加强项目的质量管理,从而提高整个产品的质量。

1.1.2适用范围

主要是8型软件的单元测试、部分系统平台软件模块测试。

1.1.3预期读者

本文档的预期读者为项目的项目经理、产品经理、系统软件主研人员、应用软件主研人员、高级测试人员等。

1.2背景

HNC8系统软件平台是各产品和项目的重要组成部分,为HNC8软件开发人员提供必要的测试环境。本规范的提出和制订旨在为软件单元测试提供依据和支持。1.3定义

被测模块:需要进行模块级测试的应用软件系统的一个单元或模块,也称被测单元。

测试单元:用于对被测模块进行单元级测试,由源代码、测试脚本和输入数据等

构成的程序单元。

1.4参考文档

[1] C++Test用户手册

[2] 单元测试快速起步

2单元测试

2.1单元的定义

对于结构化的编程语言,程序单元指程序中定义的函数或子程序。单元测试是指对函数或子程序所进行的测试。

对于面向对象的编程语言,程序单元指特定的一个具体的类或相关的多个类。单元测试主是指对类方法的测试。

2.2角色工作体系

2.3单元测试规程

包括静态的代码审查和动态测试两个阶段。

静态代码审查是按照《静态检查规范》中的条项对单元模块进行逐项检查,并填写《单元测试Bug 清单》。

动态测试阶段首先设计相应的测试用例。测试用例应该覆盖单元模块的所

有功能项,如果单元模块有性能、余量等其它测试特性要求,则必须设计相应的测试用例测试这些特性。执行测试用例,运行得到测试结果,比对测试结果查看单元测试覆盖率是否达标。如果发现错误或Bug,提交单元测试Bug。

2.3.1静态代码检查

要求:根据《静态检查规范》中的要求,对被测试单元进行逐项检查,检查后在对应的条项后进行标记,发现问题后,提交单元测试Bug。

2.3.2测试用例设计

测试用例是测试数据及与之相关的测试规程的一个特定的集合,它是为验证被测试程序(为测试路径或验证是否符合特定需求)而产生的。测试用例设计用于白盒测试和黑盒测试。

白盒测试进入的前提条件是在测试人员已经对被测试对象有了一定的了解,基本上明确了被测试软件的逻辑结构。过程是通过针对程序逻辑结构设计和加载测试用例,驱动程序执行,检查在不同点程序的状态,以确定实际的状态是否与预期的状态一致。

1、白盒测试主要是对被测试对象进行如下测试项目:

对程序模块的所有独立的执行路径至少覆盖一次;

对所有的逻辑判定,真假两种情况都至少覆盖一次;

在循环的边界和运行界限内执行循环体;

测试内部数据结构的有效性等。

白盒测试达到的目标:语句覆盖率达到100%,分支覆盖率达到100%,覆盖程序中主要的路径,主要路径是指完成需求和设计功能的代码所在的路径和程序异常处理执行到的路径。

黑盒测试是要首先了解软件产品具备的功能和性能等需求,再根据需求设计一批测试用例以验证程序内部活动是否符合设计要求的活动。

2、黑盒测试主要是对被测试对象进行如下测试项目:

测试程序单元的功能是否实现;

测试程序单元性能是否满足要求(可选);

可选的其它测试特性,如边界、余量、安全性、可靠性、强度测试、人机交互界面测试等。

黑盒测试达到的目标:程序单元正确地实现了需求和设计上要求的功能,满足性能要求,同时程序单元要有可靠性和安全性。

2.4单元测试工具

规定使用以下测试工具实现应用软件系统单元测试和子系统集成测试,以及部分系统平台软件模块的相关测试。请参考《C++简明手册》

1、C++单机版(支持)

下载路径:\\\tools\软件测试工具\ cpptest__win32_独立版

2、C++插件版(支持VS2010)

下载路径:\\\tools\软件测试工具\ 插件版

2.5测试的目录结构

1、各个工程存放测试套件、桩函数文件、测试数据

测试源文件通过导入VC工程,源码以链接方式显示在工作空间/hncapi/api /hncapi/inc_api

/hncapi/libprj /hncapi/plc

测试套件

桩函数文件

2、以hnc8/trunk/为例:

2.6测试代码的书写规范

2.6.1测试套件/测试用例定义规范

【规则1】在测试套件定义中开始注册测试用

CPPTEST_TEST_SUITE(TestSuiteName)

例: CPPTEST_TEST_SUITE(TestSuite_ActivationGetDayNum);

【规则2】在测试套件定义中结束注册测试用例CPPTEST_TEST_SUITE_END()【规则3】测试用例注册CPPTEST_TEST(testCaseName)

例: CPPTEST_TEST(test_ActivationGetDayNum_Ok);

CPPTEST_TEST(test_ActivationGetDayNum_Failed);

【规则4】在测试套件源文件中使用该宏来定义给定的测试套件中的测试所设置的源/ 头文件。CPPTEST_CONTEXT(testedFile)

例: CPPTEST_CONTEXT("../api/");

【规则5】在测试套件源代码中使用该宏来设置某个给定的测试套件将在测试可执行文件构建时被添加到某个源文件后面

CPPTEST_TEST_SUITE_INCLUDED_TO(testedSource)

例:CPPTEST_TEST_SUITE_INCLUDED_TO("../api/");

备注:下图示例,测试套件TestSuite_ActivationGetDayNum 及其测试用例注册2.6.2测试用例初始化变量书写规范

【规则1】初始化输入参数

例:/* Pre-condition initialization */

/* Initializing argument 1 (sn) */

::Bit8 * _sn = "6933-E8A4-013L-00C1-FBC6-1C13" ;

【规则2】初始化全局变量

例:/* Initializing global variable */

:: = 0;

相关文档
最新文档