




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密 级:普通文件编号:NO.1文件类别:测试管理体系文件发 放 号:1001华中8型软件单元测试规范版本:1.1华中数控软件开发部版本说明日期版本号发布说明作者批准人2015/1/28V1.0王蓉2015/2/10V1.1王蓉目录目录II1引言11.1编写目的11.1.1编写目的11.1.2适用范围11.1.3预期读者11.2背景11.3定义11.4参考文档12单元测试32.1单元的定义32.2角色工作体系32.3单元测试规程32.3.1静态代码检查32.3.2测试用例42.4单元测试工具42.5测试的目录结构42.6测试代码的书写规范52.7测试单元的文件组成及命名规范52.8单元测试的实施规范53测试结果提交和验收63.1提交的测试产品63.2测试产品提交方式63.3单元测试工作产品验收规范6II1 引言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 单元测试快速起步12 单元测试2.1 单元的定义对于结构化的编程语言,程序单元指程序中定义的函数或子程序。单元测试是指对函数或子程序所进行的测试。对于面向对象的编程语言,程序单元指特定的一个具体的类或相关的多个类。单元测试主是指对类方法的测试。2.2 角色工作体系角色职责开发/测试组长审查单元测试过程,对测试结果进行评估。根据单元测试发现的缺陷提出变更申请。开发/测试工程师对单元代码进行检查,设计单元测试用例,加载运行测试用例,记录和分析测试结果,提交单元测试Bug。配置管理员管理测试需要的资源,包括软硬件环境,版本管理和Bug 管理。2.3 单元测试规程包括静态的代码审查和动态测试两个阶段。静态代码审查是按照静态检查规范中的条项对单元模块进行逐项检查,并填写单元测试Bug 清单。动态测试阶段首先设计相应的测试用例。测试用例应该覆盖单元模块的所有功能项,如果单元模块有性能、余量等其它测试特性要求,则必须设计相应的测试用例测试这些特性。执行测试用例,运行得到测试结果,比对测试结果查看单元测试覆盖率是否达标。如果发现错误或Bug,提交单元测试Bug。2.3.1 静态代码检查要求:根据静态检查规范中的要求,对被测试单元进行逐项检查,检查后在对应的条项后进行标记,发现问题后,提交单元测试Bug。2.3.2 测试用例设计测试用例是测试数据及与之相关的测试规程的一个特定的集合,它是为验证被测试程序(为测试路径或验证是否符合特定需求)而产生的。测试用例设计用于白盒测试和黑盒测试。白盒测试进入的前提条件是在测试人员已经对被测试对象有了一定的了解,基本上明确了被测试软件的逻辑结构。过程是通过针对程序逻辑结构设计和加载测试用例,驱动程序执行,检查在不同点程序的状态,以确定实际的状态是否与预期的状态一致。1、白盒测试主要是对被测试对象进行如下测试项目:u 对程序模块的所有独立的执行路径至少覆盖一次;u 对所有的逻辑判定,真假两种情况都至少覆盖一次;u 在循环的边界和运行界限内执行循环体;u 测试内部数据结构的有效性等。白盒测试达到的目标:语句覆盖率达到100%,分支覆盖率达到100%,覆盖程序中主要的路径,主要路径是指完成需求和设计功能的代码所在的路径和程序异常处理执行到的路径。黑盒测试是要首先了解软件产品具备的功能和性能等需求,再根据需求设计一批测试用例以验证程序内部活动是否符合设计要求的活动。2、黑盒测试主要是对被测试对象进行如下测试项目:u 测试程序单元的功能是否实现;u 测试程序单元性能是否满足要求(可选);u 可选的其它测试特性,如边界、余量、安全性、可靠性、强度测试、人机交互界面测试等。黑盒测试达到的目标:程序单元正确地实现了需求和设计上要求的功能,满足性能要求,同时程序单元要有可靠性和安全性。2.4 单元测试工具规定使用以下测试工具实现应用软件系统单元测试和子系统集成测试,以及部分系统平台软件模块的相关测试。请参考C+test9.2简明手册1、 C+test9.2单机版(支持VC6.0) 下载路径:192.168.20.5tools软件测试工具 cpptest_9.2.1.26_win32_独立版2、 C+test9.0插件版(支持VS2010) 下载路径:192.168.20.5tools软件测试工具 cpptest_9.0_win32_插件版2.5 测试的目录结构1、各个工程存放测试套件、桩函数文件、测试数据u 测试源文件通过导入VC工程,源码以链接方式显示在工作空间/hncapi/api /hncapi/inc_api/hncapi/libprj /hncapi/plcu 测试套件 /hncapi/tests u 桩函数文件 /hncapi/stubs 2、以hnc8/trunk/hncapi.dsw为例: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/hncactivation.cpp);【规则5】在测试套件源代码中使用该宏来设置某个给定的测试套件将在测试可执行文件构建时被添加到某个源文件后面CPPTEST_TEST_SUITE_INCLUDED_TO(testedSource)例:CPPTEST_TEST_SUITE_INCLUDED_TO(./api/hncactivation.cpp);备注:下图示例,测试套件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 */ :s_hncAct.registerType = 0; :s_hncAct.regRemainDay = 0; :s_hncAct.registerFlag = 0;2.6.3 测试用例被测单元函数调用规范【规则】调用被测单元例: /* Tested function call HNC_ActivationSetSn(Bit8 *)*/ :Bit32 _return = :HNC_ActivationSetSn(_sn);2.6.4 测试用例验证规范【规则1】断言两个布尔类型值相等CPPTEST_ASSERT_BOOL_EQUAL(expected,actual)例: CPPTEST_ASSERT_BOOL_EQUAL(0, ( _return );【规则2】断言两个整型值相等CPPTEST_ASSERT_INTEGER_EQUAL(expected,actual)例: CPPTEST_ASSERT_INTEGER_EQUAL(0, ( _return );CPPTEST_ASSERT_INTEGER_EQUAL(66, ( :s_hncAct.regRemainDay );【规则3】断言两个指针类型字符串相等CPPTEST_ASSERT_PTR_EQUAL(expected,actual)2.6.5 完整测试用例实例2.6.6 桩函数书写规范【规则】查询当前执行的测试用bool CppTest_IsCurrentTestCase(const char* id)例: void CppTest_Stub_nc_gettime (:nctime_t * ptime) if (CppTest_IsCurrentTestCase(test_HNC_ActivationSetSn_Ok) ptime-year = 2015; ptime-month = 1; ptime-day = 20; 2.7 测试单元的文件组成及命名规范每个测试单元由测试代码文件、程序主函数文件和编译运行脚本文件组成,单元测试完成之后还生成一系列测试报告,这些测试报告将与模块单元一起提交。测试单元包含如下文件及其所处目录位置如下所述:【规则1】测试套件命名 TestSuite_测试单元函数名.cpp例如: TestSuite_ActivationCheckTime.cpp 【规则2】测试用例命名 test_测试单元函数名_测试简明标识例如: test_HNC_ActivationLoad_Failedtest_HNC_ActivationLoad_Oktest_HNC_ActivationLoad_Null【规则3】自定义测试桩命名 测试单元函数名_stub.cpp例如: HNC_SysCtrlGetConfig_stub.cpp【规则4】测试文件地址:C+test工作空间下,对应各工程文件的test文件夹的路径例如: workspacehncapitestsautogeneratedapihncactivation.cpp【规则5】自定义测试桩文件地址:C+test工作空间下,对应各工程文件的stubs文件夹的路径。例如: workspacehncapistubs2.8 单元测试的实施规范按照单元测试规程进行实施,进行代码审查和动态测试。【规则1】从服务器下载最新源码,导入VC6.0项目来创建C+test项目,添加各个工程对应的测试文件到本地。【规则2】要求静态检查通过后,再开始单元测试。【规则3】在写测试用例驱动时,所有外部传入参数、全局变量等都需要进行初始化。【规则4】调用原始定义的桩函数时,该桩函数应该是系统标准函数或者是已通过测试的函数。【规则5】系统函数作为桩函数时,一般情况采用原始定义,特殊情况可以自定义。【规则6】在编写或调试测试驱动和桩时,禁止修改源代码进行调试。【规则7】测试结果输出,要根据具体情况把函数中数据流的值进行验证。【规则8】测试文件,要求在C+test编译通过并执行通过,才能提交到服务器。103 测试结果提交和验收参与单元测试的人员,将各自负责测试的模块单元测试后提交服务器,服务器完成工程内的所有测试用例执行,以及测试报告反馈。开发和测试组长需要查看测试报告,验收单元测试质量,并给出一定的指导意见!3.1 提交的测试产品1、对于每个被测单元的测试结果提交u 每个测试单元测试实现.cpp 文件u 每个测试单元的相关桩函数实现.cppu 每个测试单元的测试设计文档,请参考hncactivation.cpp单元测试设计文档。2、单元测试总结报告(由服务器完成)u 静态检查报告 rep_StaticAnalysis.htmlu 单元测试执行报告 rep_run.htmlu 单元测试任务报告 report_dev.html3.2 测试产品提交方式按照各个工程存放测试套件、桩函数文件、测试数据,以下以hnc8/trunk/hncapi为例:1、测试套件位置 /trunk/unit_test/hncapi/tests 2、桩函数文件位置 /trunk/unit_test/hncapi/stubs 3、测试数据位置 /trunk/uni
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 隧道机械专卖合同协议
- 酒店服装租赁合同范本
- 酒店木工分包合同范本
- 预售合同能否解除协议
- 饭店厨师入职合同范本
- 配件总成供应合同范本
- 绿化规划施工合同范本
- 线上课程合作合同范本
- 矿山租赁挖机合同范本
- 雅思机构合同避雷协议
- rzelihz通快碟片式激光器培训课程
- 现代中国的对外关系课件
- HY/T 080-2005滨海湿地生态监测技术规程
- GB/T 712-2011船舶及海洋工程用结构钢
- GB/T 20969.1-2021特殊环境条件高原机械第1部分:高原对内燃动力机械的要求
- GB/T 19868.4-2005基于预生产焊接试验的工艺评定
- GB/T 19633.1-2015最终灭菌医疗器械包装第1部分:材料、无菌屏障系统和包装系统的要求
- 吸附及吸附过程课件
- 羽毛球运动基础知识简介课件
- 设计美学研究课件
- 部编版七年级上册语文《雨的四季》课件(定稿;校级公开课)
评论
0/150
提交评论