软件工程专业总复习.ppt

上传人:风**** 文档编号:998597 上传时间:2024-03-20 格式:PPT 页数:68 大小:2.15MB
下载 相关 举报
软件工程专业总复习.ppt_第1页
第1页 / 共68页
软件工程专业总复习.ppt_第2页
第2页 / 共68页
软件工程专业总复习.ppt_第3页
第3页 / 共68页
软件工程专业总复习.ppt_第4页
第4页 / 共68页
软件工程专业总复习.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、20 三月 2024复习资料复习资料Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业相关知识介绍相关知识介绍测试基本步骤:测试基本步骤:l测试资料的收集与整理;测试资料的收集与整理;l熟悉所要测试的软件;熟悉所要测试的软件;l测试方案的制定;测试方案的制定;l测试计划的编写;测试计划的编写;l测试实例设计与编写;测试实例设计与编写;l测试准备工作;测试准备工作;l测试操作;测试操作;l软件缺陷记录及报告;软件缺陷记录及报告;l修改充实测试用例及测修改充实测试用例及测试计划书;试计划书;l测试自动化程序的编写;测试自动化程序的

2、编写;l修改、增加测试程序;修改、增加测试程序;Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业相关知识介绍相关知识介绍测试所需的资料:测试所需的资料:l软件及测试基本情况(进度、进展情况、分工情况软件及测试基本情况(进度、进展情况、分工情况等);等);l软件目前主要存在的问题;软件目前主要存在的问题;l作为测试员,你将负责哪部分测试?作为测试员,你将负责哪部分测试?l发现缺陷后,你需要跟那个程序员沟通?发现缺陷后,你需要跟那个程序员沟通?l需要使用何种测试软件?需要使用何种测试软件?l使用何种缺陷报告单?使用何种缺陷报告单

3、?l有哪些关于软件的文件、说明、定义可供参考?有哪些关于软件的文件、说明、定义可供参考?Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业软件缺陷(软件缺陷(Bug)的定义)的定义 文档是软件的一部分,那么文档中的错误算不算文档是软件的一部分,那么文档中的错误算不算是是Bug?还有,我运行一个软件,没有产生任何故障,但还有,我运行一个软件,没有产生任何故障,但是软件实现的功能却不符合我们的要求,这算不是软件实现的功能却不符合我们的要求,这算不算是算是Bug呢?呢?比如,用户需要在打印报表时按金额进行排序,比如,用户需要在打印报

4、表时按金额进行排序,结果却是按姓名排序?结果却是按姓名排序?有的书上称软件缺陷是程序运行时出现的故障。有的书上称软件缺陷是程序运行时出现的故障。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业 软件未达到产品说明书中规定的功能。软件未达到产品说明书中规定的功能。软件出现了说明书中指明不会出现的错误。软件出现了说明书中指明不会出现的错误。什么是什么是BUG?2001年,美国年,美国Ron Pattern在在软件测试软件测试中说明,中说明,只要软件出现的问题符合下列情况之一就是只要软件出现的问题符合下列情况之一就是Bug。软件功

5、能超出了说明书制定的范围。软件功能超出了说明书制定的范围。软件未达到说明书中指定应达到的目标。软件未达到说明书中指定应达到的目标。用户认为软件难理解或不易使用的问题。用户认为软件难理解或不易使用的问题。从这个说明出发,我们可以将常见的软件从这个说明出发,我们可以将常见的软件Bug分成分成3种类型。种类型。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业缺陷报告单缺陷报告单v定义定义缺陷问题报告单是描述缺陷细节的文档,包括缺陷的编号、被测软件及其版本、优先级、严重程度、谁来修复缺陷等等v优良的缺陷报告应该具备准确、清晰、简洁、

