软件技术基础 教学课件 ppt 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5

上传人:E**** 文档编号:89494494 上传时间:2019-05-25 格式:PPT 页数:33 大小:454KB
返回 下载 相关 举报
软件技术基础 教学课件 ppt 作者  张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5_第1页
第1页 / 共33页
软件技术基础 教学课件 ppt 作者  张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5_第2页
第2页 / 共33页
软件技术基础 教学课件 ppt 作者  张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5_第3页
第3页 / 共33页
软件技术基础 教学课件 ppt 作者  张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5_第4页
第4页 / 共33页
软件技术基础 教学课件 ppt 作者  张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《软件技术基础 教学课件 ppt 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5》由会员分享,可在线阅读,更多相关《软件技术基础 教学课件 ppt 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-5(33页珍藏版)》请在金锄头文库上搜索。

1、1,计算机软件技术基础,课件,第一章 数据结构,第二章 操作系统,第三章 软件工程,第四章 数据库,制作者:张选芳 Email: 电话:5182508,2,第三章 软件工程,第一单元,第二单元,第三单元,第四单元,第五单元,第六单元,3,软件测试,第五单元,第三章 软件工程,4,3.7 软件测试 软件测试能有效地发现软件中的绝大多数错误, 是保证软件质量的关键环节, 是对需求分析、设计和编码等阶段各项工作的最后复审。 统计表明, 开发较大规模的软件, 软件测试的工作量往往占软件开发总工作量的40%左右。对于某些关键领域的软件(例如航空、航天、核反应堆控制),其测试费用甚至会达到其他软件工程阶段

2、费用总和的三到五倍。 无论是早期潜伏下来的错误或编码中新引入的错误,若不及时排除,轻者降低软件的可靠性,重者导致整个系统的失败。,5,3.7.1 测试的目标和任务 测试的目标或定义: (1)测试是为了发现程序中的错误而执行程序的过程。 (2)好的测试方案是发现迄今为止尚未发现的错误的测试方案。 (3)成功的测试是发现了至今尚未发现的错误的测试。 还应该认识到测试决不能证明程序是正确的。即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。,6,测试阶段的任务 (1)测试。采用一定的测试策略,发现程序中的错误。 (2)纠错,也称为调试(Debugging)。 如果测试到错误,则定位

3、程序中的错误并加以纠正。纠错通常在测试发现错误后进行。 测试用例(Test Case) 通常,每一次测试都需要为之准备若干的测试数据,把用于测试过程的测试数据称为测试用例(Test Case)。,7,判断三角型的测试用例设计:,输入数据 预期结果 (1) 6;6;6 等边 (2) 8;8;4 等腰 (3) 4;5;6 一般 还应输入 非法数据: 0; 7; 9 -7;3; 5 a; 2; 7 等,8,3.7.2 软件测试方法 要求被测程序在机器上运行。,9,1. 静态分析 静态分析是指被测程序不在机器上执行,而是采用人工方式分析程序和计算机辅助静态分析的手段对程序进行分析、检查,以发现代码中潜

4、在的错误。 静态分析器 静态分析器扫描被测程序的正文,从中寻找可能导致错误的异常情况。 代码评审 代码评审主要是发现程序在结构、功能和编码风格方面的问题。,10,代码评审有两类组织形式 办公室检查 一类叫做办公室检查,由编程者自己审查自己的代码,适用于规模很小的程序; 小组会的方式 另一类以小组会的方式进行,适用于各种规模的程序。 走查: 走查主要是对文档进行分析,寻找重大错误,审查步骤没有会审那么正规。 代码会审: 代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。,11,2. 动态测试 动态测试是指通过运行程序发现错误。 (1)黑盒测试(Black Box Testing)

