版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章软件测试过程————(一)单元测试4.1单元测试概述单元测试是开发者通过编写代码检验被测代码的某单元功能是否正确而进行的测试一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为单元测试与其他测试不同,可以看作是编码工作的一部分,是由程序员自己完成的单元测试是软件测试的基础,其效果会直接影响到软件后期的测试,最终在很大程度上影响软件质量。单元测试概述单元测试的一些规范和原则单元测试进行的越早越好,甚至可以“测试驱动开发”;单元测试应该依据详细规格说明书进行;单元测试应该按照单元测试计划和方案进行,排除测试随意性;单元测试用例应该经过审核;对全新的代码和修改过的代码都应该进行单元测试;应当选择合适的被测单元的大小;对被测试单元应达到一定的覆盖率要求;测试内容应当包括正面测试和负面测试;当测试用例的测试结果与设计规格说明不同时,测试人员应当如实记录测试结果;注意使用单元测试工具。单元测试概述单元测试内容测试用例模块……………………………….......................模块接口局部数据结构独立路径错误处理边界条件单元测试概述单元测试内容测试模块的接口是为了保证被测程序单元的信息能够正常地流入和流出;检查局部数据结构是为了确保临时存储的数据在算法的整个执行过程中能够维持其完整性;执行控制结构中的所有独立路径(基本路径)以确保模块中的所有语句至少执行一次;测试错误处理确保被测模块在工作中发生了错误能够做出有效的错误处理措施;测试边界条件确保模块在到达边界值的极限或受限处理的情形下仍能正确执行。单元测试概述单元测试方法在进行单元测试时,被测试的单元本身不是独立的程序,需要为其开发驱动模块和桩模块驱动模块是用来模拟待测试模块的上级模块桩模块也称为存根程序,用以模拟待测模块工作过程中所调用的模块单元测试概述单元测试方法单元测试的环境如下图所示单元测试概述单元测试方法代码审查是单元测试的第一步,保证代码算法的逻辑正确性、清晰性、规范性、一致性,具体将审查以下内容命名规则检查,审查变量名、函数名等是否遵循命名规则;代码格式检查,审查是否遵循编码规范及代码格式;内存使用,审查程序是否读取了未初始化的内存、是否存在越界使用内存、指针使用是否正确以及是否释放已分配的内存;表达式判断,审查逻辑表达式是否正确、是否正确使用逻辑表达式中的变量、各判断分支是否都得到了处理等;可读性,审查缩进控制是否有效提高代码的可读性,注释是否准确、充分、有意义以及标号、程序(函数名)、变量名等是否有意义且准确;程序多余物,审查是否存在执行不到的代码、是否存在垃圾语句以及声明的变量、常量、函数等是否使用。单元测试概述单元测试方法然后使用测试工具进行静态分析,通过控制流程分析、数据流分析以及表达式分析来尽可能发现代码中存在的错误。然后设计测试用例,达到一定的覆盖标准并执行测试用例,还要考虑边界值情况和单元运行的效率,包括运行时间、占用空间以及精度等参数。还可采用错误推测法,列举出程序中可能存在的和容易发生的错误,并根据测试经验,对这些错误作重点测试。单元测试概述单元测试过程单元测试的实施步骤包括:测试策划,在详细设计阶段完成单元测试计划;测试设计,建立单元测试环境,完成测试设计和开发;测试执行,执行单元测试用例,并详细记录测试结果;测试总结,判定测试用例是否通过并提交测试文档。单元测试中的覆盖率函数覆盖函数覆盖主要是评估在进行测试时函数的执行比率,函数覆盖率用下列公式进行计算:函数覆盖率=至少执行到一次的函数数量/被测试系统中的函数总数量从公式可以看出来,函数覆盖率是一种比语句覆盖率更简单的覆盖,主要用来检查哪些单元没有被执行,防止遗漏对某些单元的测试。单元测试中的覆盖率Z路径覆盖一个循环无论其循环了多少次,被看成最多只有两条路径——执行和未执行两种情况将整个程序的路径画成路径树,然后根据树上的叶子节点来得到程序的路径,从根节点到叶子节点进行遍历,当所有叶子节点被遍历完全后,就能得到所有的路径。这些路径被称为Z路径为所有路径生成测试用例进行测试,就做到了Z路径覆盖测试单元测试中的覆盖率ESTCA覆盖ESTCA覆盖最核心的部分是一套错误敏感测试用例分析规则ESTCA(ErrorSensitiveTestCasesAnalysis),具体规则如下:对于ArelB(rel可以是<、=或>)型的分支谓词,应适当选择A与B的值,使测试执行到该分支语句时,A<B、A=B、A>B的情况分别出现一次。对于Arel1C(rel1可以是<或>,A是变量,C是常量)型的分支谓词,当rel1为“<”时,应适当地选取A的值,使得A=C-M。
同理当rel1为“>”时,应适当地选择A,使A=C+M。对外部输入的变量赋值,使其在每一个测试用例中均有不同的值与符号,并与同一组测试用例中其他变量的值与符号不一致。单元测试中的覆盖率LCSAJ覆盖一个LCSAJ其实是一组顺序执行的代码,它的起点是由程序本身决定。起点可以是程序第一行(入口)或转移语句的入口点,也可以是控制流可跳转的点。一个LCSAJ可能结束于程序的出口,也可能结束于一个导致控制流跳转的点。如果有几个LCSAJ首尾相接,且第一个LCSAJ起点为程序起点,最后一个LCSAJ终点为程序终点,这些LCSAJ串就组成了程序的一条路径(LCSAJ路径)。一条LCSAJ路径可能是由2个、3个或多个LCSAJ组成。单元测试中的覆盖率LCSAJ覆盖LCSAJ覆盖准则是一个分层的覆盖准则,具体介绍如下:第一层:语句覆盖。第二层:分支覆盖。第三层:LCSAJ覆盖。即程序中的每一个LCSAJ至少都在测试中经历过一次。第四层:两两LCSAJ覆盖。程序中每两个首尾相连的LCSAJ组合起来在测试中都要经历一次。......第n层:每n个首尾相连的LCSAJ组合在测试中都经历一次单元测试中的覆盖率LCSAJ覆盖以下面的程序为例,寻找其中的LCSAJ路径单元测试中的覆盖率LCSAJ覆盖根据上面的程序画
出其流程图单元测试中的覆盖率LCSAJ覆盖可以看出,该程序中共有如下5个LCSAJ:(1)intk=0,j=0;if((x>3)&&(z<10))(2)k=x*y-1;j=sqrt(k);if((x==4)||(y>5))(3)if((x==4)||(y>5))(4)j=x*y+10;j=j%3;(5)j=j%3;分析得到4条LCSAJ路径:(1)-(2)-(4)(1)-(2)-(5)(1)-(3)-(4)(1)-(3)-(5)单元测试中的覆盖率MC/DC覆盖MC/DC是DO-178B(美军标)中首次提出的,开始是为了提高航空软件测试中的覆盖率水平在DO-178B标准中,对MC/DC有如下要求:判定中每个条件的所有可能结果至少出现一次;每个判定本身的所有可能结果也至少出现一次;每个入口点和出口点至少要执行一次;每个条件都能单独影响判定结果。单元测试中的覆盖率MC/DC覆盖以下面程序为例,设计测试用例满足MC/DC覆盖单元测试中的覆盖率MC/DC覆盖以下5个测试用例所能达到的MC/DC覆盖率序号输入A输入B输入C输入DMC/DC覆盖率1000102010125%3010050%4011075%51001100%单元测试中的覆盖率MC/DC覆盖
MC/DC发现的主要软件问题包括:ORF:OperatorReferenceFaults,例如“与”被误写成“或”。VNF:VariableNegationFaults,一个变量被误写成了它的否定。ENF:ExpressionNegationFaults,一个表达式被误写成了它的否定。单元测试案例俄罗斯方块游戏排行榜排行榜功能是俄罗斯方块游戏中不可或缺的一部分,用以将当前用户的得分与历史得分记录进行比较并重新排序。主要涉及的功能点有历史记录文件的读取分数排名的计算与排序新纪录文件的保存新纪录的显示等单元测试案例待测源代码单元测试案例待测源代码单元测试案例测试设计代码走查首先利用代码走查的方法检查一下该模块的代码,对代码质量进行初步的评估本模块的代码基本情况如下:代码直观代码和设计文档对应无用的代码已经删除注释过于简单单元测试案例测试设计基本路径法绘制程序的控制流图计算环路复杂度导出独立路径设计测试用例边界值法单元测试案例简化程序模块,绘制程序模块图:单元测试案例测试设计基本路径法绘制程序的控制流图:计算环路复杂度V(G)=P+1=5+1=6,
确定至少要覆盖6条路径。导出独立路径根据控制流图可以方便得到以下6条路径:路径1:1-2-11
路径2:1-3-4-11
路径3:1-3-5-6-11
路径4:1-3-5-7-8-11
路径5:1-3-5-7-9-10-11
路径6:1-3-5-7-9-11单元测试案例测试设计基本路径法设计测试用例令:
person1=23;
person2=20;
person3=10;
person4=6;
person5=4;作为测试输入,设计测试用例如表:单元测试案例测试设计基本路径法设计测试用例编号输入数据输出数据路径覆盖判断覆盖scoreperson1person2person3person4person51242423201061-2-11T2212321201061-3-4-11FT3152320151061-3-5-6-11FFT48232010861-3-5-7-8-11FFFT55232010651-3-5-7-9-10-11FFFFT60232010641-3-5-7-9-11FFFFF单元测试案例测试设计边界值法令:
person1=23;
person2=20;
person3=10;
person4=6;
person5=4;采用边界值法设计测试用例测试执行测试总结单元测试案例测试设计边界值法序号测试内容测试数据期望结果score1从大到小排序23person1=23person2=23person3=20person4=10person5=62从大到小排序24person1=24person2=23person3=20person4=10person5=63从大到小排序4person1=23person2=20perso
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东施工合同案例分析
- 楼房建筑钻机施工合同
- 写字楼配套电影院租赁合同
- 江苏大学《材料科学研究方法C》2023-2024学年第一学期期末试卷
- 机场建设槽探合同
- 家博会赞助商合同协议书
- 城市内涝治理清淤专项方案
- 2024年产品设计争议解决合同
- 2024年住宅小区共建协议
- 2024-2025学年沪科版八年级全一册物理:10.3做功了吗导学案
- 化粪池吸污施工方案
- 小儿童中耳炎
- 创新方法大赛理论测试题库(2018、2019、经典题库)
- 湖北省武汉一初慧泉2023-2024+学年上学期9月同步练习Unit1-Unit+3九年级英语试卷
- 《中华商业文化》第五章
- 人力资源有限公司公司简介
- 议价谈判技巧
- 3dMAX菜单中英文对照表(完整版)
- 1-6年级《语文园地》日积月累汇总
- 山东东营历年中考语文古诗欣赏试题汇编(2003-2020)
- 企业供应链保障措施怎么写
评论
0/150
提交评论