软件质量保证与测试综述

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件质量保证与测试郭俊恩计算机与信息工程系2020年2月12日第1页2目录一、相关知识及意义二、软件质量保证管理三、软件测试四、软件质量保证与测试人才的特点3一、相关知识及意义1、软件开发过程42、硬件、软件失效曲线图时间失效率初期失败率磨损时间失效率变更由于(变更的)副作用而导致失效率提高理想曲线实际曲线53、软件质量要求包括6个主要特征功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度,可靠性:软件在指定条件和特定时间段内维持性能的能力程度,易使用性:用户使用该软件所付出的学习精力,效率:在指定条件下,软件功能与所占用资源之间的比值,可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度,可移植性:将软件从一种环境移入另一种环境的容易程度。64软件缺陷的修复费用说明书设计编码测试发布$1$10$100$1000+缺陷发现的时间修复缺陷的费用75意义迪斯尼狮子王缺陷人造陨石坑缺陷程序员的千年虫问题爱国者导弹缺陷8二、软件质量保证与管理1、软件质量控制的基本方法软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高将来生产高质量软件产品的能力。1.1目标问题度量法对一个项目的各个方面(产品、过程和资源)规定具体的目标,这些目标的表达应非常明确。对每一个目标,要引出一系列能反映出这个目标是否达到要求的问题,并要求对这些问题进行回答。这些问题的答案将有助于使目标定量化。将回答这些问题的答案映射到对软件质量等级的度量上,根据这种度量得出软件目标是否达到的结论,或确认哪些做好了,哪些仍需改善。收集数据。要为收集和分析数据做出计划。1.2风险管理法根据经验识别项目要素的有关风险;评估风险发生的概率和发生的代价;按发生概率和代价划分风险等级并排序;在项目限定条件下选择控制风险的技术并制定计划;执行计划并监视进程;持续评估风险状态并采取正确的措施。1.3PDCA法(戴明循环)确定质量目标提高质量开发质量评估质量质量控制参数产品、过程、资源定义改善估计度量计划Plan改进Action实施Do检查Check2软件配置管理软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。它的基本目标包括:软件配置管理的各项工作是有计划进行的。被选择的项目产品得到识别,控制并且可以被相关人员获取。已识别出的项目产品的更改得到控制。使相关组别和个人及时了解软件基准的状态和内容。常用的软件配置管理工具VisualSVNServerTortoiseSVN3软件评审的内容3.1管理评审一个组织之所以需要管理,是为了能更好的进步和发展。为了达到这个目的,通常需要对原来的发展状况进行回顾,分析并总结出存在的问题和改进的措施。这也就是为什么进行管理评审的原因。管理评审就是最高管理者为评价管理体系的适宜性、充分性和有效性所进行的活动。管理评审的主要内容是组织的最高管理者就管理体系的现状、适宜性、充分性和有效性以及方针和目标的贯彻落实及实现情况进行正式的评价,其目的就是通过这种评价活动来总结管理体系的业绩,并从当前业绩上考虑找出与预期目标的差距,同时还应考虑任何可能改进的机会,并在研究分析的基础上,对组织在市场中所处地位及竞争对手的业绩予以评价,从而找出自身的改进方向。3.2技术评审技术评审的目的发现软件在功能、逻辑、实现上的错误;验证软件符合它的需求规格;确认软件符合预先定义的开发规范和标准;保证软件在统一的模式下进行开发;便于项目管理。技术评审的输入评审的目的是说明为什么要进行该评审,该评审的实施目的是什么;评审的内容包括需求文档、源代码、测试用例等;评审检查单(检查项);其他必须的文档,如对设计文档进行评审,那么需求文档可以作为相关文档带入技术评审会。技术评审的输出——技术评审报告会议的基本信息;存在的问题和建议措施;评审结论和意见;问题跟踪表;技术评审问答记录(通常作为附录出现在报告中)。3.3文档评审文档评审的目的文档评审的内容在软件开发过程中,需要进行评审的文档很多,主要包括如下内容:需求评审,对《市场需求说明书》、《产品需求说明书》、《功能说明书》等进行评审。设计评审,对《总体设计说明书》、《详细设计说明书》等进行评审。代码评审,对代码进行审核。质量验证评审,对《测试计划》、《测试用例》等进行评审。3.4过程评审过程评审的作用如下:评估主要的质量保证流程。考虑如何处理和解决评审过程中发现的不符合问题。总结和共享好的经验。指出需要进一步完善和改进的部分。过程评审流程建立评审小组确定评审范围提出评审报告初稿对报告进行反馈提交正式的报告确认和签署报告将报告发送给评审范围外的组织以供参考对报告中的问题进行追踪193.5代码审查代码审查的主要工作代码审查的主要工作:发现代码中的bug;从代码的易维护性、可扩展性角度考察代码的质量,提出修改建议。代码编写者,代码审核者共同对代码的质量承担责任。这样才能保证CodeReview不是走过场,其中代码编写者承担主要责任,代码审核者承担次要责任。20三、软件测试方法1.黑盒测试2.白盒测试3.灰盒测试4.集成测试5.系统测试6.压力测试软件软件输出输出输入输入黑盒测试白盒测试211黑盒测试的基本概念黑盒测试试图发现以下类型的错误:功能错误或遗漏;界面错误;数据结构或外部数据库访问错误;性能错误;初始化和终止错误。221.1等价类划分等价类划分法是一种黒盒测试的技术,不考虑程序的内部结构,是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。231.2.1划分等价类等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。无效等价类:与有效等价类的定义恰巧相反,不符合需求规格说明书。241.2.2等价类表示例输入条件有效等价类无效等价类输入条件有效等价类无效等价类………………11~1001001.无效等价类2.有效等价类3.无效等价类251.2.3设计测试用例先根据输入条件确定有效等价类和无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例。每一个等价类规定一个唯一的编号。设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。直到所有的有效等价类都被覆盖为止。设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。用例编号所属等价类乘数1乘数2乘积123206021-102提示“请输入1~100之间的整数”332003提示“请输入1~100之间的整数”26三角形(等价类划分)输入条件有效等价类无效等价类是否三角形的3条边(A0),(1)(B0),(2)(C0),(3)(A+BC),(4)(B+CA),(5)(A+CB)(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B)(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A),(16)是否等边三角形(A=B)and(B=C)and(C=A),(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)27三角形测试用例(等价类划分)用例编号【A,B,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),(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边界值分析法1.3.1边界条件我们可以想象一下,如果在悬崖峭壁边可以自信地安全行走,平地就不在话下了。如果软件在能力达到极限时能够运行,那么在正常情况下一般也就不会有什么问题。边界条件是特殊情况,因为编程从根本上说不怀疑边界有问题。奇怪的是,程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。291.3.2其他一些边界条件另一种看起来很明显的软件缺陷来源是当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,只按了Enter键。这种情况在产品说明书中常常被忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员总会习惯性地认为用户要么输入信息,不管是看起来合法的或非法的信息,要么就会选择Cancel键放弃输入,如果没有对空值进行好的处理的话,恐怕程序员自己都不知道程序会引向何方。正确的软件通常应该将输入内容默认为合法边界内的最小值,或者合法区间内的某个合理值,否则,返回错误提示信息。因为这些值通常在软件中进行特殊处理,所以不要把它们与合法情况和非法情况混在一起,而要建立单独的等价区间。301.3.3边界值的选择方法对边界值设计测试用例,应遵循以下几条原则:如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。根据规格说明的每个输出条件,使用前面的原则①。根据规格说明的每个输出条件,应用前面的原则②。如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。分析规格说明,找出其他可能的边界条件。312白盒测试的概述软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等。322.2白盒测试的实施步骤:测试计划阶段:根据需求说明书,制定测试进度。测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。测试执行阶段:输入测试用例,得到测试结果。测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。332.3控制流测试342.4算法流程x=x/a返回开始(a1)&&(b==0)(a==2)||(x1)x=x+1STTFFABCDE352.5语句覆盖语句覆盖的含义是:在测试时首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。这里所谓“若干个”,自然是越少越好。让我们总结一下语句覆盖的优点和缺点。优点:很直观地从代码中得到测试用例,无需细分每条判定表达式。缺点:对于隐藏的条件和可能到达的隐式分支是无法测试的。它只在乎运行一次,而不考虑其他情况362.6

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功