6、完整,统一的特点,还需优良的缺陷报告应该具备准确、清晰、简洁、完整,统一的特点,还需要注意要注意给每个缺陷问题报告单分配一个唯一的标识以有利于缺陷的后续处理、查询和管理维护等活动。站在为他人服务的立场上编写缺陷问题报告单注意语句措词,不要涉及对他人的评价和自己情绪的宣泄只报告问题不要试图解决问题一个缺陷问题报告单里只报告一个缺陷Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业缺陷问题报告单示例缺陷问题报告单示例v缺陷问题报告单张三Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学

7、与技术学院软件工程专业测试用例是什么测试用例是什么v定义定义针对被测试项的测试输入,执行条件和预期结果的集合(是挑选出来的具有代表性的输入组合)挑选输入组合的方法就是测试用例设计方法测试用例设计方法测试用例是软件测试的灵魂,体现着软件测试工程师的职业价值。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业测试用例实现测试用例实现用例编号IsTriangle_ST_001优先级高测试项等边三角形判定功能执行条件1.程序可以正常运行测试过程1.运行程序isTriangle.class2.在第一条边中输入60,第二条边中输入60,第

8、三条边中输入60 3.单击“告诉我结果l”按钮 预期结果等边三角形实际执行结果v一个用自然语言实现的测试用例实例v不同的组织可能使用不同的测试用例模版Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业测试用例是什么测试用例是什么v定义定义针对被测试项的针对被测试项的测试输入,执行条件和预期结果的集合测试输入,执行条件和预期结果的集合完全的测试是不可能的完全的测试是不可能的,必须挑选出具有,必须挑选出具有代表性的有效代表性的有效的的输入组合,挑选输入组合的方法就是测试用例设计方输入组合,挑选输入组合的方法就是测试用例设计方法法测

9、试用例设计是软件测试的灵魂,体现着软件测试工程测试用例设计是软件测试的灵魂,体现着软件测试工程师的职业价值。测试用例可以用师的职业价值。测试用例可以用结构化自然语言结构化自然语言描述,描述,也可以用也可以用编程语言编程语言实现实现。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业高质量测试用例的属性高质量测试用例的属性v高质量测试用例的四个属性高质量测试用例的四个属性有效性是否能够发现缺陷或者至少可能发现缺陷仿效性衡量测试用例的代表程度,减少测试用例的数量经济性测试用例所花费的成本,包括设计、实现、调试和运行测试用例的成本

10、可维护性修改和维护测试用例的难易程度 Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业软件测试生命周期编号编号阶段阶段活动活动输出产物输出产物5.1测试计划 创建一个总体的测试计划,对软件测试活动作出整体规划。测试计划、风险评估表、测试策略 5.2测试分析 创建一个更加细致的测试计划,提炼质量需求形成测试需求(功能性)矩阵。重新修订完善的测试计划、测试需求矩阵5.3测试设计 设计完善测试用例,决定哪些用例自动化执行,哪些手工执行。测试用例、测试数据自动化测试脚本编制。测试规程/测试脚本、驱动器Testing2024/3/20

11、 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业5.4测试执行与回归测试按照测试计划要求执行测试并进行回归测试测试结果、缺陷报告、测试执行概要、测试过程改进计划(选项)5.5测试评估评估测试过程,编写测试报告测试报告,包括:测试日志、测试记录、缺陷报告和测试总结报告。软件测试生命周期Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业测试流程测试流程测试计划测试设计测试执行测试记录分析测试总结完毕缺陷跟踪针对测试目标,规定测试任务、资源分配、人员角色、进度安排等。根据测试计划,设计测试用例,

12、包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。根据测试计划,配置测试环境,并手动或者自动执行测试设计。根据测试计划,忠实地记录测试执行的过程和结果。分析测试记录,如果发现与预期结果不同,确定并重现缺陷。检查测试设计是否全部执行完毕,缺陷是否全部关闭。记录、分发、评估、关闭缺陷报告。分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业测试用例设计原则测试用例设计原则:v测试用例中的输入数据、操作应能够代表并覆盖测试用例中的输入数据、操作应能够代