5、把被测程序看成一个黑盒,根据程序的功能来设计测试用例, 称为黑盒测试; 是否有不正确或遗漏了的功能。 在接口上,能否正确地接收输入数据,能否产生正确的输出结果。 是否有数据结构错误或外部数据库访问错误。 性能上是否能满足要求。 有4种常用的技术:等价类划分、边界值分析、错误猜测和因果图。,12,(2)白盒测试 以程序的结构为依据,所以又称为结构测试、逻辑驱动测试或基于程序的测试。在这种测试中,将测试对象看作是一个打开的盒子,测试人员需要完全了解程序的内部结构和处理过程,来设计或选择测试用例。它按照程序内部的逻辑测试程序,检验程序中的主要执行通路是否都能按预定要求正确工作;通过在不同点检查程序的

6、状态,确定实际的状态与期望的状态是否一致。因此,白盒测试主要考虑的是测试用例对程序内部逻辑的覆盖程度,而不考虑程序的功能。,13,白盒测试法对程序进行如下检查 保证每一个模块中的所有独立的执行路径至少被测试一次。 对所有的逻辑判定,取“真(True)”和取“假(False)”都至少测试一次。 在上下边界以及可操作范围内运行所有循环。 测试内部数据结构的有效性。 主要方法有逻辑覆盖和路径测试。 (3) 黑盒测试和白盒测试的比较 白盒测试关注的是被测对象的内部状况,需要跟踪源代码的运行。,14,3.7.3 白盒测试技术 在白盒测试中,被测对象基本上是源程序,是以程序的内部逻辑结构为基础设计测试用例

7、。,15,1. 逻辑覆盖 逻辑覆盖测试法以程序内部的逻辑结构为基础,通过用程序流程图来设计测试用例,它考察的重点是图中的判定框(菱形框)。 逻辑覆盖的分类 (1)语句覆盖:是指设计测试用例,使被测程序中的每条语句至少执行一次。 (2)判定覆盖:是指设计测试用例,使得程序中每个判定的每种可能的结果都应该至少执行一次,即每个判定的每个分支都执行至少一次。,16,(3)条件覆盖:是指设计测试用例,不仅使每个语句至少能执行一次,而且要使判断表达式中的每个条件取得的各种可能结果均出现至少一次。 (4)判定条件覆盖:型是指设计测试用例,使得判断中每个条件的所有可能取值至少执行一次,并且每个判断的所有可能判

8、断结果至少执行一次。 (5)条件组合覆盖:是指设计测试用例,使得被测试程序中的每个判断的所有可能的条件取值组合至少执行一次。,17,2. 路径测试 (1) 程序的控制流图:描述程序控制流的一种图示表示。 (2) 程序的复杂度:从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少一次所必须的测试用例数目的上界。 (3) 导出测试用例:根据程序的复杂度和程序结构设计用例数据输入和预期结果。 (4) 准备测试用例:确保基本路径集中的每一条路径的执行。,18,3.7.4 黑盒测试技术 黑盒测试着重测试软件功能,而不是内部结构。,软件,输入,输出,不深入代码细节的测

9、试方法称为动态黑盒测试。软件测试员充当客户来使用它。,黑盒测试 又称: 功能测试 数据驱动测试 基于规格说明书的测试,19,1. 等价类划分 等价类划分就是把数量巨大的输入数据(有效的和无效的)划分为若干等价类,使每类中的任何一个测试用例,都能代表同一等价类中的其他测试用例。 有效等价类: 有效等价类由那些对于软件设计规格说明来说合理的、有意义的输入数据组成,可以检测软件是否实现了规格说明所规定的功能和性能。 无效等价类: 无效等价类由那些对于软件设计规格说明来说不合理的、无意义的输入数据组成,可以检测软件中的功能和性能是否存在不符合规格说明的情况。,20,2. 边界值分析 边界值分析是一种补

10、充等价类划分的测试用例设计技术。实践表明,程序员在处理边界情况时,很容易因疏忽或考虑不周发生编码错误。 采用边界值分析法,就是要这样来设计测试用例,使得被测程序在边界值及其附近运行,从而更有效地暴露程序中潜藏的错误。 使用边界值分析方法设计测试用例时,首先要确定边界情况,通常输入等价类和输出等价类的边界,就是应该着重测试的边界情况。选择测试用例时,一定要选择临近边界的合法数据,以及刚刚超过边界的非法数据。,21,边界值分析法 边界值分析法与等价类划分法区别 (1)边界值分析不是从某等价类中 随便挑一个作为代表,而是使 这个等价类的每个边界都要作 为测试条件。 (2)边界值分析不仅考虑输入条件,

