《-软件测试课件第4章软件测试过程一单元测试-.docx》由会员分享,可在线阅读,更多相关《-软件测试课件第4章软件测试过程一单元测试-.docx(6页珍藏版)》请在第壹文秘上搜索。
1、”软件测试课件第4章软件测试过程一单元测试”1、(一)单元测试单元测试是开发者通过编写代码检验被测代码的某单元功能是否正确而进行的测试一个单元测试是用于推断某个特定条件(或者场景)下某个特定函数的行为单元测试与其他测试不同,可以看作是编码工作的一部分,是由程序员自己完成的单元测试是软件测试的基础,其效果会直接影响到软件后期的测试,最终在很大程度上影响软件质量。单元测试的一些规范和原则单元测试进行的越早越好,甚至可以测试驱动开发;单元测试应当依据具体规格说明书进行;单元测试应当根据单元测试方案和方案进行,排解测试随便性;单元测试用例应当经过审核;对全新的代码和修改过的代码都应当进行单元测试;应当
2、选择合适的被测单元的大小;对被测试单元应达到2、肯定的掩盖率要求;测试内容应当包括正面测试和负面测试;当测试用例的测试结果与设计规格说明不同时,测试人员应当照实记录测试结果;留意使用单元测试工具。单元测试内容测试用例模块,模块接口局部数据结构独立路径错误处理边界条件单元测试内容测试模块的接口是为了保证被测程序单元的信息能够正常地流入和流出;检查局部数据结构是为了确保临时存储的数据在算法的整个执行过程中能够维持其完整性;执行掌握结构中的全部独立路径(基本路径)以确保模块中的全部语句至少执行一次;测试错误处理确保被测模块在工作中发生了错误能够做出有效的错误处理措施;测试边界条件确保模块在到达边界值
3、的极限或受限处理的情形下仍能正确执行。单元测试3、方法在进行单元测试时,被测试的单元本身不是独立的程序,需要为其开发驱动模块和桩模块驱动模块是用来模拟待测试模块的上级模块桩模块也称为存根程序,用以模拟待测模块工作过程中所调用的模块单元测试方法单元测试的环境如下图所示单元测试方法代码审查是单元测试的第一步,保证代码算法的规律正确性、清楚性、规范性、全都性,详细将审查以下内容命名规章检查,审查变量名、函数名等是否遵循命名规章;代码格式检查,审查是否遵循编码规范及代码格式;内存使用,审查程序是否读取了未初始化的内存、是否存在越界使用内存、指针使用是否正确以及是否释放已安排的内存;表达式推断,审查规律
4、表达式是否正确、是否正确使用规律表达式中4、的变量、各推断分支是否都得到了处理等;可读性,审查缩进掌握是否有效提高代码的可读性,解释是否精确、充分、有意义以及标号、程序(函数名)、变量名等是否有意义且精确;程序多余物,审查是否存在执行不到的代码、是否存在垃圾语句以及声明的变量、常量、函数等是否使用。单元测试方法然后使用测试工具进行静态分析,通过掌握流程分析、数据流分析以及表达式分析来尽可能发觉代码中存在的错误。然后设计测试用例,达到肯定的掩盖标准并执行测试用例,还要考虑边界值状况和单元运行的效率,包括运行时间、占用空间以及精度等参数。还可采纳错误推想法,列举出程序中可能存在的和简单发生的错误,
5、并依据测试阅历,对这些错误作重点测试。单元5、测试过程单元测试的实施步骤包括:测试策划,在具体设计阶段完成单元测试方案;测试设计,建立单元测试环境,完成测试设计和开发;测试执行,执行单元测试用例,并具体记录测试结果;测试总结,判定测试用例是否通过并提交测试文档。函数掩盖函数掩盖主要是评估在进行测试时函数的执行比率,函数掩盖率用下列公式进行计算:函数掩盖率=至少执行到一次的函数数量/被测试系统中的函数总数量从公式可以看出来,函数掩盖率是一种比语句掩盖率更简洁的掩盖,主要用来检查哪些单元没有被执行,防止遗漏对某些单元的测试。Z路径掩盖一个循环无论其循环了多少次,被看成最多只有两条路径执行和未执行两
6、种状况将整个程序的路径画成路径树,然6、后依据树上的叶子节点来得到程序的路径,从根节点到叶子节点进行遍历,当全部叶子节点被遍历完全后,就能得到全部的路径。这些路径被称为Z路径为全部路径生成测试用例进行测试,就做到了Z路径掩盖测试ESTCA掩盖ESTCA掩盖最核心的部分是一套错误敏感测试用例分析规章ESTCA(ErrorSensitiveTestCasesAnalysis),详细规章如下:对于AreIB(rel可以是)型的分支谓词,应适当选择A与B的值,使测试执行到该分支语句时,AB的状况分别消失一次。对于ArellC(rell可以是,A是变量,C是常量)型的分支谓词,当rell为时,应适当地选
7、择A,使A=C7、+Mo对外部输入的变量赋值,使其在每一个测试用例中均有不同的值与符号,并与同一组测试用例中其他变量的值与符号不全都。LCSAJ掩盖一个LCSAJ其实是一组挨次执行的代码,它的起点是由程序本身打算。起点可以是程序第一行(入口)或转移语句的入口点,也可以是掌握流可跳转的点。一个LCSAJ可能结束于程序的出口,也可能结束于一个导致掌握流跳转的点。假如有几个LCSAJ首尾相接,且第一个LCSAJ起点为程序起点,最终一个LCSAJ终点为程序终点,这些LCSAJ串就组成了程序的一条路径(LCSAJ路径)。一条LCSAJ路径可能是由2个、3个或多个LCSAJ组成。LCSAJ掩盖LCSAJ掩
8、盖准则是一个分8、层的掩盖准则,详细介绍如下:第一层:语句掩盖。其次层:分支掩盖。第三层:LCSAJ掩盖。即程序中的每一个LCSAJ至少都在测试中经受过一次。第四层:两两LCSAJ掩盖。程序中每两个首尾相连的LCSAJ组合起来在测试中都要经受一次。.第n层:每n个首尾相连的LCSAJ组合在测试中都经受一次LCSAJ掩盖以下面的程序为例,查找其中的LCSAJ路径LCSAJ掩盖依据上面的程序画出其流程图LCSAJ掩盖可以看出,该程序中共有如下5个LCSAJ:(l)intk=0J=0;if(x3)j=j%3;(5)j=j%3;分析得到4条LC9、SAJ路径:(I)-(2)-(4)(1)-(2)-(5
9、)(1)-(3)-(4)(1)-(3)(5)MC/DC掩盖MC/DC是DO-178B(美军标)中首次提出的,开头是为了提高航空软件测试中的掩盖率水平在DO-178B标准中,对MC/DC有如下要求:判定中每个条件的全部可能结果至少消失一次;每个判定本身的全部可能结果也至少消失一次;每个入口点和出口点至少要执行一次;每个条件都能单独影响判定结果。Me/DC掩盖以下面程序为例,设计测试用例满意MC/DC掩盖MC/DC掩盖以下5个测试用例所能达到的MC/DC掩盖率序号序号输入输入A输入输入B输入输入C输入输入DMC/DC掩盖率掩盖率10010、0102022125%3010050%4011075%51
10、001100%MCDC掩盖MC/DC发觉的主要软件问题包括:ORF:OperatorReferenceFaults,例如与被误写成或。VNF:VariableNegationFaults,一个变量被误写成了它的否定。ENF:ExpressionNegationFaults,一个表达式被误写成了它的否定。俄罗斯方块嬉戏排行榜排行榜功能是俄罗斯方块嬉戏中不行或缺的一部分,用以将当前用户的得分与历史得分记录进行比较并重新排序。主要涉及的功能点有历史记录文件的读取分数排名的计算与排序新纪录文件的保存新纪录的显示11、等待测源代码待测源代码测试设计代码走查首先利用代码走查的方法检查一下该模块的代码,对代
11、码质量进行初步的评估本模块的代码基本状况如下:代码直观代码和设计文档对应无用的代码已经删除解释过于简洁测试设计基本路径法绘制程序的掌握流图计算环路简单度导出独立路径设计测试用例边界值法简化程序模块,绘制程序模块图:测试设计基本路径法绘制程序的掌握流图:计算环路简单度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:12、1-3-5-7-9-10-11路径6:1-3-5-7-9-11测试设计基本路径法设计测试用例令:personl=
12、23;person2=20;person3=10;person4=6;person5=4;作为测试输入,设计测试用例如表:测试设计基本路径法设计测试用例编号输入数据输出数据路径掩盖推断掩盖Scorepersonlperson2person3person4person51242423202261-2-HT2212321202261-3-4-11FT3152320221061-3-5-6-11FFT48232022861-3-5-7-8-11FFFT55232022651-313、-5-7-9-10-11FFFFT60232022641-3-5-7-9-11FFFFF测试设计边界值法令:perso
13、nl=23;person2=20;person3=10;person4=6;person5=4;采纳边界值法设计测试用例测试执行测试总结测试设计边界值法序号测试内容测试数据期望结果Scorel从大到小排序23personl=23person2=23person3=20person4=10person5=62从大至U小排序24personl=24person2=23person3=20person4=10person5=63从大到小排序4personl=23person2=20person3=10person4=6person5=44从大到小排序3personl=23person2=20person3=10person4=6person5=45从大到小排序12personl=23perso2=20person3=12person4=10person5=6本章首先介绍了单元测试的概念,然后主要介绍了单元测试的原则、内容、方法以及过程,最终结合俄罗斯方块嬉戏中的得分排行榜功能单元的实例介绍在实际项目中单元测试是如何开展的。