开发人员单元测试标准规范.docx
《开发人员单元测试标准规范.docx》由会员分享,可在线阅读,更多相关《开发人员单元测试标准规范.docx(14页珍藏版)》请在咨信网上搜索。
1、为了提高整个开发中心产品和项目测试效率,保证产品与项目内部系统集成测试顺利进行,现规定系统开发部各项目组在提交产品至项目监理部之前必要进行严格单元测试,即按照代码单元构成逐个进行测试。详细阐明如下:单元测试内容单元测试根据是详细设计,应对模块内所有重要控制途径设计测试用例,以便发现模块内部错误。单元测试测试类型重要涉及:1模块接口测试;2模块局部数据构造测试;3模块边界条件测试;4模块中所有独立执行通路测试;5模块各条错误解决通路测试;6模块非法测试,例如在输入数字地方输入字母;7代码重用测试,在开发过程中有些模块功能几乎相似,程序员在重用代码时也许忘掉在原有代码上修改或修改不全面,而导致错误
2、;8系统兼容测试,例如有些程序在IE6能运营正常,到IE5下不能运营。有些程序在WIN下能运营,而到WIN98却不能运营。单元测试力度规定测试力度满足:语句覆盖:使被测程序每条语句至少执行一次;鉴定覆盖:使被测程序每一分支执行一次;条件覆盖:规定鉴定中每个条件均为“真”、“假”两种成果至少执行一次;条件组合覆盖:让条件覆盖中成果所有也许组合至少浮现一次;单元测试环节普通以为单元测试应紧接在编码之后,当源程序编制完毕并通过复审和编译检查,便可开始单元测试。测试用例设计应与复审工作相结合,依照设计信息选用测试数据,将增大发现各类错误也许性。在拟定测试用例同步,应给出盼望成果。项目组完毕单元测试,向
3、项目监理部提交验收版本同步必要一并递交单元测试案例及测试问题报告记录。测试部由项目监理部获得需测试系统版本及有关文档,若在测试期间发现单元测试中记录问题,如实记录。项目监理部视详细状况酌情对该项目组绩效考核与项目评分加以控制。不同语言及架构单元测试见附件。附件一c语言单元测试规范1.基本规定1.1程序构造清析,简朴易懂,单个函数程序行数不得超过100行。1.2打算干什么,要简朴,直接了当,代码精简,避免垃圾程序。1.3尽量使用原则库函数和公共函数。1.4不要随意定义全局变量,尽量使用局部变量。1.5使用括号以避免二义性。2.可读性规定2.1可读性第一,效率第二。2.2保持注释与代码完全一致。2
4、.3每个源程序文献,均有文献头阐明,阐明规格见规范。2.4每个函数,均有函数头阐明,阐明规格见规范。2.5重要变量(构造、联合、类或对象)定义或引用时,注释能反映其含义。2.7常量定义(DEFINE)有相应阐明。2.8解决过程每个阶段均有有关注释阐明。2.9在典型算法前均有注释。2.10运用缩进来显示程序逻辑构造,缩进量一致并以Tab键为单位,定义Tab为6个字节。2.11循环、分支层次不要超过五层。2.12注释可以与语句在同一行,也可以在上行。2.13空行和空白字符也是一种特殊注释。2.14一目了然语句不加注释。2.15注释作用范畴可觉得:定义、引用、条件分支以及一段代码。2.16注释行数(
5、不涉及程序头和函数头阐明部份)应占总行数1/5到1/3。3.构造化规定3.1禁止浮现两条等价支路。3.2禁止GOTO语句。3.3用IF语句来强调只执行两组语句中一组。禁止ELSEGOTO和ELSERETURN。3.4用CASE实现多路分支。3.5避免从循环引出各种出口。3.6函数只有一种出口。3.7不使用条件赋值语句。3.8避免不必要分支。3.9不要容易用条件分支去替代逻辑表达式。4.对的性与容错性规定4.1程序一方面是对的,另一方面是优美4.2无法证明你程序没有错误,因而在编写完一段程序后,应先回头检查。4.3改一种错误时也许产生新错误,因而在修改前一方面考虑对其他程序影响。4.4所有变量在
6、调用前必要被初始化。4.5对所有顾客输入,必要进行合法性检查。4.6不要比较浮点数相等,如:10.0*0.1=1.0,不可靠4.7程序与环境或状态发生关系时,必要积极去解决发生意外事件,如文献能否逻辑锁定、打印机与否联机等。4.8单元测试也是编程一部份,提交联调测试程序必要通过单元测试。5.可重用性规定5.1重复使用完毕相对独立功能算法或代码应抽象为公共控件或类。5.2公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。5.3公共控件或类应建立使用模板。1合用范畴本原则合用于运用VisulC+,BorlandC+进行软件程序开发人员.。.2变量命名命名必要具备一定实际意义,形式为xA
7、bcFgh,x由变量类型拟定,Abc、Fgh表达持续意义字符串,如果持续意义字符串仅两个,可都大写.如OK.详细例程:BOOL类型bEnable;ch*charchTextc*类对象cMain(对象实例)h*Handle(句柄)hWndi*intn*无符号整型p*指针sz,str*字符串wWORDx,y坐标Char或者TCHAR类型与WindowsAPI有直接联系用szAppName10形式否则用FileName10形式,单个字符也可用小写字母表达;Int类型nCmdShow;LONG类型lParam;UINT类型uNotify;DWORD类型dwStart;PSTR类型pszTip;LPST
8、R类型lpCmdLineLPTSTR类型lpszClassName;LPVOID类型lpReservedWPARAM类型wParam,LPARAM类型lParamHWND类型hDlg;HDC类型hDC;HINSTANCE类型hInstanceHANDLE类型hInstance,HICON类型hIcon;intiTmpfloatfTmpDWORDdw*String,AnsiStringstr*m_类成员变量m_nVal,m_bFlagg_全局变量g_nMsg,g_bFlag局部变量中可采用如下几种通用变量:nTemp,nResult,I,J(普通用于循环变量)。其她资源句柄同上.3常量命名和宏定
9、义常量和宏定义必要具备一定实际意义;常量和宏定义在#include和函数定义之间;常量和宏定义必要所有以大写字母来撰写,中间可依照意义持续性用下划线连接,每一条定义右侧必要有一简朴注释,阐明其作用;资源名字定义格式:菜单:IDM_XX或者CM_XX位图:IDB_XX对话框:IDD_XX字符串:IDS_XXDLGINIT:DIALOG_XXICON:IDR_XX.4函数命名函数原型阐明涉及引用外来函数及内部函数,外部引用必要在右侧注明函数来源:模块名及文献名,如是内部函数,只要注释其定义文献名;第一种字母必要使用大写字母,规定用大小写字母组合规范函数命名,必要时可用下划线间隔,示例如下:void
10、UpdateDB_Tfgd(TRACK_NAME);file:/ModuleName:r01/sdw.cvoidPrintTrackData(TRACK_NAME);file:/ModuleName:r04/tern.cvoidImportantPoint(void);file:/ModuleName:r01/sdw.cvoidShowChar(int,int,chtype);file:/LocalModulevoidScrollUp_V(int,int);file:/LocalModule.5构造体命名构造体类型命名必要所有用大写字母,原则上前面如下划线开始;构造体变量命名必要用大小写字母组
11、合,第一种字母必要使用大写字母,必要时可用下划线间隔。对于私有数据区,必要注明其所属进程。全局数据定义只需注意其用途。示例如下:typedefstructcharszProductName20;charszAuthor20;charszReleaseDate16;charszVersion10;unsignedlongMaxTables;unsignedlongUsedTables;DBS_DATABASE;DBS_DATABASEGdataBase;6控件命名:用小写前缀表达类别用小写前缀表达类别:fm窗口cmd按钮cobcombo,下拉式列表框txt文本输入框lablabal,标签imgi
12、mage,图象picpicturegrdGrid,网格scr滚动条lst列表框frmfram7注释原则上注释规定使用中文;文献开始注释内容涉及:公司名称、版权、作者名称、时间、模块用途、背景简介等,复杂算法需要加上流程阐明;函数注释涉及:输入、输出、函数描述、流程解决、全局变量、调用样例等,复杂函数需要加上变量用途阐明;程序中注释涉及:修改时间和作者、以便理解注释等;引用一:文献开头注释模板/*文献名:*Copyright(c)1998-1999*公司技术开发部*创立人:*日期:*修改人:*日期:*描述:*版本:*-*/引用二:函数开头注释模板/*函数名:*输入:a,b,c*a-*b-*c-*
13、输出:x-*x为1,表达.*x为0,表达.*功能描述:*全局变量:*调用模块:*作者:*日期:*修改:*日期:*版本*/引用三:程序中注释模板/*-*/*注释内容*/*-*/8程序a.程序编码力求简洁,构造清晰,避免太多分支构造及太过于技巧性程序,尽量不采用递归模式。b.编写程序时,亦必要想好测试办法,换句话说,”单元测试”测试方案应在程序编写时一并拟好。c.注释一定要与程序一致。d.版本封存后来修改一定要将老语句用/*/封闭,不能自行删除或修改,并要在文献及函数修改记录中加以记录。e.程序中每个block开头”及”必要对齐,嵌套block每进一套,缩进一种tab,TAB为4个空格,block
14、类型涉及if、for、while、do等核心字引出。f.对于比较大函数,每个block和特殊函数调用,都必要注明其功能,举例如下:count.divisor=1193280/freq;/computethepropercountOutByte(unsignedshort)67,(unsignedchar)182);/tell8253thatacountiscomingOutByte(unsignedshort)66,count.c0);/sendlow-orderbyteOutByte(unsignedshort)66,count.c1);/sendhigh-orderbytebcb,delp
15、hi中变量命名:遵循匈牙利命名法,命名必要故意义,制定如下规定窗体:以大写W开始,如About版权窗体,命名为WAbout文献:以大写F开始,如About版权窗体,文献命名为FAbout.cpp按钮(Button):如退出按钮,命名为btnExit基类:加base标记,如报表基类,窗体命名为:WBaseRep,文献命名为FBaseRep.cpp1.在.h/.cpp开头应有一段格式统一阐明,内容涉及:a.文献名(FileName);b.创立人(Creater);c.文献创立时间(Date);d.简短阐明文献功能、用途(Comment)。好习惯2.除非极其简朴,否则对函数应有注释阐明。内容涉及:功
16、能、入口/出口参数,必要时还可有备注或补充阐明。还是好习惯3.每列代码长度推荐为80列,最长不得超过120列;折行以对齐为准。太宽了,我限制是60列,由于文本方式下屏幕一共80列,如果你用BC这一类编辑器,窗口边框等又要占据一定空间,因此80列太宽4.循环、分支代码,判断条件与执行代码不得在同一行上。很对5.指针定义,*号既可以紧接类型,也可以在变量名之前。例:可写做:int*pnsize;也可写做:int*pnsize;但不得写做:int*pnsize;建议采用第二种,除非附加此外一条规定:一次只声明一种变量,否则就会让人混淆,例如:int*a,b;看起来b好像也是个指针,其实不是。6.在类
17、成员函数内调用非成员函数时,在非成员函数名前必要加上:。这一条我倒觉得并不是必须,我看法是决不要让你类成员函数和全局函数名称相似(或类似)7.函数入口参数有缺省值时,应注释阐明。例:BOOLCWpsDib:PaintDIB(CDC*pDC,CRect&rc,intnBrightness,file:/*=0*/BOOLbGrayScalefile:/*=FALSE*/)每个变量写一行,必要时加上/*in,out*/注释8.elseif必要写在一行。应当尽量避免elseif这样构造9.与、关于各项规定:9.1、应独占一行。在该行内可有注释。9.2必要另起一行,之后裔码必要缩进一种Tab。与必要在同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开发人员 单元测试 标准规范
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。