




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程导论,主讲:李传科Tel-mail:lichuanke8815,海软院软件工程系,2,第7讲实现(编码与测试),7.1编码7.2软件测试基础7.3单元测试7.4集成测试7.5确认测试7.6白盒测试技术7.7黑盒测试技术7.8调试,海软院软件工程系,3,8.1编码,编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。程序设计语言分类:机器语言;汇编语言;高级语言主流程序设计语言:面向对象程序设计语言(C+;C#;Java;VB;Dephi等);脚本语言(Javascript;Vbscript;Jsp;Php;Perl;Ruby/Rails;Python等),海软院软件工程系,4,2程序设计风格,(1)源程序文档化(2)数据说明(3)语句结构(4)输入输出方法,1、选择程序设计语言,海软院软件工程系,5,(1)源程序文档化,1.标识符命名2.添加注释3.程序的视觉组织,海软院软件工程系,6,(2)数据说明,在设计阶段已经确定了数据结构的组织及其复杂性。在编写程序时,则需要注意数据说明的风格。为了使程序中数据说明更易于理解和维护,必须注意以下几点:a.数据说明的次序应该标准化。有次序易查阅,能加速测试、调试和维护的过程。b.当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量,海软院软件工程系,7,(3)语句构造:简单明了构造语句时应该遵循的原则是,每个语句都应该简单而直接,不能为了提高效率而使程序变得过分复杂;也不要刻意追求技巧性,使程序编写得过于紧凑。例如:AI=AIAT;AT=AIAT;AI=AIAT;,temp=AT;AT=AI;AI=temp;,海软院软件工程系,8,下述规则有助于使语句简单明了:不要为了节省空间而把多个语句写在同一行;尽量避免复杂的条件测试;尽量减少对“非”条件的测试;if(!(char0|char9)改成if(char=0(6)穷举测试是不可能的;(7)程序修改后要回归测试;(8)应长期保留测试用例,直至系统废弃。,7.2.2软件测试准则,海软院软件工程系,17,软件缺陷产生的原因,软件缺陷产生的原因分布,海软院软件工程系,18,穷举测试实例:设程序含5个分支,循环次数20,从A到B的可能路径执行时间:设测试一次需2ms穷举测试需5亿年.,海软院软件工程系,19,4.如何测试?,关键技术-设计测试方案。测试方案-包括:具体的测试目的,应该输入的测试数据和预期的结果(测试用例)。不同的测试数据发现程序错误的能力差别很大,为了提高测试效率降低测试成本,应该选用高效的测试数据。因为不可能进行穷尽的测试,选用少量“最有效的”测试数据,做到尽可能完备的测试就变很重要了。,海软院软件工程系,20,7.2.3测试方法,海软院软件工程系,21,【黑盒法】:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;只关心软件功能是否正确与完善。【白盒法】:如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明的规定正常进行;只关心软件内部逻辑实现是否正确无误。,7.2.3测试方法,海软院软件工程系,22,7.2.4测试步骤,海软院软件工程系,23,7.3单元(模块)测试,7.3.1测试重点-5个方面1.模块接口-对模块接口传递数据的正确性测试2.局部数据结构-发现局部数据说明、初始化等错误3.重要的执行通路-选择最具代表性的通路测试4.出错处理通路-设计适当的出错处理通路5.边界条件-测试数据边界值,单元测试和编码属于软件过程的同一阶段;主要使用白盒测试技术。,海软院软件工程系,24,7.3.2代码审查由审查小组(组长,程序设计者,程序编写者,程序测试者),人工测试源程序称为代码审查。它是一种非常有效的程序验证技术,对于典型的程序来说,可以查出30%70%的逻辑设计错误和编码错误。,单元(模块)测试方法,审查的步骤:小组成员先研究设计说明书,力求理解这个设计。由设计者扼要地介绍他的设计。审查会上程序的编写者逐个语句地解释是怎样用程序代码实现这个设计的。审查会上对照程序设计常见错误,分析审查这个程序。当发现时,记录错误,继续审查。,海软院软件工程系,25,7.3.3计算机测试单元测试通常在编码阶段进行,使用一些辅助模块去模拟与被测模块相联系的其他模块。主要有:驱动软件和存根(桩)软件。驱动程序:相当于调用被测模块的“主程序”。(2)存根(桩)程序:用来代替被测试的模块所调用的模块,也称为“虚拟子程序”。它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块。,单元(模块)测试方法,海软院软件工程系,26,驱动程序和存根程序是为了进行单元测试编写的测试软件只是测试用!,海软院软件工程系,27,7.4集成测试,集成测试是测试和组装软件的系统化技术,其主要目标是发现与接口有关的问题。测试任务:(1)数据穿越模块接口时是否会丢失;(2)一个模块是否对另一个模块产生不利影响;(3)各子功能组合起来能否达到预期的功能;(4)个别看来是可以接受的误差积累是否会放大到不能接受的程度;,海软院软件工程系,28,集成测试有两种方法。1、非渐增式测试方法,即:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序进行测试。2、渐增式测试,即:先把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。这种每次增加一个模块的方法实际上同时完成单元测试和集成测试.目前在进行集成测试时普遍采用渐增式测试方法。,7.4集成测试,海软院软件工程系,29,渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。但在实践中常采用混合的策略。,7.4.1自顶向下集成,7.4.2自底向上集成,深度(宽度)优先组装,需要存根程序,自底向上组装,需要驱动程序,海软院软件工程系,30,7.5确认测试,确认测试也称为验收测试,它的目标是验证软件的有效性。什么是软件的有效性?,7.5.1确认测试的范围7.5.2软件配置复查7.5.3Alpha和Beta测试,海软院软件工程系,31,7.6黑盒测试技术,检查程序各功能是否实现性能上是否能够满足要求又称为功能测试、数据驱动测试或基于规格说明的测试,里面有是什么东东?,海软院软件工程系,32,7.6黑盒测试技术-测试用例设计,海软院软件工程系,33,1等价类划分法(等价分配)起因穷举测试不可能希望达到测试的完备和无冗余基本思想把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类别或等价区间),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同。,海软院软件工程系,34,如何划分等价类?,等价类,有效等价类(合理等价类)无效等价类(不合理等价类),划分原则,覆盖:所选类别应能覆盖所有可能的类别不相交:一种取值只测试某一种等价类代表性:取值能代表某一种等价类,海软院软件工程系,35,划分等价类的规则,0100,有效等价类0成绩100,无效等价类成绩100,无效等价类成绩1T2:b3,执行路径:L13:p1p3L14:p1p4L23:p2p3L24:p2p4,海软院软件工程系,48,7.7白盒测试技术语句覆盖,设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。,海软院软件工程系,49,测试用例设计,案例分析,语句覆盖是最弱的逻辑覆盖,海软院软件工程系,50,7.7白盒测试技术判定覆盖,设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次(“L24和L13”或者“L23和L14”),海软院软件工程系,51,测试用例设计,案例分析,判定仍然是弱的逻辑覆盖,海软院软件工程系,52,7.7白盒测试技术条件覆盖,设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件(T1,T2,T3,T4)的每个可能取值至少执行一次。,海软院软件工程系,53,测试用例设计,案例分析,条件覆盖不一定满足判定覆盖,海软院软件工程系,54,7.7白盒测试技术判定/条件覆盖,设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。,海软院软件工程系,55,测试用例设计,案例分析,能同时满足判定、条件两种覆盖标准,海软院软件工程系,56,7.7白盒测试技术条件组合覆盖,设计足够多的测试用例,运行所测程序,使程序中每个判断的所有可能的条件取值组合至少执行一次。,海软院软件工程系,57,测试用例设计,案例分析,是较好的覆盖指标。但当判定表达式较为复杂的时候,条件组合覆盖的测试用例规模相当大,海软院软件工程系,58,7.8调试,调试(也称为纠错)作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。虽然调试应该而且可以是一个有序过程,但是,目前它在很大程度上仍然是一项技巧。软件工程师在评估测试结果时,往往仅面对着软件错误的症状,也就是说,软件错误的外部表现和它的内在原因之间可能并没有明显的联系。调试就是把症状和原因联系起来的尚未被人深入认识的智力过程。,海软院软件工程系,59,7.8.1调试过程,调试是软件开发过程中最艰巨的脑力劳动。调试工作如此困难,可能心理方面的原因多于技术方面的原因,海软院软件工程系,60,7.8.2调试途径,无论采用什么方法,调试的目标都是寻找软件错误的原因并改正错误。通常需要把系统地分析、直觉和运气组合起来,才能实现上述目标。一般说来,有下列3种调试途径可以采用:1、蛮干法-逐点(单步)跟踪2、回溯法-从出错处向上追朔3、原因排除法-对分查找法、归纳法和演绎法,海软院软件工程系,61,本章小结:1、实现包括编码和测试两个阶段2、编码=设计结果翻译成程序(某种程序语言编写)3、测试包含静态测试和动态测试,测试步骤至少分为:1.模块测试-单元2.子系统测试-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年致远学院第一批次人才引进考前自测高频考点模拟试题及1套参考答案详解
- 2025合同样本:购房定金合同示范文本
- 2025江苏宿迁市泗洪县卫健系统引进高层次人才33名模拟试卷及答案详解(全优)
- 2025广东广州市百万英才汇南粤广州中医药大学第三附属医院招聘14人模拟试卷带答案详解
- 广西柳州市2026届高三上学期9月月考试题 物理 含答案
- 2025湖北恩施州宣恩县园投人力资源服务有限公司招聘多家企业人员人员考前自测高频考点模拟试题及答案详解(全优)
- 火力电厂考试题库及答案
- 电商直播考试题库及答案
- 海油电焊考试题库及答案
- 咖啡大师考试题库及答案
- 2024版2025秋贵州黔教版综合实践活动五年级上册全册教案教学设计
- 转作风重实干课件
- 村干部饮水安全培训总结课件
- 甲状腺课件类型
- 安全生产治本攻坚三年行动半年工作总结
- 单招备考科学方案
- 医美咨询培训课件
- 海船船员适任 评估规范(2024)轮机专业
- DB50-T 1463.2-2023 牛羊布鲁氏菌病防控技术规范 第2部分:人员防护
- 《工程勘察设计收费标准》(2002年修订本)
- 科技论文写作与学术规范PPT通用课件
评论
0/150
提交评论