软件质量保证与测试综述

上传人:hs****ma 文档编号:589103128 上传时间:2024-09-09 格式:PPT 页数:44 大小:4.05MB
返回 下载 相关 举报
软件质量保证与测试综述_第1页
第1页 / 共44页
软件质量保证与测试综述_第2页
第2页 / 共44页
软件质量保证与测试综述_第3页
第3页 / 共44页
软件质量保证与测试综述_第4页
第4页 / 共44页
软件质量保证与测试综述_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《软件质量保证与测试综述》由会员分享,可在线阅读,更多相关《软件质量保证与测试综述(44页珍藏版)》请在金锄头文库上搜索。

1、软件件质量保量保证与与测试郭俊恩计算机与信息工程系2024年9月9日第1页2目录一、相关知识及意义二、软件质量保证管理三、软件测试四、软件质量保证与测试人才的特点3一、相关知识及意义 1、软件开发过程42、硬件、软件失效曲线图、硬件、软件失效曲线图 53、软件质量要求包括、软件质量要求包括6个主要特征个主要特征l功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度,l可靠性:软件在指定条件和特定时间段内维持性能的能力程度,l易使用性:用户使用该软件所付出的学习精力,l效率:在指定条件下,软件功能与所占用资源之间的比值,l可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修

2、改的容易程度,l可移植性:将软件从一种环境移入另一种环境的容易程度。64软件缺陷的修复费用软件缺陷的修复费用75意义意义l迪斯尼狮子王缺陷l人造陨石坑缺陷l程序员的千年虫问题l爱国者导弹缺陷8二、二、软件质量保证与管理软件质量保证与管理p1、软件质量控制的基本方法、软件质量控制的基本方法p软件质量控制是一组由开发组织使用的程序和方软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条法,使用它可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高将不断地改善开发过

3、程和开发组织本身,以提高将来生产高质量软件产品的能力。来生产高质量软件产品的能力。1.1目标问题度量法目标问题度量法l对一个项目的各个方面(产品、过程和资源)规定具体的目标,这些目标的表达应非常明确。l对每一个目标,要引出一系列能反映出这个目标是否达到要求的问题,并要求对这些问题进行回答。这些问题的答案将有助于使目标定量化。l将回答这些问题的答案映射到对软件质量等级的度量上,根据这种度量得出软件目标是否达到的结论,或确认哪些做好了,哪些仍需改善。l收集数据。要为收集和分析数据做出计划。1.2风险管理法风险管理法 l根据经验识别项目要素的有关风险;l评估风险发生的概率和发生的代价;l按发生概率和

4、代价划分风险等级并排序;l在项目限定条件下选择控制风险的技术并制定计划;l执行计划并监视进程;l持续评估风险状态并采取正确的措施。1.3 PDCA法(戴明循环)法(戴明循环)确定质量目标提高质量开发质量评估质量质量控制参数产品、过程、资源定义改善估计度量计划Plan改进Action实施Do检查Check2 软件配置管理软件配置管理p软件配置管理是在贯穿整个软件生命周期软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。它的基中建立和维护项目产品的完整性。它的基本目标包括:本目标包括:l软件配置管理的各项工作是有计划进行的。l被选择的项目产品得到识别,控制并且可以被相关人员获取。l

5、已识别出的项目产品的更改得到控制。l使相关组别和个人及时了解软件基准的状态和内容。常用的软件配置管理工具常用的软件配置管理工具pVisualSVN ServerpTortoiseSVN3 软件评审的内容软件评审的内容3.1 管理评审l一个组织之所以需要管理,是为了能更好的进步和发展。为了达到这个目的,通常需要对原来的发展状况进行回顾,分析并总结出存在的问题和改进的措施。这也就是为什么进行管理评审的原因。l管理评审就是最高管理者为评价管理体系的适宜性、充分性和有效性所进行的活动。管理评审的主要内容是组织的最高管理者就管理体系的现状、适宜性、充分性和有效性以及方针和目标的贯彻落实及实现情况进行正式