11、 还要考虑输出空间产生的测试 情况,软件边界与悬崖很类似,22,3.7.5 软件测试策略,23,1. 单元测试 单元测试集中检验软件设计的最小单位(模块), 目的在于发现模块内部可能存在的各种差错,比如,编码和详细设计的错误。通常,单元测试和编码属于软件过程的同一个阶段。据统计,单元测试发现的错误约占程序总错误的65%。测试从单元开始,减少了测试的复杂性,易于确定错误的位置(不超出一个模块),而且多个单元可以并行测试,缩短测试周期。 单元测试的内容包括模块接口测试、局部数据结构测试、重要执行路径测试、出错处理路径测试、边界条件测试。,24,单元测试的一般方法: (1)先用静态分析发现一些语法或

12、结构上的错误,特点是不依靠执行被测程序来发现代码中的错误。从测试的角度来看,编译器也是一种静态分析工具,其检查对象是代码中的语法错误。接下来的静态分析器检查和代码评审也是静态分析,不过测试已从语法检查改变为以结构性错误为主的检查。 (2)然后用动态测试发现模块中的错误。动态测试中大多从程序内部结构出发设计测试用例,适合采用白盒测试法。,25,2. 集成测试 集成测试是将通过单元测试的各个模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的各种错误。 非增量式集成 如果把所有通过单元测试的模块一次全部组装起来构成系统,然后进行整体测试,这种方式称为非增量式集成。 增量式集成 与之相反

13、的方法是增量式集成,程序按模块逐步集成,测试范围一步一步增大,错误易于定位和纠正,接口的测试可以做到比较彻底。常用的增量式集成方法包括自顶向下集成、自底向上集成和混合式集成。,26,自顶向下:集成中模块集成的顺序是首先集成主控模块,然后按照控制层次结构向下进行集成。从属于(和间接属于)主控模块的模块按照深度优先或者广度优先的方式集成到整个结构中去。 自底向上:集成测试是从原子模块 (比如在程序结构的最底层的模块)开始来进行构造和测试的。 集成策略的选择依赖于软件的特性,有时候还依赖于项目的进度安排。,27,3. 确认测试 确认测试主要是确认已组装的程序是否满足软件需求规格说明书的要求。 确认测

14、试通常使用黑盒测试法。 确认测试的一个重要内容是软件配置复审 其目的在于检查所有文档资料的完整性、正确性和一致性等,如程序的文档是否已编写齐全而且已编好目录、文档和程序的内容是否一致等。,28,(1)验收测试 如果软件是给一个用户开发的,需要进行一系列的验收测试来保证满足用户的所有需求。 (2)Alpha和Beta测试 如果一个软件是供很多用户使用,这时可使用Alpha测试或Beta测试,来发现通常最终用户才能发现的错误。 Alpha测试:指开发公司组织内部人员模拟各类用户对即将面市的软件产品进行测试 Beta测试:由最终用户在自己的进行,开发者通常不会在场。,29,4. 系统测试 系统测试是

15、将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试。 系统测试目的 目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。 任务 它的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检查系统“做得怎样?”。,30,这阶段又可分为3个步骤 模块测试: 测试每个模块的程序是否有错误; 组装测试: 测试模块之间的接口是否正确; 确认测试: 测试整个软件系统是否满足用户功能和性能要求。 该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。 测试发现问题之后要经

16、过调试找出错误原因和位置,然后进行改正。,31,系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。 系统测试同时是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。 系统测试的对象 系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。,32,小结 需要复习的知识点,测试的目标和任务 软件测试方法 静态分析 动态测试 白盒测试技术 逻辑覆盖 路径测试 黑盒测试技术 等价类划分 边界值分析 软件测试策略 单元测试 集成测试 确认测试 系统测试 作业:P222, 一、(22,23,24,25,26,27) 二、(16,17,18), 预习 3.8 软件维护,33,注意,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号