




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试基础知识及研发全过程软件测试基础知识及研发全过程第1页1.1 软件测试基本概念1.2 软件测试依据与人员组织1.3 软件测试生命周期与模型1.4 软件测试计划及其相关文档第一章 软件测试导论软件测试基础知识及研发全过程第2页1.1.1 软件测试定义1.1.2 软件测试必要性1.1.3 软件缺点1.1.4 软件测试标准1.1.5 软件测试误区1.1.6 软件测试与软件质量确保关系1.1.7 软件测试技术发展1.1 软件测试基本概念软件测试基础知识及研发全过程第3页 软件质量是软件生命。为了确保软件质量,人们在长久软件开发过程中积累了许多经验,形成了许多有效方法(技术和管理)。不过借助这些
2、方法,只能降低软件中错误和不足,但不能完全防止错误。 1.1 软件测试基本概念软件测试基础知识及研发全过程第4页 1. 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码最终复审,是软件质量确保关键步骤。对软件测试定义很多,但普通可描述以下: 软件测试是依据软件开发各阶段规格说明和程序内部结构而精心设计一组测试用例,利用测试用例去运行程序,以发觉程序错误过程。简言之,软件测试是为了发觉错误而执行程序过程。1.1.1 软件测试定义软件测试基础知识及研发全过程第5页 当前,依据侧重点不一样,主要有以下三种观点: 1983年IEEE将软件测试定义为:“使用人工或自动伎俩
3、运行或测定某个系统过程,其目标在于检验它是否满足要求需求或是搞清预期结果与实际结果之间差异”。明确地提出了软件测试是以检验软件是否满足需求为目标。 Myers认为:“是为了发觉错误而执行程序过程” 。明确提出了软件测试是以对软件“寻找错误”为目标。 多数软件开发商认为:软件测试是一个主要软件质量确保活动,其动机是经过一些经济、高效方法,捕捉软件中错误,确保软件内在质量。明确提出了软件测试是以确保软件内在质量。1.1.1 软件测试定义软件测试基础知识及研发全过程第6页 2.软件测试与软件调试区分概念不一样:软件测试是一个在可控环境中执行软件过程,以验证是否按预期运行。软件调试是一个分析和定位软件
4、BUG过程。作用不一样:调试是测试一个基础,调试支持测试,但不能完全替换测试。目标不一样:调试使软件能正确运行,而测试是发觉软件中错误。对象不一样:调试对象是代码,测试对象是开发过程中全部产品。1.1.1 软件测试定义软件测试基础知识及研发全过程第7页3. 软件测试目标 基于不一样立场,存在两种完全不一样测试目标。 从用户角度出发,希望经过软件测试暴露软件中隐藏错误和缺点,以考虑是否能够接收该产品。 从软件开发者角度出发,希望成为表明软件产品中不存在错误过程,验证软件已正确地实现了用户要求,确立人们对软件质量信心。 综合明来,测试目标是经过对软件错误原因和分布进行归纳,来发觉并排除当前软件产品
5、缺点,对在需求和设计过程中存在问题查缺补漏,确保软件产品质量。 软件测试基础知识及研发全过程第8页 4. 软件测试基本职责 软件测试有两个基本职责: 一是验证即前后阶段需求是否一致。 二是确认即满足最终需求。 1.1.1 软件测试定义软件测试基础知识及研发全过程第9页1. 为何要进行软件测试软件由人开发,人会犯错误软件(程序+数据+文档)都有缺点。无法防止人类犯错,不过能够经过努力寻找隐藏在软件中缺点。 多、快、好、省 软件测试是提升软件质量、确保软件质量伎俩之一。1.1.2 软件测试必要性软件测试基础知识及研发全过程第10页用户所说需求分析人员了解系统需求规格说明书开发人员了解实际软件人不是
6、完美,在设计和实现时会犯错 信息传递误差1.1.2 软件测试必要性软件测试基础知识及研发全过程第11页工程硕士12没有软件工程和项目管理概念下,软件开发觉象1.1.2 软件测试必要性软件测试基础知识及研发全过程第12页 2. 软件缺点案例 软件缺点将造成灾难性危害或对用户产生巨大影响。 年,软件问题造成美国东部及加拿大停电,造成5000万人受影响,3人丧生,60亿美元损失。 ,美国海军飞机控制软件问题造成飞机坠落,4人丧生。 1997年韩国空难,造成225人丧生(雷达控制软件问题) 20,北美银行已新安装软件缺点,使数以百万计客户受影响,缺点修复花费两个星期,造成亿元损失。 年,美国专门为学生
7、贷款企业因为软件犯错,错误计算80万学生贷款利率,造成800万元损失1.1.2 软件测试必要性软件测试基础知识及研发全过程第13页 3. 软件测试是软件开发主要步骤 4. 软件测试是确保软件质量主要伎俩。 1.1.2 软件测试必要性软件测试基础知识及研发全过程第14页1.1.3 软件缺点1软件缺点定义 软件缺点(bug)定义也很多,综合说来是程序软件中存在一个破坏系统正常运行能力问题、错误或瑕疵,造成软件产品在某种程度上不能满足用户需要。 软件缺点是指软件产品中所存在造成不能完全满足用户需求错误。 按IEEE 729标准定义,软件缺点含义有2个方面: 软件产品内部:软件缺点是软件产品开发或维护
8、过程中所存在错误、瑕疵等各种问题。 软件产品外部:软件缺点是软件所需要实现某种功效失效或违反。软件测试基础知识及研发全过程第15页 2. 软件缺点外部表现判断规则 软件未实现产品说明书要求功效。 软件出现了产品说明书指明不会出现错误。 软件超出实现了产品说明书提到功效。 软件未实现产品说明书虽未明确指出但应该实现目标。 软件难以了解,不易使用,运行迟缓或者终端用户认为不好。 第条规则是全方面。假如软件测试员发觉一些地方不对劲,不论什么原因,都要认定为缺点。1.1.3 软件缺点软件测试基础知识及研发全过程第16页 以计算器为例说明判断规则。 若产品说明书声称能够准确无误地进行加、减、乘、除运算,
9、当你按下()键,结果什么反应也没有;依据第条规则,是一个缺点。假如得到错误答案;依据第条规则,一样是一个缺点。 若产品说明书声称永远不会瓦解、锁死或者停顿反应,当你任意敲键盘,计算器停顿接收输入。依据第条规则,是一个缺点。 若在测试计算器过程中,发觉除了加、减、乘、除之外它还能够求平方根,而产品说明书中没提到该功效。依据第条规则,是一个缺点。 若在测试计算器过程中,发觉电池电量极少时,会造成计算不正确,但产品说明书未指出该问题。依据第条规则,是一个缺点。 若“”键布置位置使其极不好按,或在明亮光下显示器难以看清。依据第条规则,是一个缺点。 1.1.3 软件缺点软件测试基础知识及研发全过程第17
10、页 3软件缺点种类 从功效表现形式来分,软件缺点有三种类型: 完全没有实现功效。比如用户需要实现A、B、C三个功效,不过系统只实现了A、B两个功效 基本实现了用户需求功效,运行时出现功效或性能上问题。比如满足系统要求,但运行经常报错、死机,响应时间要求为5 秒,实际为10秒。 实现了用户不需要功效。比如用户要求实现A、B、C三个功效,实际实现了A、B、C、D四个功效。1.1.3 软件缺点软件测试基础知识及研发全过程第18页 还表现在其它方面。如:特征没有实现或部分实现;设计不合理;实际结果和预期结果不一致;运行犯错(运行中止、系统瓦解、界面混乱) ;数据结果不正确、精度不够;用户不能接收其它问
11、题(存取时间过长、界面不美观) 。 1.1.3 软件缺点软件测试基础知识及研发全过程第19页 4软件缺点级别 软件测试员所发觉大多数缺点是难以觉察简单错误,不显著,也不严重;而且有些是真正错误,有些不是。普通来说,问题越严重,其优先级越高,越应得到及时纠正。软件企业对缺点后果严重程度定义不尽相同,但普通能够分为4种级别:1.1.3 软件缺点软件测试基础知识及研发全过程第20页 致命:致命错误是指造成系统或应用程序瓦解、死机、悬挂,或造成数据丢失、主要功效完全失效等。 严重:严重错误是指功效或特征没有实现,主要功效部分丧失,次要功效完全丧失,或致命错误申明。 普通:普通错误是指即使不影响系统基本
12、使用,但没有很好地实现功效,没有到达预期效果。如次要功效丧失,提醒信息不太准确,或用户界面差,操作时间长等。 微小:微小错误是指对功效几乎没有影响,产品及属性仍可使用,如有个别错别字、文字排列不整齐等。 除了这4种之外,有时需要“提议”级别来处理测试人员所提出提议或质疑,如提议程序做适当修改,来改进程序运行状态,或对设计不合理、不明白地方提出质疑。 1.1.3 软件缺点软件测试基础知识及研发全过程第21页轻微: 词语拼写错误中等: 误导或重复信息使人不悦: 被截断信息,0.00¥帐单影响使用: 有些交易没有处理严重: 丢失交易非常严重: 不正确交易处理极为严重: 经常出现“非常严重”错误无法忍
13、受: 数据库破坏灾难性: 系统停机轻易传染: 扩展到其它系统系统停机缺点类型综合讨论参见软件异常IEEE标准分类(IEEE,1993)1.1.3 软件缺点软件测试基础知识及研发全过程第22页 5. 软件缺点状态 为便于跟踪和管理软件缺点,能够定义不一样状态。软件缺点状态普通有4种: 激活状态:问题还没有处理,测试人员新报bug,或验证后bug依然存在。 已修正状态:开发人员针对所存在缺点,修改程序,认为已处理问题,或经过单元测试。 关闭或非激活状态:测试人员验证已经修正bug后,确认bug不存在以后状态。 1.1.3 软件缺点软件测试基础知识及研发全过程第23页 6软件缺点产生原因 造成软件缺
14、点原因归纳起来有3个方面: 技术问题 算法错误。 语法错误。 计算方法与精度要求不匹配或取值精度不够。 结构不合理。 接口参数不匹配。 1.1.3 软件缺点软件测试基础知识及研发全过程第24页 团体工作问题 与用户沟通不够,对需求不是十分清楚。 不一样阶段开发人员对同一问题了解不一致。 设计或编程上假定或依赖性,相互间沟通不充分。 软件本身问题 文档错误、内容不正确或拼写错误。 数据考虑不周全,引发强度或负载不合理。 对边界考虑不周全,如遗漏几个边界条件。 对实时软件,同时不准确,引发时间上不协调、不一致。 没有考虑系统瓦解后在安全性、可靠性隐患。 硬件或系统软件上存在错误。 软件开发标准或过
15、程上错误。 1.1.3 软件缺点软件测试基础知识及研发全过程第25页 7软件缺点组成 软件缺点是由很多原因造成,从按软件开发过程来看,不一样阶段工作,造成软件缺点差异性很大,如图所表示。需求分析是软件缺点出现最多阶段。图1-1 软件缺点组成示意图1.1.3 软件缺点软件测试基础知识及研发全过程第26页27 8.与缺点相关概念 软件错误(software error):在软件生存期内不希望或者不可接收人为错误。 软件故障(Software Fault):软件运行过程中出现一个不希望或不可接收内部状态。此时,假如没有适当(容错)加以及时处理,便会产生软件失效。 软件失效(Software Fail
16、ure):软件运行时产生一个不希望或不可接收外部行为。1.1.3 软件缺点软件测试基础知识及研发全过程第27页图1-5 缺点放大模型 所以,从需求开始,尽早制订测试计划,坚持在软件开发各个阶段技术评审,才能在开发过程中尽早发觉和预防错误,把出现错误克服在早期,杜绝一些隐患,提升软件质量。 1. 尽早地和不停地进行软件测试 IBM研究结果表明,缺点存在放大趋势。从图可见,问题发觉越早,处理问题代价就越小,这是软件开发过程中黄金法则。1.1.4 软件测试标准软件测试基础知识及研发全过程第28页 2. 不可能完全测试 对一个程序进行完全测试就是意味着在测试结束之后,再也不会发觉其它软件错误了。其实,
17、这是不可能,主要原因有以下几点: 不可能测试程序对全部可能输入响应。 不可能测试到程序每一条可能执行路径。 无法找出全部设计错误。 不能采取逻辑来证实程序正确性。 1.1.4 软件测试标准软件测试基础知识及研发全过程第29页假如测试一个计算器程序功效,需要进行多少次输入?不计其数! 整型: 从 1+1 到 999999999999999999999999999999+ 999999999999999999999999999999 小数:1.0+0.1,1.0+0.2等等 键盘上任何一个组合 乘法和除法运算重复上面操作1.1.4 软件测试标准软件测试基础知识及研发全过程第30页 由小到大是指软件
18、测试粒度。不论是传统软件测试还是面向对象软件测试都要遵照该标准。多个单元组合过渡到集成测试,集成测试过渡到系统测试。虚线是各个测试阶段公布基线,伴随测试逐步深入,范围逐步扩大,测试时间、可用资源也随之增大。3. 由小到大,增量测试测试过程关系图1.1.4 软件测试标准软件测试基础知识及研发全过程第31页 4.防止测试自己程序 防止程序员测试自己代码主要原因以下: 程序员轻易不会认可自己写程序有错误。 程序员测试思绪有不足,测试时轻易受到编程思绪影响。 多数程序员没有严格正规职业训练,缺乏专业测试人员意识。 程序员没有养成错误跟踪和回归测试习惯。 由他人测试,会更客观,更有效。 1.1.4 软件
19、测试标准软件测试基础知识及研发全过程第32页 5. 设计周密测试用例。 软件测试本质就是针对要测试内容确定一组测试用例。测试用例是测试工作关键,应该尽可能设计周密细致,才能确保测试工作质量。 测试用例由测试输入数据和与之对应预期输出结果两部分组成。假如对测试输入数据没有给出预期程序输出结果,那么就缺乏了检验实测结果基准,就有可能把一个似是而非错误结果当成正确结果。 在设计测试用例时,应该包含合理输入条件和不合理输入条件。合理输入条件是指能验证程序正确输入条件,而不合理输入条件是指异常、临界、可能引发问题变异输入条件。所以,软件系统处理非法命令能力也必须在测试时受到检验。用不合理输入条件测试程序
20、时,往往比用合理输入条件进行测试能发觉更多错误。1.1.4 软件测试标准软件测试基础知识及研发全过程第33页测试用例最少应该包含以下几个基本信息: 执行测试用例前,应满足前提条件。 输入(合理、不合理)。 预期输出(包含后果和实际输出)。经典测试用例模版1.1.4 软件测试标准软件测试基础知识及研发全过程第34页 6. 注意错误集中现象 充分注意测试中群集现象。测试时不要认为找到了几个错误问题就已处理,不需继续测试。应该对错误群集程序段进行重点测试,以提升测试投资效益。 软件缺点“扎堆”现象常见形式:对话框某个控件功效不起作用,可能其它控件功效也不起作用。 某个文本框不能正确显示双字节字符,则
21、其它文本框也可能不支持双字节字符。联机帮助某段文字翻译包含了很多错误,与其相邻上下段文字可能也包含很多语言质量问题。 安装文件某个对话框“上一步”或“下一步”按钮被截断,则两个按钮在其它对话框中也可能被截断。1.1.4 软件测试标准软件测试基础知识及研发全过程第35页 7. 确认BUG有效性 有时候测试人员提交BUG并不是真正BUG,无效BUG起源如图所表示。普通由A测试人员发觉BUG,一定要由B测试人员进行确认,假如发觉严重BUG能够召开评审会进行讨论和分析。1.1.4 软件测试标准软件测试基础知识及研发全过程第36页无效BUG起源组成图软件测试基础知识及研发全过程第37页 8. 合理安排测
22、试计划 合理测试计划有利于测试工作顺利有序地进行。 测试计划应结合各种针对性强测试方法,列出全部可使用资源,建立一个正确测试目标。要有明确要求,不要随意解释。 本着严谨、准确标准,周到细致地做好测试前期准备工作,防止测试随意性。尤其是要尽可能科学合理地安排测试时间。 严格执行测试计划,排除测试随意性。 妥善保留测试计划、测试用例、犯错统计和最终分析汇报,为维护提供方便。,1.1.4 软件测试标准软件测试基础知识及研发全过程第38页错误依赖关系9. 回归测试1.1.4 软件测试标准 错误之间存在单纯依赖或者复杂多重依赖关系。(a)图中:A错误依赖于B错误关闭而关闭;(b)图中:A错误依赖于B错误
23、和C错误同时关闭而关闭;(c)图是(a)和(b)复合方式。程序中错误存在着一对多、多对多复杂关系而变得难以处理,且有些依赖关系处于隐性状态。 软件测试基础知识及研发全过程第39页 10. 测试结果统计和分析 只有对测试输出信息进行深入地统计、分析和比较,才能正确判别测试输出数据,给出清楚错误分析汇报。当输出信息很庞大时,能够借助专业测试工具。 应对每一个测试结果做全方面检验。 必须对预期输出结果明确定义,对实测结果仔细分析检验,抓住关键,暴露错误。1.1.4 软件测试标准软件测试基础知识及研发全过程第40页 11.及时更新测试 造成测试失败原因有很多,大致有以下几点: 1、测试团体管理者渎职;
24、 2、测试团体中沟通不好; 3、测试团体和项目团体沟通不良; 4、测试过程中,执行角色无准确定义; 5、测试团体缺乏良好培训。 1.1.4 软件测试标准软件测试基础知识及研发全过程第41页 误区1 调试和测试是一样 误区2 软件测试在软件开发过程中并不主要 误区3 在软件开发结束之后进行测试 误区4 过分依赖Beta测试 误区5 过分依赖自动化测试 误区6 测试是可穷尽 误区7 测试是证实软件正确性 误区8 能够忽略测试设计 1.1.5 软件测试误区软件测试基础知识及研发全过程第42页 软件=程序+数据+文档+服务软件质量:系统、组件或过程满足明确需求。 -IEEE Standard Glos
25、sary of Software Engineering Technology软件测试:挑毛病,发觉Bug(缺点)。软件测试是软件质量确保伎俩。1.1.6 软件测试与软件质量确保关系软件测试基础知识及研发全过程第43页44SQA (Software Quality Assurance) :为确保软件开发过程和结果符合预期要求而建立一系列规程,以及依照规程和计划采取一系列活动及其结果评价。面向管理层,提供正确信息,工作对象是产品;促进和协调过程改进;预防问题。软件测试:使用人工或者自动伎俩来运行或测定某个系统过程,检验其是否满足要求需求或判定预期结果与实际结果之间差异。工作对象是开发软件,寻找缺
26、点;强调书写正式测试文档,实现可重复结构化软件测试;发觉问题。1.1.6 软件测试与软件质量确保关系软件测试基础知识及研发全过程第44页 1软件测试技术发展历史 在软件行业发展早期,就实施软件测试,但这一阶段不是真正意义上软件测试,更多调试。测试没有计划和方法,测试用例设计和选取也都是依据测试人员经验随机进行,大多数测试目标是为了证实软件能够正常运行。 20世纪5060年代,软件依然处于次要位置,测试理论和方法发展比较迟缓。 伴随高级语言诞生,程序复杂性远远超出了以前,测试重点也逐步转入到使用高级语言编写软件中来。尽管如此,因为受到硬件制约,在计算机系统中,软件依然处于次要位置。软件正确性把握
27、依然主要依赖于编程人员技术水平。1.1.7 软件测试技术发展软件测试基础知识及研发全过程第45页 70年代以后,软件技术成熟和完善使得软件测试规模和复杂度加大,软件测试也逐步形成了一套完整体系,逐步走向规范化。 伴随计算机处理速度提升、存放容量增加,软件地位变得越来越主要。伴随软件开发技术成熟和完善,软件规模越来越大,复杂度也大大增加。所以,软件可靠性面临着前所未有危机,给软件测试工作带来了更大挑战,进而培养和造就了一批批出众测试人才。 1.1.7 软件测试技术发展软件测试基础知识及研发全过程第46页 如今在软件产业化发展大趋势下,人们对软件质量,成本和进度要求也越来越高,质量控制已经不但仅是
28、传统意义上软件测试。传统软件测试大多是基于代码运行,而且经常是软件开发后期才开始进行,但大量研究表明,设计活动引入错误占软件开发过程中出现全部错误数量50%65%。所以,越来越多声音呼吁,要求有一个规范软件开发过程。而在整个软件开发过程中,测试已经不再只是基于程序代码进行活动,而是一个基于整个软件生命周期质量控制活动,贯通于软件开发各个阶段。 1.1.7 软件测试技术发展软件测试基础知识及研发全过程第47页2软件测试现实状况国外现实状况软件测试在软件企业中占有主要地位软件测试理论研究蓬勃发展,每年举行各种各样测试技术年会,发表了大量软件测试研究论文,引领软件测试理论研究国际时尚软件测试市场繁荣
29、国内现实状况我国软件测试起步于“六五”期间,当前国家863、973以及大力支持软件测试研究1990年,成立中国软件评测中心,测试服务开始发展软件测试正在逐步成为一个新兴产业国家确定“软件评测师”职业资格认证;“以测代评”正成为我国科技项目择优支持一项主要举措;第三方测试机构繁荣发展1.1.7 软件测试技术发展软件测试基础知识及研发全过程第48页 与一些发达国家相比,国内测试工作还存在一定差距。在我国,软件测试可能算不上一个真正产业,软件开发企业对软件测试认识淡薄,软件测试人员与软件开发人员百分比失调,而在发达国家和地域软件测试已经成了一个产业。 但在软件测试实现方面并不比国外差,国际上优异测试
30、工具,我们基本都有,这些工具所表达思想我们也有深刻了解,很多大型系统在国内都得到了很好测试。1.1.7 软件测试技术发展软件测试基础知识及研发全过程第49页1.2 软件测试依据与人员组织1.2.1 软件测试依据1.2.2 软件测试人员职责分配1.2.3 软件测试人员必需素质 1.2.4 软件测试经验软件测试基础知识及研发全过程第50页511. 软件质量标准ISO9000-3软件质量标准:考虑软件行业特殊性制订,是ISO质量管理和质量确保标准在软件开发、供给和维护中使用指南。关键内容包含:协议评审需求规格说明开发计划质量计划设计和实现测试和确认验收复制、交付和安装维护1.2.1 软件测试依据软件
31、测试基础知识及研发全过程第51页522. 软件测试规范软件测试规范就是对软件测试流程过程化并对每一个过程元素进行明确界定,形成完整规范体系,包含:规范目标、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检验表、培训、工具、参考资料等等。1.2.1 软件测试依据软件测试基础知识及研发全过程第52页533. 软件测试国家标准GB/T9386-1988 计算机软件测试文件编制规范GB/T15532-1995 计算机软件单元测试规范GB/T17544-1998信息技术软件包质量要求和测试GB/T16260.1-软件工程产品质量第1部分质量模型GB/T16260.2-200X
32、软件工程产品质量第2部分外部度量GB/T16260.3-200X软件工程产品质量第3部分内部度量GB/T16260.4-200X软件工程产品质量第4部分使用质量度量GB/T18905.1-软件工程产品质量第1部分概述GB/T18905.2-软件工程产品质量第2部分策划和管理GB/T18905.3-软件工程产品质量第3部分开发者用过程GB/T18905.4-软件工程产品质量第4部分需求方用过程GB/T18905.5-软件工程产品质量第5部分评价者用过程GB/T18905.6-软件工程产品质量第6部分评价模块文档编制1.2.1 软件测试依据软件测试基础知识及研发全过程第53页 1. 软件测试组织结
33、构和人员结构 软件测试在组织结构上普通分为功效测试组、性能测试组和文档工作组。 软件测试在人员结构上普通需要有测试文档审核师、测试工程师和操作人员。1.2.2 软件测试人员职责分配软件测试基础知识及研发全过程第54页工程硕士55 2. 测试职责分配系统分析设计人员软件开发人员软件测试人员配置管理员质量确保人员对测试过程进行审计对测试文档及测试代码等进行配置管理提出测试需求;进行测试需求跟踪;进行软件系统可测性分析;确定测试对象、范围和方法提供软件开发计划SDP,参加测试计划制订和评审,提供软件功效需求规格、需求分析、测试提议、响应测试需求、参加测试方案评审;跟踪处理缺点问题汇报单,参加测试汇报
34、评审。 制订测试计划、方案并组织评审,实现测试用例,代码和工具等设计、编写测试规程;执行测试、反馈并跟踪缺点问题汇报单,完成测试汇报并组织评审,输出测试案例、总结等经验文档 软件测试基础知识及研发全过程第55页1.软件测试人员必需基本素质 三心二意一能力细心耐心责任心服务意识团体意识沟通能力1.2.3 软件测试人员必需素质 软件测试基础知识及研发全过程第56页2. 软件测试人员必需知识素养 深入了解软件测试理论 掌握各类软件测试技术 接收专门测试训练 对软件缺点警觉性高 对缺点出现各种情况较熟悉 掌握各种计算机语言 掌握普通软硬件、数据库及网络知识 对所要测试软件功效、结构、要求有深入认识。1
35、.2.3 软件测试人员必需素质 软件测试基础知识及研发全过程第57页58(1)心理素质最主要开发人员我不会犯错-任何人都可能犯错这种错误不能算作错误-质量是由用户来评价发觉我错误是对我工作否定-是对我工作帮助测试人员责任心不够,反正测试是不可能发觉全部错误职业教育+激励办法没有创造性、枯燥总结经验,培养敏锐度,提升个人价值和权威技术比开发人员差,自信心不足代表用户,决定成功是用户满意1.2.4 软件测试经验软件测试基础知识及研发全过程第58页59(2)测试前必须明确预期输出结果不然实际输出结果很可能成为检验标准,测试失去意义(3)必须检验每一个实际输出结果很可笑,不过却是事实:不认真检验输出结
36、果(4)一段程序中存在错误概率与这段程序中已经发觉错误数成正比编码规范、需求了解、技术能力、内部耦合性都会造成这种“虫子窝“现象1.2.4 软件测试经验软件测试基础知识及研发全过程第59页工程硕士60(5)可能情况下,防止测试自己软件发觉不了思绪错误发觉不了环境错误心理原因造成测试可能不够彻底和全方面(6)依照用户要求、配置环境和使用习惯进行测试并评价结果(7)测试设计决定了测试有效性和效率,测试工具只能提升测试效率1.2.4 软件测试经验软件测试基础知识及研发全过程第60页工程硕士61(8)注意保留测试设计,并注意测试设计可重用性和说明文档(9)测试活动要有组织、有计划、有选择穷举测试是不可
37、能不充分测试是不负责任,过分测试是浪费资源有计划活动能提升效率(10)不要放弃随机测试方法测试不成熟性和艺术性1.2.4 软件测试经验软件测试基础知识及研发全过程第61页 1. 软件测试人员工作内容 依据软件需求规格说明书、设计说明书、代码等软件产物选取恰当输入组合 运行被测试对象 输入数据 执行操作 查看输出结果是否和预期结果一致,假如一致则认为被测对象没有问题,不然,则认为被测对象中可能存在缺点 缺点修改完成,验证缺点修改,确认缺点是否修更正确,是否引入新问题1.2.5 软件测试人员工作流程软件测试基础知识及研发全过程第62页关键工作产品测试用例缺点汇报单其它主要工作产品测试计划测试策略测
38、试汇报。2. 软件测试人员工作流程1.2.5 软件测试人员工作流程软件测试基础知识及研发全过程第63页 3. 软件测试人员工作目标 GMyers给出了关于测试一些规则,能够把它看作是测试人员工作目标: 软件测试是为了发觉错误而执行程序过程。 测试是为了证实程序有错,而不是证实程序无错。 一个好测试用例在于他能发觉至今未发觉错误。 一个成功测试是发觉了至今未发觉错误测试。 要强调是软件测试不只是软件测试人员工作,也是软件开发人员和软件使用者工作。1.2.5 软件测试人员工作流程软件测试基础知识及研发全过程第64页1.3 软件测试生命周期与模型1.3.1 软件开发模型1.3.2 软件测试生命周期1
39、.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第65页 1.经典瀑布模型 由美国Winston Royce向IEEE WESCON(Royce, Winston 1970)提交一篇名为管理大规模软件系统开发论文中首次提出。因为方法一个阶段成瀑布流入下一个阶段,所认为“瀑布模型或线性模型”。瀑布模型有很多改变,但都包含以下阶段:需求分析与定义,系统设计与软件设计,系统实施与单元测试,系统集成与系统测试,系统运行与系统维护,也是软件开发基本过程。需求分析:可行性分析与软件需求分析 软件需求分析:业务需求 功效需求 非功效需求1.3.1 软件开发模型软件测试基础知识及研发全过程第66页
40、该处测试仅指执行测试1.3.1 软件开发模型软件测试基础知识及研发全过程第67页 2.原型模型 直观、形象,更多地遵照了人们认识事物规律,因而更轻易被人们接收。 采取模拟伎俩,缩短了用户和系统分析、设计人员之间距离。 在整个系统开发过程中反馈是及时,标准是统一,可及时地暴露问题,确保系统实现正确性。 充分利用了新一代软件工具,使得系统开发和运行效率都大大提升。 1.3.1 软件开发模型软件测试基础知识及研发全过程第68页1.3.1 软件开发模型软件测试基础知识及研发全过程第69页1.3.1 软件开发模型软件测试基础知识及研发全过程第70页1.3.1 软件开发模型3. 增量与迭代模型增量开发迭代
41、开发软件测试基础知识及研发全过程第71页 AnalysisDesignCodeTestDelivery of 1st incrementIncrement1AnalysisDesignCodeTestAnalysisDesignCodeTestDelivery of 2nd incrementDelivery of 3rd incrementIncrement2Increment31.3.1 软件开发模型软件测试基础知识及研发全过程第72页风险分析风险分析风险分析风险分析原型1原型2原型3可用原型建模模拟评价软件需求需求确认操作概念需求计划开发计划软件产品设计设计确认与验证集成与测试计划详细设
42、计编码单元测试集成测试接收测试实现成本评审制订下阶段计划确定下阶段目标和约束条件风险分析、结构原型开发、验证阶段软件产品过程迭代 4. 螺旋模型(风险驱动过程模型,增量模型与爆布模型相结合) 1.3.1 软件开发模型软件测试基础知识及研发全过程第73页5. 渐进模型1.3.1 软件开发模型软件测试基础知识及研发全过程第74页 软件测试生命周期分为6个阶段,前个阶段是引入错误时期,也就是开发过程中需求规格说明、设计、编码阶段,此时极易引入错误或者造成开发过程中其它阶段产生错误。后3个阶段是经过测试发觉错误、时期,这需要经过使用一些适当测试技术和方法来共同完成,主要任务是进行缺点分类、缺点隔离和处
43、理缺点。其中在修复旧缺点时候很可能引进新错误,造成原来能够正确执行程序出现新缺点。 在软件测试生命周期每个阶段都要完成一些确定任务,在执行每个阶段任务时,能够采取行之有效结构分析设计技术和适当辅助工具;在结束每个阶段任务时都进行严格技术审查和管理复审。最终提交最终软件配置一个或几个成份(文档或程序)。1.3.2 软件测试生命周期软件测试基础知识及研发全过程第75页图1-2软件测试生命周期1.3.2 软件测试生命周期软件测试基础知识及研发全过程第76页 1测试与开发各阶段关系 软件开发过程是一个自顶向下,逐步细化过程。首先在软件计划阶段定义软件作用域,进行软件需求分析,建立软件数据域、功效和性能
44、需求、约束和一些有效性准则。然后进入软件开发-软件设计和编写代码。 测试过程则是依相反次序安排自底向上,逐步集成过程,低一级测试为上一级测试准备条件。首先对每一个程序模块进行单元测试,消除程序模块内部在逻辑上和功效上错误和缺点。再对照软件设计进行集成测试,检测和排除子系统(或系统)结构上错误。随即再对照需求,进行确认测试。最终从系统全体出发,运行系统,看是否满足要求。 1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第77页图1-3 软件测试与软件开发过程关系1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第78页 2测试与开发并行性 在软件需求得到确认并经过评审后
45、,概要设计工作和测试计划制订设计工作就要并行进行。假如系统模块已经建立,对各个模块详细设计、编码、单元测试等工作又可并行。待每个模块完成后,能够进行集成测试、系统测试。并行流程如图1-4所表示。1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第79页图1-4 软件测试与软件开发并行性1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第80页 3测试与开发模型 软件测试不但仅是执行测试,而是一个包含很多复杂活动过程,而且这些活动贯通于整个软件开发过程。在软件开发过程中,应该什么时候进行测试,怎样更加好地把软件开发和测试活动集成到一起?这是软件测试工作人员必须考虑问题,因
46、为只有这么,才能提升软件测试工作效率,提升软件产品质量,最大程度地降低软件开发与测试成本,降低重复劳动。1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第81页 (1)V模型 在传统开发过程中,测试不受重视,仅把它作为在需求分析、概要设计、详细设计及编码之后一个阶段。 在V模型中,描述了一些不一样测试级别,并指出了这些级别所对应软件生命周期中不一样阶段和测试活动和开发活动对应关系。这是V模型主要价值。 V模型适合用于全部类型开发过程,但并不一定适合用于开发和测试过程全部方面。尤其地, V模型并不是瀑布模型(线性关系)变形。1.3.3 软件测试与软件开发关系软件测试基础知识及研发全
47、过程第82页软件测试与开发V模型1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第83页 (2)W模型 因为各种原因,开发每一个步骤都可能产生错误,假如坚持各个阶段技术评审,就可尽早发觉和预防错误。软件开发与测试W模型,形象地说明了软件测试与开发同时性。 应用W模型优点在于:每个软件开发活动结束后就能够执行对应测试。如在需求分析结束后,就能够进行需求分析测试。1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第84页W模型示意图 1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第85页 (3)H模型 与前两种模型相比,H模型充分地表达了测试过程。H模型揭
48、示了: 软件测试不但仅指测试执行, 还包含很多其它活动。 软件测试是一个独立流程, 贯通软件开发周期, 与其它流程并发进行。 软件测试要尽早准备, 尽早执行。 软件测试依据被测物不一样是分层次,不一样层次测试活动能够是按照某个次序先后进行, 但也可能是重复。1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第86页H模型示意图1.3.3 软件测试与软件开发关系软件测试基础知识及研发全过程第87页1.4 软件测试计划及其相关文档1.1.1 软件测试计划1.1.2 软件测试计划制订1.1.3 开发、测试及计划制订并行关系1.1.4 软件测试文档1.1.5 软件测试总结汇报1.1.6 软
49、件生命周期各阶段交付测试文档软件测试基础知识及研发全过程第88页1.4.1 软件测试计划1测试计划定义 软件测试是一个有组织有计划活动,应该给予充分时间和资源制订测试计划,才能在合理控制下正常进行。测试计划作为测试起始步骤,是整个软件测试过程关键管理者。 测试计划要求了测试各个阶段所要使用方法策略、测试环境、测试经过或失败准则等内容。ANSI/IEEE软件测试文档标准829-1983将测试计划定义为:“一个叙述了预定测试活动范围、路径、资源及进度安排文档。它确认了测试项、被测特征、测试任务、人员安排,以及任何偶发事件风险。”软件测试基础知识及研发全过程第89页 2测试计划目标和作用 测试计划目
50、标是明确测试活动意图,规范软件测试内容、方法和过程,为有组织地完成测试任务提供保障。专业测试必须以一个好测试计划作为基础。尽管测试每一个步骤都是独立,不过必须要有一个起到框架结构作用测试计划。软件测试计划是整个测试过程中最主要部分,为实现可管理且高质量测试过程提供基础。1.4.1 软件测试计划软件测试基础知识及研发全过程第90页 3测试计划书 测试计划文档化即是测试计划书,分为总体计划和分级计划,是能够更新改进文档。测试计划书描述了软件测试预计到达目标,确定测试过程所要采取方法策略。从文档角度看,测试计划书是最主要测试文档,完整细致并含有远见性计划书会使测试活动安全顺利地向前进行,从而确保所开
51、发软件产品高质量。1.4.1 软件测试计划软件测试基础知识及研发全过程第91页 4测试计划内容 测试计划包含测试目标、测试范围、测试对象、测试策略、测试任务、测试用例、资源配置、测试结果分析和度量以及测试风险评定等,测试计划应该足够完整但也不应该太详尽。实际测试计划内容因不一样测试对象而灵活改变。1.4.1 软件测试计划软件测试基础知识及研发全过程第92页 正规测试计划应该包含以下几个项目(参考样本)。 (1)测试基本信息:包含测试目标、背景、测试范围等。 (2)测试详细目标:列出软件需要进行测试部分和不需要进行测试部分。 (3)测试策略:测试人员采取测试方法,如回归测试、功效测试、自动测试等
52、。 (4)测试经过标准:测试是否经过界定标准以及没有经过情况处理方法; (5)停测标准:给出每个测试阶段停顿测试标准。1.4.1 软件测试计划软件测试基础知识及研发全过程第93页 (6)测试用例:详细描述测试用例,包含测试值、测试操作过程、测试期待值等。 (7)测试基本支持:测试所需硬件、自动测试软件等。 (8)部门责任分工:明确全部参加软件管理、开发、测试、技术支持等部门责任细则。 (9)测试人力资源分配:列出测试所需人力资源以及软件测试人员培训计划。 (10)测试进度:制订每一个阶段详细测试进度安排表。 (11)风险预计和危机处理:预计测试过程中潜在风险以及面临危机时处理方法。1.4.1
53、软件测试计划软件测试基础知识及研发全过程第94页 5测试计划特点 一个理想测试计划应该表达以下几个特点:检测主要缺点时有一个好选择; 含有灵活性;提供绝大部分代码覆盖率; 定义要执行测试种类;易于执行、回归和自动化; 没有测试冗余;明确说明期望测试结果; 确认测试风险;当缺点被发觉时提供缺点查对; 文档化确定测试需求;明确定义测试目标; 明确定义测试策略;明确定义测试经过标准; 定义可交付测试件。1.4.1 软件测试计划软件测试基础知识及研发全过程第95页 6测试计划应用 借助软件测试计划,参加测试项目组员,尤其是测试管理人员,明确了测试任务和测试方法,保持测试实施过程顺畅沟通,跟踪和控制测试
54、进度,应对测试过程中各种变更。一份好测试计划需要综合考虑各种影响测试原因。 测试计划是软件测试流程工作基本依据,测试计划中所列条目在实际测试中必须一一执行。在测试过程中,若发觉新测试用例,就要尽早补充到测试计划中。若预先制订测试计划项目在实际测试中不适用或无法实现,那么也要尽快对计划进行修改,使计划含有可行性。1.4.1 软件测试计划软件测试基础知识及研发全过程第96页 1测试计划制订工作内容 测试计划制订需要完成主要工作内容有:确定测试计划、论证在开发过程中难于管理和控制原因,明确软件产品最主要部分(风险评定)。1.4.2 测试计划制订软件测试基础知识及研发全过程第97页 (1)概要测试计划
55、 概要测试计划是在软件开发早期制订,其内容包含: 定义被测试对象和测试目标; 确定测试阶段和测试周期划分; 制订测试人员、软硬件资源和测试进度等方面计划; 明确任务与分配及责任划分; 要求软件测试方法、测试标准,比如语句覆盖率到达98%,三级以上错误更正率达98%等; 不更正错误必须经专门质量评审组织同意; 支持环境和测试工具等。1.4.2 测试计划制订软件测试基础知识及研发全过程第98页 (2)详细测试计划 详细测试计划是测试者或测试小组详细测试实施计划,它要求了测试者负责测试内容、测试强度和工作进度,是检验测试实际执行情况主要标准。详细测试计划主要内容有:计划进度和实际进度对照表、测试关键
56、点、测试策略、还未处理问题和障碍。1.4.2 测试计划制订软件测试基础知识及研发全过程第99页 (4)制订测试纲领 从本质上看,测试纲领是从测试角度对被测对象功效和特征细化和展开,对于系统功效测试纲领是基于软件质量确保人员对系统需求规格说明书中相关系统功效定义了解,将其逐一细化展开后编制而成。详细包含:测试项目、测试步骤、测试完成标准以及测试方式(手动或自动)。 测试纲领作用在于:确保测试功效不被遗漏,使得软件功效不被重复测试,合理安排测试人员,使得软件测试不依赖于个人。不论是自动测试还是手动测试,都必须满足测试纲领要求。1.4.2 测试计划制订软件测试基础知识及研发全过程第100页 (5)制
57、订测试经过或失败标准 测试标准为可观陈说,它指明了判断/确认测试在何时结束,以及所测试应用程序质量。测试标准能够是一系列陈说或对另一文档(如测试过程指南或测试标准)引用。测试标准应该指明:确切测试目标、度量尺度怎样建立、使用了那些标准对度量进行评价。1.4.2 测试计划制订软件测试基础知识及研发全过程第101页 (6)制订测试挂起标准和恢复必要条件 指明挂起全部或部分测试项标准,并指明恢复测试标准及其必须重复测试活动。1.4.2 测试计划制订软件测试基础知识及研发全过程第102页 (7)制订测试任务安排 明确测试任务,对每项任务都必须明确7个主题。 任务:用简练句子对任务加以说明 方法和标准:
58、指明执行该任务时,应该采取方法以及所应恪守标准。 输入输出:给出该任务所必需输入输出 时间安排:给出任务起始和连续时间 资源:给出任务所需要人力和物力资源 风险和假设:指明任务开启应满足假设及任务执行可能存在风险 角色和职责:指明由谁负责该任务组织和执行,以及谁将担负怎样职责1.4.2 测试计划制订软件测试基础知识及研发全过程第103页 (8)制订应交付测试工作产品 指明应交付文档、测试代码和测试工具,普通包含这些文档:测试计划、测试方案、测试用例、测试规程、测试日志、测试总结汇报、测试输入与输出数据、测试工具。 (9)制订工作量预计 给出前面定义任务人力需求和总计 (10)编写测试方案文档
59、测试方案文档是设计测试阶段文档,指明为完成软件或软件集成特征测试而进行设计测试方法细节文档。1.4.2 测试计划制订软件测试基础知识及研发全过程第104页 2、测试计划制订活动 在制订测试计划过程中,关键活动包含: (1)确定测试策:确定测试范围与方法、确定测试标准和质量检验点、确定自动化测试策略。 (2)确定测试系统(硬件和软件) 测试架构:测试用例组织结构; 测试工具 测试环境:物理测试设施,运行操作系统与计算平台等。 测试配置情况:排列配置优先级,决定哪些配置需要全方面测试,哪些能够进行部分测试。1.4.2 测试计划制订软件测试基础知识及研发全过程第105页 (3)预估测试工作量(资源和
60、时间进度计划) 对项目进行预估有5个准备步骤: 确定需完成任务。 确定每项任务所需工作量和整个测试过程工作量。 确定完成每项任务以及整个测试过程所需时间。 为测试工作建立详细时间进度计划和里程碑表。 评定时间进度风险并准备缓解风险计划。 (4)准备并复查测试计划文档。 1.4.2 测试计划制订软件测试基础知识及研发全过程第106页测试计划制订活动1.4.2 测试计划制订软件测试基础知识及研发全过程第107页软件开发过程测试计划制订需求分析功效设计详细设计编码概要测试计划详细测试计划测试纲领测试用例实施测试结果分析纠错质量评审产品公布项目任务书 软件开发、软件测试与测试计划制订并行关系1.4.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年VB考试连连看试题及答案
- 编程项目管理的基本原则与方法试题及答案
- 计算机网络与信息安全的理论研究试题及答案
- 代码设计中的用户体验考虑试题及答案
- 高考作文自我反省的试题及答案
- 网络故障案例分析试题与答案
- 软件设计师考试团队项目管理技能试题及答案
- 移动设备开发试题及答案
- 跨国公司与全球经济的联系试题及答案
- 网络管理员考试复习全攻略试题及答案
- 中国医院质量安全管理 第4-13部分:医疗管理住院患者健康教育 T∕CHAS 10-4-13-2020
- DB35_T 88-2022伐区调查设计技术规程
- 《航空专业英语》课件维修专业基础英语R1
- 【课件】第17课实验与多元——20世纪以来的西方美术课件高中美术人教版(2019)美术鉴赏
- 张沟煤矿打钻着火事故概述
- 孔子练精神聪明不忘开心方_医心方卷二十六引_金匮录_方剂加减变化汇总
- 欧宾电梯货梯电气原理图
- 政务服务顾客意见簿(竖)[2]
- Module-9-Unit-1-could-I-ask-if-youve-metioned-this-to-her
- NJB-2综合监测仪说明书
- 残魄点穴术(秘
评论
0/150
提交评论