6、的评价,其目的就是通过这种评价活动来总结管理体系的业绩,并从当前业绩上考虑找出与预期目标的差距,同时还应考虑任何可能改进的机会,并在研究分析的基础上,对组织在市场中所处地位及竞争对手的业绩予以评价,从而找出自身的改进方向。3.2 技术评审技术评审 p技术评审的目的技术评审的目的l发现软件在功能、逻辑、实现上的错误;l验证软件符合它的需求规格;l确认软件符合预先定义的开发规范和标准;l保证软件在统一的模式下进行开发;l便于项目管理。p技术评审的输入技术评审的输入l评审的目的是说明为什么要进行该评审,该评审的实施目的是什么;l评审的内容包括需求文档、源代码、测试用例等;l评审检查单(检查项);l其

7、他必须的文档,如对设计文档进行评审,那么需求文档可以作为相关文档带入技术评审会。p技术评审的输出技术评审的输出技术评审报告技术评审报告l会议的基本信息;l存在的问题和建议措施;l评审结论和意见;l问题跟踪表;l技术评审问答记录(通常作为附录出现在报告中)。3.3 文档评审文档评审p文档评审的目的文档评审的目的p文档评审的内容文档评审的内容l在软件开发过程中,需要进行评审的文档很多,主要包括如下内容:需求评审,对市场需求说明书、产品需求说明书、功能说明书等进行评审。设计评审,对总体设计说明书、详细设计说明书等进行评审。代码评审,对代码进行审核。质量验证评审,对测试计划、测试用例等进行评审。3.4

8、 过程评审过程评审 p过程评审的作用如下:过程评审的作用如下:l评估主要的质量保证流程。l考虑如何处理和解决评审过程中发现的不符合问题。l总结和共享好的经验。l指出需要进一步完善和改进的部分。过程评审流程过程评审流程 193.5 代码审查代码审查p代码审查的主要工作代码审查的主要工作l代码审查的主要工作:发现代码中的bug;从代码的易维护性、可扩展性角度考察代码的质量,提出修改建议。l代码编写者,代码审核者共同对代码的质量承担责任。这样才能保证Code Review不是走过场,其中代码编写者承担主要责任,代码审核者承担次要责任。20三、三、软件测试方法软件测试方法p1. 黑盒测试黑盒测试p2.

9、 白盒测试白盒测试p3. 灰盒测试灰盒测试p4. 集成测试集成测试p5. 系统测试系统测试p6. 压力测试压力测试211黑盒测试的基本概念黑盒测试的基本概念 p黑盒测试试图发现以下类型的错误:黑盒测试试图发现以下类型的错误:l功能错误或遗漏;l界面错误;l数据结构或外部数据库访问错误;l性能错误;l初始化和终止错误。221.1 等价类划分等价类划分p等价类划分法是一种黒盒测试的技术,不考虑程序的内等价类划分法是一种黒盒测试的技术,不考虑程序的内部结构,是把所有可能的输入数据,即程序的输入域划部结构,是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数分成若干

10、部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。具有代表性的数据作为测试用例。231.2.1划分等价类划分等价类p等价类划分可有两种不同的情况等价类划分可有两种不同的情况:有效等价有效等价类和无效等价类。类和无效等价类。l有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。l利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。l无效等价类:与有效等价类的定义恰巧相反,不符合需求规格说明书。241.2.2等价类表示例等价类表示例 输入条件输入条件有效等价类有效等价类无效等价类无效等价类输入条件输入条件有效等价类有效等价类无效等价类无效等价

11、类1001.无效等价类2.有效等价类3.无效等价类251.2.3设计测试用例设计测试用例 p先根据输入条件确定有效等先根据输入条件确定有效等价类和无效等价类,然后从价类和无效等价类,然后从划分出的等价类中按以下三划分出的等价类中按以下三个原则设计测试用例。个原则设计测试用例。l每一个等价类规定一个唯一的编号。l设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。直到所有的有效等价类都被覆盖为止。l设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。用例用例编号编号所属等所属等价类价类乘乘数数1 1乘乘数数2 2乘积乘

12、积123206021-102提示“请输入1100之间的整数”332003提示“请输入1100之间的整数”26三角形(等价类划分)三角形(等价类划分) 输入条件输入条件有效等价类有效等价类无效等价类无效等价类是否三角形的3条边(A0), (1)(B0), (2)(C0), (3)(A+BC), (4)(B+CA), (5)(A+CB) (6)(A0), (7)(B0), (8)(C0), (9)(A+BC), (10)(B+CA), (11)(A+CB) (12)是否等腰三角形(A=B), (13)(B=C), (14)(C=A), (15)(AB)and(BC)and(CA),(16)是否等边

