软件工程-实现课件.ppt
《软件工程-实现课件.ppt》由会员分享,可在线阅读,更多相关《软件工程-实现课件.ppt(89页珍藏版)》请在三一办公上搜索。
1、7.2 软件测试基础,7.3 单元测试,7.4 集成测试,7.1 编 码,7.5 确认测试,7.6 白盒测试技术,7.7 黑盒测试技术,7.8 调 试,7.9 软件可靠性,本章重点:编码 单元测试 集成测试 白盒测试技术 黑盒测试技术难点:白盒测试与黑盒测试技术的区别 测试方案的设计,内 容:编码 软件测试基础 单元测试重 点:软件测试的目的与概念 单元测试的方法难 点:测试概念的理解,测试的方法与步骤,7.1 编 码 把软件设计结果翻译成用某种程序设计语言书写的程序。7.1.1 选择程序设计语言 选择程序设计语言的理想标准:(1)应该有理想的模块化机制,以及可读性好的控制结构和数据结构;(2
2、)应该使编译程序能够尽可能多地发现程序中的错误;(3)应该有良好的独立编译机制。,选择程序设计语言的实用标准:(1)系统用户的要求(2)可以使用的编译程序(3)可以得到的软件工具(4)工程规模(5)程序员的知识(6)软件可移植性要求(7)软件的应用领域,7.1.2 编码风格 源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。(1)程序内部应该有很好的文档 恰当的标识符 适当的注释 程序的视觉组织(2)数据说明应该易于理解便于查阅(3)语句构造应该尽可能简单直观,原则:每个语句都应该简单而且直接,不能为了提高效率而使程序变得过分复杂。下面的规则有助于语句简单明了:不要为了节省空间而把多个
3、语句写在同一行。尽量避免复杂的条件测试 尽量减少对“非”条件的测试 避免大量使用循环嵌套和条件嵌套 利用括号使逻辑表达式或算术表达式的运算次序清晰直观。,(4)输入输出风格遵守人机界面设计准则 规则:对所有输入数据都进行检验 检查输入项重要组合的合法性 保持输入格式简单 使用数据结束标记,不要要求用户指定数据的数目 明确指示交互式输入的请求,详细说明可用的选择或边界数值 当程序设计语言对格式有严格要求时,应保持输入格式一致 设计良好的输出报表 给所有输出数据加标志,(5)效率满足用户要求 效率主要指处理机时间和存储器容量两个方面。可从三个方面讨论效率问题:程序运行时间 存储器效率 输入/输出的
4、效率,7.2 软件测试基础 测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。7.2.1 软件测试的目标 测试的规则:(1)测试是为了发现程序中的错误而执行程序的过程。(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。,(3)成功的测试是发现了至今为止尚未发现的错误的测试。定义1:为了发现程序中的错误而执行程序的过程。定义2:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。7.2.2 软件测试准则 1.所有的测试都应该能追溯到用户需求。2.应该远在测试开始之前就制
5、定出测试计划。,3.应该把Pareto原理(测试发现的错误中80%很可能是由程序中20%的模块造成的)应用到软件测试中。4.应该从“小规模”测试开始,并逐步过渡到“大规模”测试。5.穷举测试是不可能的,因此,测试只能证明程序中有错误,而不能证明程序中没有错误。6.为了达到最佳的测试效果,应该由独立的第三方从事测试工作。,7.2.3 软件测试方法 黑盒测试 白盒测试 黑盒测试:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,这种测试称为黑盒测试,又称功能测试。白盒测试:如果知道产品的内部工作过程,可以通过测试
6、来检验产品内部动作是否按照规格说明书的规定正常进行,它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种测试方法称为白盒测试,又称结构测试。,7.2.4 软件测试步骤 1.模块测试 模块测试的目的是发现并改正程序模块中的错误,保证每个模块作为一个单元能正确地运行。模块测试又称为单元测试。2.子系统测试 把经过单元测试的模块组装成一个子系统,在组装过程中同时进行测试。3.系统测试 把经过测试的子系统组装成一个完整的系统同时进行测试。,4.验收测试 把软件系统作为单一的实体进行测试,测试的目的是验证系统确实能够满足用户的需求,因此,主要是用实际数据进行测试。5.
7、平行运行 同时运行新开发出的系统和将被它取代的旧系统,通过比较新旧两个系统的运行结果来测试新系统。,7.2.5 测试阶段的信息流 测试阶段的信息流的输入信息有两类:(1)软件配置,包括需求说明书、设计说明书和源程序清单等;(2)测试配置,包括测试计划和测试方案。,图7.1 测试阶段的信息流,7.3 单元测试 7.3.1 测试重点 1.模块接口 2.局部数据结构 3.重要的执行通路 4.出错处理通路 5.边界条件,7.3.2 代码审查 1.审查小组组成:(1)组长,应该是一个很有能力的程序员,而且没有直接参与这项工程;(2)程序的设计者;(3)程序的编写者;(4)程序的测试者。2.审查小组任务:
8、发现错误而不是改正错误,改正错误的责任有程序的编写者承担。,3.代码审查比计算机测试的优越性:一次审查会上可以发现许多错误;用计算机测试的方法发现错误之后,通常需要先改正这个错误才能继续测试,因此错误是一个一个地发现并改正的。也就是说,采用代码审查的方法可以减少系统验证的总工作量。7.3.3 计算机测试 模块并不是一个独立的程序,因此必须为每个单元测试开发驱动软件和(或)存根软件。,驱动程序就是一个“主程序”,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果。存根程序代替被测试的模块所调用的模块。它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并
9、且把控制归还给调用它的模块。,图7.2 正文加工系统的层次图,内容:集成测试 确认测试 白盒测试技术重点:集成测试 白盒测试难点:测试方案与测试用例的设计,7.4 集成测试 是测试和组装软件的系统化技术,也叫组装测试、联合测试、子系统测试或部件测试,是在单元测试的基础上,将所有模块按照概要设计要求组装成子系统或系统的同时进行的测试。模块组装成程序时有两种方法:(1)非渐增式测试方法:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,这种方法称为非渐增式测试方法。,(2)渐增式测试:是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块
10、结合进来测试。这种每次增加一个模块的方法称为渐增式测试,这种方法实际同时完成单元测试和集成测试。,两种方法的优缺点:(1)非渐增式测试一下子把所有模块放在一起,并把庞大的程序作为一个整体来测试,测试者面对的情况十分复杂。测试时会遇到许许多多的错误,改正错误更是极端困难,因为在庞大的程序中想要诊断定位一个错误是非常困难的。而且一旦改正一个错误之后,马上又会遇到新的错误,这个过程将继续下去,看起来好像永远也没有尽头。,(2)渐增式测试与“一步到位”的非渐增式测试相反,它把程序划分成小段来构造和测试,在这个过程中比较容易定位和改正错误;对接口可以进行更彻底的测试;可以使用系统化的测试方法。,7.4.
11、1 自顶向下集成 自顶向下集成方法从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。目的:从顶层模块开始,采用同设计顺序一样的思路对被测系统进行测试,以验证系统的接口稳定性。,把模块结合进软件结构的具体过程由4个步骤完成:第一步,对主控制模块进行测试,测试时用存根程序代替所有直接附属于主控制模块的模块;第二步,根据选定的结合策略(深度优先或宽度优先),每次用一个实际模块代换一个存根程序(新结合进来的模块往往又需要新的存根程序);,第三步,在结合进一个模块的同时进行测试;第四步,为了保证加入模块没有引进新的错误,可能需要进行回归测试(即,全部或部分地重复以前做过的测试)。,7
12、.4.2 自底向上集成 自底向上测试从“原子”模块(即在软件结构最低层的模块)开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要存根程序。目的:从具有最小依赖性的底层组件开始,按照依赖关系树的结构,逐层向上集成,以检测整个系统的稳定性。,自底向上的结合策略的步骤:第一步,把低层模块组合成实现某个特定的软件子功能的族;第二步,写一个驱动程序(用于测试的控制程序),协调测试数据的输入和输出;第三步,对由模块组成的子功能族进行测试;第四步,去掉驱动程序,沿软件结构自下向上移动,把子功能族组合起来形成更大的子功能族。,7.4.3 不同集成测试策略的比较1.自顶向下测试
13、方法的主要优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。,2.自顶向下测试方法的主要缺点:需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力。3.混合策略:(1)改进的自顶向下测试方法(2)混合法,7.4.4 回归测试 回归测试是指重新执行已经做过的测试的某个子集,以保证集成模块时程序的变化没有带来非预期的副作用。用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。,回归测试集包括3类不同的测试用例:(1)检测软件全部功能的代表性测试用例;(
14、2)专门针对可能受修改影响的软件功能的附加测试;(3)针对被修改过的软件成分的测试。,7.5 确认测试 确认测试也称验收测试,它的目标是验证软件的有效性。验证:指的是保证软件正确地实现了某个特定要求的一系列活动。确认:指的是为了保证软件确实满足了用户需求而进行的一系列活动。软件有效性:如果软件的功能和性能如同用户所合理期待的那样,软件就是有效的。,7.5.1 确认测试的范围 确认测试必须有用户积极参与,或者以用户为主进行,通常使用黑盒测试法。确认测试有下述两种可能的结果:(1)功能和性能与用户要求一致,软件是可以接受的;(2)功能和性能与用户要求有差距。,7.5.2 软件配置复查 目的:是保证
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 实现 课件
链接地址:https://www.31ppt.com/p-4067968.html