13、表并覆盖各种合理及不合理各种合理及不合理、合法及非法合法及非法、边界及越界边界及越界、极限极限等情况。等情况。v一个测试用例尽量只一个测试用例尽量只对应一个测试点对应一个测试点。v测试用例的描述应清晰、易理解,保证测试步骤的唯一性、测试结果测试用例的描述应清晰、易理解,保证测试步骤的唯一性、测试结果的可判定性等。的可判定性等。v另外,我们在自动化测试时使用的另外,我们在自动化测试时使用的脚本脚本也是一种测试用例的表达形式。也是一种测试用例的表达形式。测试脚本的开发需要有一定的开发基础。测试脚本的开发需要有一定的开发基础。3.软件测试设计Testing2024/3/20 15:042024/3/

14、20 15:04山东建筑大学计算机科学与技术学院软件工程专业v回归测试:当一个周期测试执行完成后,需将测试情况与测试目标回归测试:当一个周期测试执行完成后,需将测试情况与测试目标进行比较,确定是否需第二周期的测试,即回归测试。进行比较,确定是否需第二周期的测试,即回归测试。v回归测试是针对已测试过的软件中出现的错误进行回归检查,同时回归测试是针对已测试过的软件中出现的错误进行回归检查,同时对系统新功能和特征进行测试。对系统新功能和特征进行测试。v回归测试过程中可从原设计文档中回归测试过程中可从原设计文档中选择或修改选择或修改原有测试方法和用例、原有测试方法和用例、或设计新的测试方法与用例,或设

15、计新的测试方法与用例,补充补充相应的测试数据、测试资源,建相应的测试数据、测试资源,建立相应的测试环境,确定相应的测试顺序。立相应的测试环境,确定相应的测试顺序。4.测试执行与回归测试Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业v回归测试原则。回归测试原则。1.文档功能和数据中文档功能和数据中所有改变的地方所有改变的地方都应被测试。都应被测试。2.受改变部分的或受要求的系统中的改变受改变部分的或受要求的系统中的改变影响的所有未改变的部分影响的所有未改变的部分都都应被测试。应被测试。3.所有所有其他部分应至少按样本进行测试

16、其他部分应至少按样本进行测试。4.测试执行与回归测试Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业q动态测试 静态测试和动态测试静态测试和动态测试q测试策略q静态测试所谓的静态测试(所谓的静态测试(Static Testig),是指不运行被测软件),是指不运行被测软件本身,仅通过人工分析或检查软本身,仅通过人工分析或检查软件的需求说明书、设计说明书等件的需求说明书、设计说明书等文档,源程序的文法、结构、过文档,源程序的文法、结构、过程和接口,以及软件界面等来验程和接口,以及软件界面等来验证软件正确性的测试过程。证软件正确性