13、三角形(A=B)and(B=C)and(C=A),(17)(AB), (18)(BC), (19)(CA), (20)27三角形测试用例(等价类划分)三角形测试用例(等价类划分) 用例编号用例编号【A A,B B,C C】覆盖等价类覆盖等价类输出输出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能构成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4

14、),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等边三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等边三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)281.3 边界值分析法边界值分析法p1.3.1 边界条件边界

15、条件l我们可以想象一下,如果在悬崖峭壁边可以自信地安全行走,平地就不在话下了。如果软件在能力达到极限时能够运行,那么在正常情况下一般也就不会有什么问题。l边界条件是特殊情况,因为编程从根本上说不怀疑边界有问题。奇怪的是,程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。291.3.2其他一些边界条件其他一些边界条件p另一种看起来很明显的软件缺陷来源是当软件要求输入时另一种看起来很明显的软件缺陷来源是当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,只按了本没有输入任何内容,只按了Enter键。键。l

16、这种情况在产品说明书中常常被忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员总会习惯性地认为用户要么输入信息,不管是看起来合法的或非法的信息,要么就会选择Cancel键放弃输入,如果没有对空值进行好的处理的话,恐怕程序员自己都不知道程序会引向何方。p正确的软件通常应该将输入内容默认为合法边界内的最小正确的软件通常应该将输入内容默认为合法边界内的最小值,或者合法区间内的某个合理值,否则,返回错误提示值,或者合法区间内的某个合理值,否则,返回错误提示信息。信息。l因为这些值通常在软件中进行特殊处理,所以不要把它们与合法情况和非法情况混在一起,而要建立单独的等价区间。301.3.3边界

17、值的选择方法边界值的选择方法p对边界值设计测试用例,应遵循以下几条原则:对边界值设计测试用例,应遵循以下几条原则:l如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。l如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。l根据规格说明的每个输出条件,使用前面的原则。l根据规格说明的每个输出条件,应用前面的原则。l如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。l如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试

18、用例。l分析规格说明,找出其他可能的边界条件。312 白盒测试的概述白盒测试的概述p软件人员使用白盒测试方法,主要想对程软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:序模块进行如下的检查:l对程序模块的所有独立的执行路径至少测试一次;l对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;l在循环的边界和运行界限内执行循环体;l测试内部数据结构的有效性等。322.2 白盒测试的实施步骤:白盒测试的实施步骤:p测试计划阶段:根据需求说明书,制定测试进度。测试计划阶段:根据需求说明书,制定测试进度。p测试设计阶段:依据程序设计说明书,按照一定测试设计阶段:依据程序设计说明书,按

19、照一定规范化的方法进行软件结构划分和设计测试用例。规范化的方法进行软件结构划分和设计测试用例。p测试执行阶段:输入测试用例,得到测试结果。测试执行阶段:输入测试用例,得到测试结果。p测试总结阶段:对比测试的结果和代码的预期结测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。果,分析错误原因,找到并解决错误。332.3 控制流测试控制流测试342.4 算法流程算法流程 352.5 语句覆盖语句覆盖p语句覆盖的含义是:在测试时首先设计若干个测试用例,语句覆盖的含义是:在测试时首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行然后运行被测程序,使程序

20、中的每个可执行语句至少执行一次。这里所谓一次。这里所谓“若干个若干个”,自然是越少越好。,自然是越少越好。p让我们总结一下语句覆盖的优点和缺点。让我们总结一下语句覆盖的优点和缺点。l优点:很直观地从代码中得到测试用例,无需细分每条判定表达式。l缺点:对于隐藏的条件和可能到达的隐式分支是无法测试的。它只在乎运行一次,而不考虑其他情况362.6 判定覆盖判定覆盖p按判定覆盖准则进行测试是指:按判定覆盖准则进行测试是指:l设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。p下面总结一下分支覆盖测试的优点和缺点。下面总结一下分支覆盖测试的优点

21、和缺点。l优点:分支覆盖是比语句覆盖更强的测试能力,比语句覆盖要多几乎一倍的测试路径。它无需细分每个判定就可以得到测试用例。l缺点:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其最终结果,而忽略每个条件的取值必然会遗漏部分的测试路径。372.7 条件覆盖条件覆盖变量变量表达式表达式的值的值类别类别a=2取真值记为T3a=2取假值记为t3X1取真值记为T4X1取假值记为t4测试测试用例用例a ab bx x路径路径覆盖覆盖条件条件CASE6203SABCDET1T2T3T4CASE7101SACEt1T2t3T4CASE8211SACDET1t2T3t4变量变量表达式表达式的值的值类

