程序结构与测试用例个数的关系毕业设计.doc
《程序结构与测试用例个数的关系毕业设计.doc》由会员分享,可在线阅读,更多相关《程序结构与测试用例个数的关系毕业设计.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本 科 毕 业 设 计 题 目:程序结构与测试用例个数的关系程序结构与测试用例个数的关系摘要:测试用例的产生是软件测试过程中的重要环节,测试用例的数量直接关系到测试的工作量。测试用例的数量选择是进行测试的一个难题,测试用例个数合适与否直接关系到产品质量。随机测试可以避免出现测试偏见,随机测试用例个数的设计对软件测试至关重要。本文针对究竟多少随机测试用例才是充分的这一问题进行探讨,在研究和分析国内外大量有关文献资料的基础上,设计程序插桩,研究不同程序结构在基路径测试中对测试用例个数的影响。将实验得到的数据拟合得出公式,最后用判定三角形的程序进行验证。关键词:程序结构;基路经;随机测试;数据拟合T
2、he relationship between program structure and the number of test caseAbstract: The generation of test cases is the important link in the process of software testing , testing is directly related to the number of test cases. The number of test cases selection is a problem for the test, the test case
3、number right or not directly related to the quality of the product. Random testing can avoid bias, random number of test case design is very important to software testing. Based on how many random test cases are fully discusses this problem, in the research and analysis, on the basis of a lot of rel
4、evant literature at home and abroad, the design program pile, the different program structure in the base path tests the impact on the number of test cases. The data obtained by the experiment data fitting formula, validated with determination of the triangle program finally. Key word: Program Struc
5、ture;Base Path ;Random Testing; Data Fitting 目录程序结构与测试用例个数的关系1一、绪论11.1论文研究背景和意义11.2软件测试的目的11.3论文研究内容1二、软件测试技术22.1软件测试概述22.2软件测试技术的分类22.3软件测试的阶段划分22.4 软件测试存在的问题32.5测试用例的选择32.6测试用例自动化生成技术42.7结构性测试42.7.1路径测试42.7.1.1基路径测试52.8随机测试5三、程序结构63.1方法简述63.2系统结构图63.3程序结构图7四、程序结构与测试用例个数的研究104.1程序控制流图104.2程序算法的实现14
6、4.3程序插桩194.3.1 程序插桩原因194.3.2程序插桩方法204.4测试用例生成框架21五、实验结果分析215.1数据统计结果215.2总结公式215.2.1数据拟合225.2.1.1线性拟合225.2.1.2非线性拟合255.2.2曲线拟合的MATLAB实现275.2.3拟合公式275.3公式的验证325.3.1待测程序分析325.3.1.1程序流程分析335.3.1.2基路径的确定345.3.2程序测试用例生成及验证结果35六、结束语36参考文献36附录36致谢37程序结构与测试用例个数的关系一、绪论1.1论文研究背景和意义软件测试是软件工程的一个重要环节,随着软件技术的发展,软
7、件测试的地位得到提高。测试用例的数量直接关系到测试的工作量。所以测试用例的研究对于软件测试来说至关重要。判断测试是否完整的一个主要评测方法是基于需求的覆盖,而为达到所要求的覆盖,测试用例的选择和数量是关键,也是一个难题,由其测试用例数量在自动化测试中更是难点。测试用例个数合适与否直接关系到产品质量。对于测试用例个数的确定,在现实运用中还没有比较可让大家信服的解决方法,只能凭借以往工作中的经验判断。在此背景下,本文就程序结构与测试用例个数的关系进行研究。1.2软件测试的目的现如今,众多国内外的对软件测试的研究工作及机构正在开展,也有很多已经形成了比较成熟的软件测试技术和规范的流程管理。我们为什么
8、要进行软件测试呢,其目的在于寻找软件的错误,以进行修正;验证软件是否符合要求;是可用的;指导软件的开发过程;提供软件的相关特征,是软件质量保证的可靠手段。1.3论文研究内容 现如今,软件测试的实践性大于理论性,软件测试理论体系尚不成熟、测试工具也不够完善、而测试效果对于个人的依赖性比较大。故本次毕业设计,运用大学所学的程序设计及软件测试的基础知识,在查阅大量资料的基础上,理解、掌握结构测试的原理、方法,探讨随机抽取测试用例满足全覆盖程序基路径的测试用例个数与程序高度、复杂度及输入参数个数的关系,设计若干程序结构,给出相应的程序代码,分析各种结果,获得他们之间的量化关系。二、软件测试技术2.1软
9、件测试概述按照通俗的说法,软件测试就是为了在程序执行时能发现其中的错误。在IEEE提出的软件工程标准术语中 引用古乐编著的软件测试技术概论第一章,其定义为:“使用人工和自动手段来运行和测试某个系统的过程,目的在于检验他是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。一个好的测试发现未曾发现的错误,一个测试成果就是发现了错误。软件测试是一项复杂的工作,其工作必须是可控的,结果必须是可信的。我们用测试用例的覆盖率、测试执行的正确性、测试能正确发现问题、测试文档能正确反映问题来保证软件测试的可靠性。2.2软件测试技术的分类现有的软件测试技术 引用古乐编著的软件测试技术概论第一章通常分为静态
10、测试和动态测试。而动态测试和静态测试的区别就是是否运用测试用例运行程序,如果运行则是动态测试,如果不运行就是静态测试。动态测试又可以分为白盒测试和黑盒测试,静态测试分为语法测试和语义测试。选择测试数据的角度可以分为功能测试和结构测试;从测试数据的类型,可分辨是确定性测试还是随机性测试;从所测的软件的程序语言,可分为面向过程和对象的测试。2.3软件测试的阶段划分传统的软件测试阶段 引用Paul C.Jorgensen编著的软件测试第11页包括单元测试、集成测试、确认测试、系统测试、验证和确认以及回归测试。用户需求定义需求分析预设计详细设计编码单元测试集成测试确认测试系统测试软件开发软件设计2.4
11、 软件测试存在的问题对于软件测试,手工测试有许多的优点,但是如果软件很大,程序很复杂的话就面临这多方面的问题,手工测试与软件技术的发展矛盾将越来越严重,会阻碍软件产业的发展,给其造成一定的负担,如速度慢,(会浪费大量的劳动力、时间、金钱且效率低);检查不够全面(人为的一些错误、思考的偏差);可重用性低(一般手工测试,都是针对具体的程序,在其他程序上使用的可能性很低)都是手工测试的不足之处。2.5测试用例的选择测试用例是针对要测试的内容所确定的一组输入信息,是为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据。测试用例一般应包括输入数据和预期结果,在本论文中仅指输入数据。到目前为
12、止,测试用例 引用Carlos Pacheco. 的Directed Random Testing论文的选择依然是进行结构测试的一个难以攻克的问题,还没有得到妥善的解决。一种方法是经验测试法,需不断执行程序,直至实现了预期的覆盖才停止。这种方法的不足之处在于其效率低,工作量大,只要有一条路径没有被测试,就会一直执行下去,直到覆盖路径为止,这种方法的使用较多。另一种方法是利用程序结构图,构造出实现分支覆盖或路径覆盖的全部路径,然后根据每个路径选择合适的数据输入,并执行程序。这种方法的不足之处在于输入数据的选择比较困难。2.6测试用例自动化生成技术由测试用例的选择我们不难看出,测试用例自动化生成技
13、术 引用罗银的软件测试数据自动生成研究论文是成功进行软件测试的关键技术之一,一般可分为功能测试数据的生成和结构测试数据的生成,可以为被测程序自动化生成测试用例,减轻了测试工作人员的工作量,改变了以往凭借经验、直觉产生测试用例的做法,使测试用例更加具有客观性,也能进一步提高测试的效率,也为软件测试的发展提供了一个捷径之路。2.7结构性测试为了与功能性测试形成对比,结构性测试有时叫做白盒测试,它的实现是已知的,并被用来标识测试用例程序的结构和处理过程象白盒子一样透明。允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。结构测试基于被测程序的源代码,其测试方
14、法支持严格定义、数学分析和精确度量。结构性测试对程序模块的所有独立路径至少检测一次,对所有的逻辑判定,取“真”与“假”的两种情况都至少测试一次,在循环的边界和运行界限内要执行循环体,对测试内部数据结构的有效性等也要进行检测。当测试时间用光、无法考虑新的测试用例或达到所要求的覆盖等条件时测试可停止。2.7.1路径测试路径测试的理想是实现路径覆盖,是指根据路径设计测试用例 引用李宝林、叶军的面向路径的测试数据自动生成工具论文的一种技术,是结构性测试最为典型的问题。从程序入口开始,执行过程中经历每一个语句,直至程序出口,它降低了测试用例设计的难度,不需要用到太多的测试方面的经验,便于自动化。测试覆盖
15、指标是度量一组测试用例覆盖被测程序扩展的工具。测试覆盖指标(基于程序图)指标覆盖描述C0所有语句C1所有DD-路径C1p所有判断的每种分支CdC1覆盖+DD路径的所有依赖对偶C2C1覆盖+循环覆盖Cmcc多条件覆盖Cik包含最多K次循环的所有程序路径(通常K=2)Cstat路径具有“统计重要性”的部分C所有可能执行的路径2.7.1.1基路径测试基路径测试基本思想是找出一组独立路径进行测试,确保程序中每个可执行语句至少执行一次所必须的测试用例数目的下限,提供了用作功能性测试交叉检查的一组指标,但离代码太远,掩盖了代码中的重要信息,难以发现不可行路径。基本路径测试法引用曹烽燕的基于基本路径测试的测
16、试用例自动生成应用研究论文是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。McCabe的基路径方法:程序图的圈数量就是图中线性独立路径的数量,任意两条线性独立路径至少有一条不同的边。它能保证可经过所有决策分支但对现实世界问题的学术性过分简化。圈数量计算方法V(G)=e-n+2。2.8随机测试随机测试引用Paul C.Jorgensen编著的软件测试第84页的基本思想:不是永远选取有界变量的最小值、略高于最小值、正常值、略低于最大值和最大值,而是使用随机数生成器选出测试用例。随
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序结构与测试用例个数的关系 毕业设计 程序结构 测试 个数 关系
限制150内