17、的测试过程。代码审查代码走查桌面检查 静态分析Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业易用性测试(易用性测试(usability testing)易用性测试是指从软件使用的合理性易用性测试是指从软件使用的合理性和方便性等角度对软件系统进行检查,来和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。发现软件中不方便用户使用的地方。其实生活中有很多易用性的例子可供我其实生活中有很多易用性的例子可供我们借鉴,比如水龙头有红色和蓝色标记;们借鉴,比如水龙头有红色和蓝色标记;超市里有各种购物用的小推车等,这些都

18、超市里有各种购物用的小推车等,这些都属于方便用户的例子。属于方便用户的例子。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业界面测试(界面测试(UI testing)UI是是User Interface的缩写。界面测试的缩写。界面测试虽然没有逻辑功能测试重要,但是也不容虽然没有逻辑功能测试重要,但是也不容忽视,因为现在用户对软件的要求越来越忽视,因为现在用户对软件的要求越来越高,一个美观得体的界面无疑会在众多同高,一个美观得体的界面无疑会在众多同类软件中脱颖而出。类软件中脱颖而出。比如:微软的比如:微软的Windows操作系

19、统界面;操作系统界面;QQ的个性化皮肤等。的个性化皮肤等。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业 界面测试(界面测试(UI testing)编号编号测试内容测试内容测试结果测试结果1菜单的基本功能实现菜单的基本功能实现2快捷键和热键没有重复快捷键和热键没有重复3字体大小统一,无错别字,无中英文混合字体大小统一,无错别字,无中英文混合4菜单的层次最好不要超过菜单的层次最好不要超过3层层5菜单的排列顺序要合理,将常用的功能放在前面菜单的排列顺序要合理,将常用的功能放在前面6菜单的分组合理,要将不同的功能组用分割线隔开菜

20、单的分组合理,要将不同的功能组用分割线隔开7菜单字体一般选择菜单字体一般选择5号字号字菜单的测试用例设计如下:菜单的测试用例设计如下:Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业安装测试安装测试 q配置和安装测试安装测试包括安装和卸载。安装是用户使用软件的第一步,也是安装测试包括安装和卸载。安装是用户使用软件的第一步,也是用户对软件的第一印象。如果一个软件安装的过程中漏洞百出的用户对软件的第一印象。如果一个软件安装的过程中漏洞百出的话,会是什么后果。所以,我们要把软件的安装测试作为一个独话,会是什么后果。所以,我们要把软

21、件的安装测试作为一个独立的任务去完成,编写软件的安装,卸载测试用例。立的任务去完成,编写软件的安装,卸载测试用例。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业q性能测试瓶颈瓶颈瓶颈性能测试是对软件运行的性能指标进行测试,全面的分析系统性能,预测系统的瓶颈,并判断系统集成之后在实际使用环境下能否稳定可靠的运行。系统测试系统测试 Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业性能测试性能测试 空间性能指标在测试时一般是给出空间性能指标在测试时一般是给出C

22、PU的利用率的利用率和和内存的内存的占有率占有率。比如。比如CPU的利用率为的利用率为10%,内存占有率为,内存占有率为20%。通过以上的分析,我们了解到软件的性能分为时间性能通过以上的分析,我们了解到软件的性能分为时间性能和空间性能两种,下面我们来看一下软件性能测试的分类。和空间性能两种,下面我们来看一下软件性能测试的分类。软件性能测试分为软件性能测试分为一般性能测试、稳定性测试、负载测试一般性能测试、稳定性测试、负载测试和压力测试和压力测试。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业1.一般性能测试一般性能测试 一

23、般性能测试指的是让被测系统在正常的软硬一般性能测试指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。件环境下运行,不向其施加任何压力的性能测试。对于单机版软件,我们在其推荐配置下运行软对于单机版软件,我们在其推荐配置下运行软件,检查件,检查CPU的利用率、内存的占有率等空间性的利用率、内存的占有率等空间性能指标以及软件中主要事务的平均响应时间等时能指标以及软件中主要事务的平均响应时间等时间性能指标。间性能指标。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业2.稳定性测试稳定性测试 稳定性测试,也叫可靠

24、性测试(稳定性测试,也叫可靠性测试(reliability testing),是指在规定环是指在规定环境,规定时间内,一个系统或其功能无故障运行的可能性。境,规定时间内,一个系统或其功能无故障运行的可能性。软件可靠性指标:软件可靠性指标:1.MTBF(Mean Time Between Failure)定义:是指两次相邻失效时间间隔的平均值。定义:是指两次相邻失效时间间隔的平均值。2.MTTR(Mean Time To Repair)定义:也叫平均修复时间,是从一次故障产生到故障恢复的间隔的平定义:也叫平均修复时间,是从一次故障产生到故障恢复的间隔的平均值。均值。下面我们通过一个简单的例子来看

25、一下具体的计算方法。下面我们通过一个简单的例子来看一下具体的计算方法。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业3.负载测试负载测试负载测试和稳定性测试比较相似,都是让系统连负载测试和稳定性测试比较相似,都是让系统连续运行,区别就在于负载测试需要给系统施加刚续运行,区别就在于负载测试需要给系统施加刚好能承受的压力。好能承受的压力。负载测试(负载测试(load testing)是性能测试的一种,)是性能测试的一种,侧重于验证和评估在满足性能指标的情况下,侧重于验证和评估在满足性能指标的情况下,系统所能承受的最大负载量系统

26、所能承受的最大负载量。即让系统在其能。即让系统在其能忍受的压力的极限范围内连续运行,来测试系忍受的压力的极限范围内连续运行,来测试系统的稳定性。统的稳定性。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业-内存压力测试(压力测试(stress testing),侧重于通过确定),侧重于通过确定一个系统的瓶颈或者不能接收的性能点,来获一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别。得系统能提供的最大的服务级别。简单说,是指持续不断地给系统增加压力,简单说,是指持续不断地给系统增加压力,直到系统被压垮为止,

27、用来测试系统所能承受直到系统被压垮为止,用来测试系统所能承受的最大压力。的最大压力。4.压力测试压力测试比如,我们不断增加并比如,我们不断增加并发登录的用户数,发登录的用户数,20、30,当增加到,当增加到70个个用户并发登录时,系统用户并发登录时,系统崩溃了,我们就可以知崩溃了,我们就可以知道道163邮箱所能承载的邮箱所能承载的最大登录并发数为最大登录并发数为70个。个。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业白盒测试白盒测试逻辑覆盖法逻辑覆盖法 逻辑覆盖是以逻辑覆盖是以程序内部的逻辑结构为程序内部的逻辑结构为程序

28、内部的逻辑结构为程序内部的逻辑结构为基础基础基础基础的设计测试用例的技术,它考虑的是的设计测试用例的技术,它考虑的是用测试数据执行程序时,用测试数据执行程序时,对程序代码以及对程序代码以及结构的逻辑覆盖程度结构的逻辑覆盖程度。逻辑覆盖法通常采用逻辑覆盖法通常采用流程图流程图来设计测来设计测试用例,它考察的重点是图中的试用例,它考察的重点是图中的判定框判定框,因为这些判定通常是与选择结构或是循环因为这些判定通常是与选择结构或是循环结构有关,是决定程序结构的关键成分。结构有关,是决定程序结构的关键成分。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学

29、与技术学院软件工程专业白盒测试例题白盒测试例题1PROGRAM som(maxint,N:INT)2INT result:=0;i:=0;3IF N 04THEN N :=-N;5WHILE (i N)AND (result=maxint)6DOi :=i+1;7result :=result+i;8OD;9IF result=maxint10THEN OUTPUT(result)11ELSE OUTPUT(“too large”)12END.i:=i+1;result:=result+i;(iN)and(result=maxint)result=maxintN 0N:=-N;output(r

30、esult);output(too large);exitstartyesnonoyesyesnoN 0result=0 i=0Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业白盒测试例题白盒测试例题i:=i+1;result:=result+i;(iN)and(result=maxint)result=maxintN 0N:=-N;output(result);output(too large);exitstartyesnonoyesyesnoN 0result=0 i=0测试用例测试用例路径路径覆盖标准覆盖标准maxin

31、t=10maxint=10,N=-1N=-1maxint=0maxint=0,N=-1N=-1123456123456123457123457语句覆盖语句覆盖maxint=10maxint=10,N=3N=3maxint=-1maxint=-1,N=-1N=-113456134561235712357判定覆盖判定覆盖maxint=-1maxint=-1,N=-1N=-1maxint=1maxint=1,N=0N=0123571235713561356条件覆盖条件覆盖maxint=-1maxint=-1,N=-1N=-1maxint=1maxint=1,N=0N=0maxint=10maxint

32、=10,N=3N=31235712357135613561345613456判定条件判定条件覆盖覆盖maxint=-1maxint=-1,N=-1N=-1maxint=1maxint=1,N=0N=0maxint=1maxint=1,N=-1N=-1maxint=-1maxint=-1,N=0N=0123571235713561356134561345613571357条件组合条件组合覆盖覆盖6123457(i=result=0):maxint N iN result=maxint-1 -1 true false 1 0 false true(i=result=0):maxint N iN r

33、esult=maxint-1 -1 true false 1 0 false true 1 -1 true true-1 0 false falseTesting2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业路径覆盖路径覆盖路径覆盖(路径覆盖(Path Coverage)的含义是设)的含义是设计足够的测试用例,要求计足够的测试用例,要求覆盖程序中所有覆盖程序中所有可能的路径可能的路径。我们可以通过我们可以通过基本路径法基本路径法获得程序的基本获得程序的基本路径,基本路径法是在路径,基本路径法是在程序控制流图程序控制流图的基的基础上,通过

34、分析控制构造的环路复杂性,础上,通过分析控制构造的环路复杂性,导出基本可执行路径的集合,从而设计测导出基本可执行路径的集合,从而设计测试用例的方法试用例的方法。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业基本路径法基本路径法-程序环路复杂性程序环路复杂性 程序的环路复杂性是一种为程序逻辑复杂性提供定量程序的环路复杂性是一种为程序逻辑复杂性提供定量测度的软件度量,通过对程序控制流图的分析和判断来测度的软件度量,通过对程序控制流图的分析和判断来计算模块的复杂性,从程序的计算模块的复杂性,从程序的环路复杂性可导出程序基环路复杂

35、性可导出程序基本路径集合中的独立路径条数本路径集合中的独立路径条数。独立路径是指包括一组以前没有处理的语句或条件的独立路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图上看,一条路径。从控制流图上看,一条独立路径是至少包含一条独立路径是至少包含有一条在其他独立路径中从未有过的边的路径有一条在其他独立路径中从未有过的边的路径。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业基本路径法基本路径法-程序环路复杂性程序环路复杂性环路复杂性的计算方法有三种:环路复杂性的计算方法有三种:程序的环形复杂度计算公式为:程序的环形

36、复杂度计算公式为:V(G)=m-n+2,其中,其中,m是程序流图是程序流图G中边的数量,中边的数量,n是结点的数量。是结点的数量。如果如果P是流图中判定结点的个数:是流图中判定结点的个数:V(G)=P+1。源代。源代码码IF语句及语句及While、For或或Repeat循环语句的判定结点数循环语句的判定结点数为为1,而,而Case型等多分支语句的判定结点数等于可能的分型等多分支语句的判定结点数等于可能的分支数减去支数减去1。环路复杂度等于环路复杂度等于控制流图的区域数控制流图的区域数。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件

37、工程专业基本路径法基本路径法-设计步骤设计步骤基本路径测试法设计测试用例的步骤如下:基本路径测试法设计测试用例的步骤如下:l以详细设计或源代码作为基础,以详细设计或源代码作为基础,导出程序的导出程序的控制流图控制流图。l计算得到控制流图计算得到控制流图G的的环路复杂性环路复杂性V(G)。)。l确定线性独立路径确定线性独立路径的基本集合。的基本集合。l生成测试用例生成测试用例,确保基本路径集中的每条路,确保基本路径集中的每条路径执行。径执行。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业第一步:画出程序的控制流图第一步:画出

38、程序的控制流图81-85ab+c9210290FFFba+cTca+bT88T100Fa=bTb=cTa!=bF94TF98Fa!=cTFb!=cTF96TTesting2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业第二步:计算环路复杂性,第二步:计算环路复杂性,得到独立路径条数。得到独立路径条数。81-85ab+c9210290FFFba+cTca+bT88T100Fa=bTb=cTa!=bF94TF98Fa!=cTFb!=cTF96TV(G)mn210Testing2024/3/20 15:042024/3/20 15:04山东建筑

39、大学计算机科学与技术学院软件工程专业第三步:确定独立路径。第三步:确定独立路径。81-85ab+c9210290FFFba+cTca+bT88T100Fa=bTb=cTa!=bF94TF98Fa!=cTFb!=cTF96T81234567路径路径1:81-85-1-90-92-100-102路径路径2:81-85-1-2-90-92-100-102路径路径3:81-85-1-2-3-90-92-100-102路径路径4:81-85-1-2-3-88-92-4-5-94-102路径路径5:81-85-1-2-3-88-92-4-6-98-102路径路径5:81-85-1-2-3-88-92-4-

40、6-7-98-102路径路径6:81-85-1-2-3-88-92-4-5-6-98-102路径路径7:81-85-1-2-3-88-92-4-6-7-8-98-102路径路径8:81-85-1-2-3-88-92-4-6-7-8-96-102总结:计算得到的路径数只是总结:计算得到的路径数只是独立路径的上界,可能存在一独立路径的上界,可能存在一些路径不可达。些路径不可达。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业第四步:生成测试用例。第四步:生成测试用例。81-85ab+c9210290FFFba+cTca+bT88

41、T100Fa=bTb=cTa!=bF94TF98Fa!=cTFb!=cTF96T路径路径1:81-85-1-90-92-100-102路径路径2:81-85-1-2-90-92-100-102路径路径3:81-85-1-2-3-90-92-100-102路径路径4:81-85-1-2-3-88-92-4-5-94-102路径路径5:81-85-1-2-3-88-92-4-6-7-98-102路径路径6:81-85-1-2-3-88-92-4-5-6-98-102路径路径7:81-85-1-2-3-88-92-4-6-7-8-98-102路径路径8:81-85-1-2-3-88-92-4-6-7

42、-8-96-102(2,1,1)81234567(1,2,1)(1,1,2)(1,1,1)(2,1,2)(2,2,1)(1,2,2)(3,4,5)Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业1 程序插装程序插装 简单的说,程序插装方法是借助向被测程序中插简单的说,程序插装方法是借助向被测程序中插入操作来实现测试目的的方法。入操作来实现测试目的的方法。在调试程序时,常常要在程序中插入一些打印在调试程序时,常常要在程序中插入一些打印语句。其目的在于,希望执行程序时,打印出我们语句。其目的在于,希望执行程序时,打印出我们最为关

43、心的信息。通过这些信息进一步了解执行过最为关心的信息。通过这些信息进一步了解执行过程中程序的一些动态特性。例如,程序的实际执行程中程序的一些动态特性。例如,程序的实际执行路径、特定变量在特定时刻的取值等。路径、特定变量在特定时刻的取值等。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业1程序插装程序插装可能的程序插装应用包括:可能的程序插装应用包括:l测试覆盖率和测试用例有效性度量测试覆盖率和测试用例有效性度量l断言检测断言检测Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与

44、技术学院软件工程专业用于覆盖率度量的程序插装用于覆盖率度量的程序插装 可能的测试覆盖率度量包括,但不限于下面三种类型:可能的测试覆盖率度量包括,但不限于下面三种类型:l程序中每个语句至少被执行一次:程序中每个语句至少被执行一次:l在流程图中的每个分支至少被经过一次;在流程图中的每个分支至少被经过一次;l每个可能被执行的路径至少被经过一次;每个可能被执行的路径至少被经过一次;那么,怎样才能做到呢?可以通过一下途径:那么,怎样才能做到呢?可以通过一下途径:l在控制流中确定一个点集。这样,如果我们知道每个点在执行在控制流中确定一个点集。这样,如果我们知道每个点在执行期间被经过的次数,就可以确定每个语

45、句或者每个分支被执行期间被经过的次数,就可以确定每个语句或者每个分支被执行的次数了;的次数了;l在程序中的这些点上插入软件计数器;在程序中的这些点上插入软件计数器;l用一组测试用例测试这个程序;用一组测试用例测试这个程序;l检查计数器的值以确定获得的覆盖率的范围。检查计数器的值以确定获得的覆盖率的范围。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业用于测试用例有效性度量的程序插装用于测试用例有效性度量的程序插装 一个测试用例的有效性,是指该用例揭示程序错误一个测试用例的有效性,是指该用例揭示程序错误的能力。的能力。如果一个

46、测试用例有时会导致程序产生正确的结如果一个测试用例有时会导致程序产生正确的结果,甚至在程序错误的情况下也是如此,那么该用例果,甚至在程序错误的情况下也是如此,那么该用例是无效的。是无效的。一个程序为什么会产生偶然正确的结果呢?其中一一个程序为什么会产生偶然正确的结果呢?其中一个原因就是因为它包含类似个原因就是因为它包含类似exp1 op exp2格式的表格式的表达式。达式。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业用于断言检测的程序插装用于断言检测的程序插装 在程序的特定部位插入某些用以判断变量特性的语句,在程序的特定

47、部位插入某些用以判断变量特性的语句,使这些语句在程序执行中得以证实,我们把插入的语句使这些语句在程序执行中得以证实,我们把插入的语句称为断言(称为断言(Assertion)。)。断言是程序插装的一个典型使用。通过使用断言检查,断言是程序插装的一个典型使用。通过使用断言检查,可以发现程序中潜在的错误。可以发现程序中潜在的错误。如果使用断言,就要求必须在正确位置放置正确的断如果使用断言,就要求必须在正确位置放置正确的断言,这不是一件容易的事。言,这不是一件容易的事。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业2 2 故障插入

48、故障插入 故障插入是一个统计的方法,用于评价遗留在故障插入是一个统计的方法,用于评价遗留在一个程序中的故障数量。一个程序中的故障数量。首先,故障被插入到一个程序中,然后,程序首先,故障被插入到一个程序中,然后,程序被测试,发现故障的数量可用来估计还没有被发被测试,发现故障的数量可用来估计还没有被发现故障的数量。计算公式如下现故障的数量。计算公式如下:原本错误总数原本错误总数=(插入错误总数(插入错误总数/发现插入错误数)发现插入错误数)发现的原本错误数发现的原本错误数 残留错误数残留错误数=原本错误总数原本错误总数-发现的原本错误数发现的原本错误数Testing2024/3/20 15:042

49、024/3/20 15:04山东建筑大学计算机科学与技术学院软件工程专业2 2 故障插入故障插入 故障插入也故障插入也可用于验证测试用例的有效可用于验证测试用例的有效性性。其原理就是为了检查设计的测试用例。其原理就是为了检查设计的测试用例是否能发现某类型的故障,人为地在被测是否能发现某类型的故障,人为地在被测系统中引入该类型的故障,如果在测试过系统中引入该类型的故障,如果在测试过程中能发现这个故障,则应该也可以测试程中能发现这个故障,则应该也可以测试出系统原来就存在的该类故障。出系统原来就存在的该类故障。Testing2024/3/20 15:042024/3/20 15:04山东建筑大学计算

50、机科学与技术学院软件工程专业3 3 程序变异程序变异 程序变异测试是一种错误驱动测试程序变异测试是一种错误驱动测试。该方法是。该方法是针对某类针对某类特定程序错误特定程序错误的,即专门测试某类错误是否存在。的,即专门测试某类错误是否存在。程序变异测试的基本原理是,在程序的语句中作某些程序变异测试的基本原理是,在程序的语句中作某些变更,例如将关系运算符变更,例如将关系运算符“”用用“”替换,使得成为替换,使得成为一个新的程序,每个新程序称为原来程序的变异体,然后一个新的程序,每个新程序称为原来程序的变异体,然后根据已有的测试数据,运行变异体,比较变异体和原程序根据已有的测试数据,运行变异体,比较

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

当前位置:首页 > 教学课件 > 中学教案课件 > 初中(七年级)课件教案

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922