22、别类别a1取真值记为T1a1取假值记为t1b=0取真值记为T2b=0取假值记为t2测试测试用例用例a ab bx x路径路径覆盖条件覆盖条件CASE8211SACDET1t2T3t4CASE9103SACDEt1T2t3T438判定判定-条件覆盖测试条件覆盖测试 赋值赋值类别类别a1,b=0记为T1,T2a1,b!=0记为T1,t2a=1,b=0记为t1,T2a1记为T3,T4a=2,x1记为t3,T4a!=2,x=1记为t3,t439测试用例测试用例a ab bx x覆盖组合覆盖组合路径路径覆盖覆盖条件条件CASE1203SABCDET1T2T3T4CASE8211SACDET1t2T3t4

23、CASE9103SACDEt1T2t3T4CASE10111SACEt1t2t3t4402.8 路径覆盖路径覆盖p按路径覆盖要求进行测试是指,设计足够多的测按路径覆盖要求进行测试是指,设计足够多的测试用例要求覆盖程序中所有可能的路径。试用例要求覆盖程序中所有可能的路径。p下面总结一下路径覆盖测试的优点和缺点。下面总结一下路径覆盖测试的优点和缺点。l优点:路径覆盖是经常要用到的测试覆盖方法,它比普通的判定覆盖准则和条件覆盖准则覆盖率都要高。l缺点:路径覆盖不一定能保证条件的所有组合都覆盖。a=1,b=0这个就没有被测试到。:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等

24、),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。41四、软件质量保证与测试人才的特点四、软件质量保证与测试人才的特点p现现代代软软件件研研发发对对软软件件人才的需求人才的需求传统软件人才的特件人才的特点点创新新软件人才的特点件人才的特点敢冒风险敢冒风险有雄心壮志有雄心壮志能学习,适应新环境能学习,适应新环境实事求是的作风创新精神有克服困难的毅力如果对问题有兴趣,则有热情、有主动性扎实的理论基础,尤其是数学独立从事研究的能力很强的编程能力题目想的远、做的深将纪律、将服从对什么事都有主见对许多事情都没有主见,即使有想法也不敢说直截了当地沟通甚至批评和争论42现代软件研发对软件人才提出

25、的要求现代软件研发对软件人才提出的要求 p专业基础和创新能力专业基础和创新能力p具备主人翁精神具备主人翁精神p良好的团队精神良好的团队精神p从错误中学习的能力从错误中学习的能力43优秀的软件测试员应具备的素质优秀的软件测试员应具备的素质p软件测试员是探索者:软件测试员是探索者: l软件测试员不会害怕进入陌生环境,他们喜欢拿到新的软件,安装在自己的机器上并观看结果。p软件测试员是故障排除员:软件测试员是故障排除员:l软件测试员善于发现问题的症结,他们喜欢解谜。p软件测试员不放过蛛丝马迹:软件测试员不放过蛛丝马迹:l软件测试员总在不停地尝试。他们可能会碰到转瞬即逝或者难以证实的软件缺陷,当然,他们

26、不会当作视偶然而轻易放过,而会想尽一切可能去发现它们。p软件测试员具有创造性:软件测试员具有创造性:l这是对测试是显而易见的。软件测试员的工作是要想出富有创意审视超常的手段来寻找缺陷。p软件测试员是追求完美者:软件测试员是追求完美者:l软件测试员力求完美,但是当知道某些无法企及时,他们不去苛求,而是尽力接近目标。p软件测试员判断准确:软件测试员判断准确:l软件测试员要判断测试内容、测试时间、以及看到的问题是否是真正的缺陷。p软件测试员注重策略和外交:软件测试员注重策略和外交:l软件测试员常常带来的坏消息。他们必须告诉程序员,你的程序很糟糕。好的软件测试员知道以怎样的策略来沟通这些问题,他们也能够和有时不够冷静的程序员合作。p软件测试员善于说服:软件测试员善于说服:l软件测试员找出的缺陷有时会被认为不重要且不用修复。这时测试员要善于清晰地表达自己的观点,说明软件缺陷为何需要修复,并且推进缺陷的修复。谢谢!谢谢!44

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

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