1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考!,软件测试课程,软件测试,1/104,参考书,1,、,软件测试,作者:(美),Ron Patton,译者:周予滨 姚静 出版社:机械工业出版社 原出版社:,SAMS,2/104,参考书,2,、,软件测试,作者:,美,Paul C.Jorgensen,译者:韩柯 杜旭涛 出版社:机械工业出版社 原出版社:,CRC,3/104,参考书,3,、,软件测试,作者:(美),Ron Patton,译者:张小
2、松 王钰等 出版社:机械工业出版社 原出版社:,SAMS,4/104,参考书,4,、,软件测试与质量管理,作者:许育诚飞思科技产品研发中心,出版社:电子工业出版社,5/104,参考书,5,、,网上资料,其它网上资料,6/104,考试安排,课程实践,80%,左右,分组进行,LD,、,WR,、,WAS,等进行软件测试实践。,平时考勤,20%,左右,7/104,第一章 软件测试概述,杨双远,yangshuangyuan,软件测试,8/104,课程目标,掌握软件测试基本概念,了解测试对于软件质量保障主要性,了解软件测试基本流程和过程,了解黑盒测试和白盒测试含义,了解软件测试分类和内容,9/104,课程
3、内容,软件测试基本概念,软件测试误区,软件测试技术,软件测试方法,软件测试流程,软件测试过程,微软软件测试介绍,10/104,软件测试基本概念,什么是软件测试,软件测试目标,软件测试标准,软件测试重点,软件测试质量,软件测试度量,软件可测试性,11/104,什么是软件测试,广义概念,指软件生存周期中全部检验、评审和确认工作,其中包含了对分析、设计阶段,以及完成开发后维护阶段各类文档、代码审查和确认,狭义概念,识别软件缺点过程,即实际结果与预期结果不一致,12/104,什么是软件测试,软件测试通常包含,验证,(,verification),和,确认,(,validation),:,验证指确保软件
4、正确实现了某一特定功效一系列活动(功效性),确认指是确保软件实现满足了用户需求一系列活动(实用性),?哪一个更主要?,13/104,什么是软件测试,软件质量与可靠性,:,可靠性:运行稳定、满足客户需求,质量:功效强度、可靠性、性能、客服以及性价比等,可靠性和功效,哪一个更主要?,14/104,什么是软件测试,软件测试(,Testing,)与质量确保(,Quality Assurance,,,QA,),:,软件测试:尽可能找到软件缺点,并确保缺点得以修复,软件质量确保:创建和执行改进软件开发过程并预防软件缺点发生标准和方法,?,QA,和,QC,异同点?,15/104,软件测试目标,测试目标就是发
5、觉软件中各种缺点,测试只能证实软件存在缺点,不能证实软件不存在缺点,测试能够使软件中缺点降低到一定程度,而不是彻底毁灭,以较少用例、时间和人力找出软件中各种错误和缺点,以确保软件质量,以更少支出(需求变更、维护、客服等成本)来谋取收入支出比到达最大化。,16/104,软件测试目标,最终目标是确保软件功效符适用户需求,把尽可能多问题在公布或交付前发觉并更正:,确保软件完成了它所承诺或公布功效,(缺乏规范书面文档?),确保软件满足性能要求(界面、操作、性能),确保软件是健壮和适应用户环境,(哪怕不健壮,也要给出处理方案),17/104,测试目标,为软件质量评定提供依据,(项目验收),为软件质量改进
6、和管理提供帮助,(经验教训等知识转移),18/104,软件测试标准,Good-enough,:一个权衡投入/产出比标准,:选择测试,确保测试覆盖程度,但穷举测试是不可能,:有限测试,全部测试都应追溯到用户需求,越早测试越好,测试过程与开发过程应是相结合,测试规模由小而大,从单元测试到系统测试,为了尽可能地发觉错误,应该由独立第三方来测试,不能为了便于测试私自修改程序,既应该测试软件该做什么也应该测试软件不该做什么,传统瀑布模型中软件测试学仅处于运行维护阶段之前,19/104,软件测试规律,木桶原理:,软件质量关键原因是分析、设计和实现,测试应该是融于其中补充检验伎俩,其它管理、支持、甚至文化原
7、因也会影响最终软件质量(,比如:老板不诚信),测试是提升软件质量必要条件,最直接、最快捷伎俩,但决不是一个根本伎俩,2,个角度:木桶原理与反木桶原理?,20/104,软件测试规律,Bug,80-20标准,在分析、设计、实现阶段复审和测试工作能够发觉和防止80%,Bug,(提前测试),而系统测试又能找出其余,Bug,中80%,最终5%,Bug,可能只 有在用户大范围、长时间使用后才会曝露出来,21/104,软件测试规律,80/20标准,1.80%工程量用在20%需求上,(关键需求,),2.80%开发成本花费在20%部件上,3.80%错误是由20%部件引发,4.80%延期或返工是由20%变更造成,
8、5.80%系统资源是由20%部件消耗,6.80%进度是由20%人完成,22/104,软件测试重点,测试用例,良好设计,测试用例设计是整个软件测试工作关键,测试用例反应对被测对象质量要求,决定对测试对象质量评定,23/104,软件测试重点,测试工作管理,尤其是对包含多个子系统大型软件系统,其测试工作包括大量人力和物力,有效测试工作管理是确保有效测试工作必要前提,测试环境建立,测试环境应该与实际测试环境一致,24/104,软件测试质量,软件测试能够发觉以下软件缺点:,软件实现功效不正确,“缺乏”:软件没有实现某项功效,“多出”,软件实现某项功效在需求中没有定义,发觉第一类软件缺点过程-“验证”,发
9、觉后两类软件缺点过程-“确认”,“验证”和“确认”哪一个更主要?“确认”有必要吗?,25/104,软件测试度量,1,、测试覆盖率,有多少需求、代码已经被测试了,2,、缺点发觉率,缺点是何时被发觉,而且有多少缺点已经被发觉。缺点能够依据严重性来分类。需统计以下值:,缺点数目,缺点严重性,26/104,软件测试度量,3,、测试成功率:,有多少测试已经经过了,而且有多少是运行正常?需统计以下值:,已经过测试用例数目,可利用测试用例数目,27/104,软件测试分类,经典软件测试类型,功效测试,可靠性测试,容错性测试,恢复测试,易用性测试,性能测试,可维护性测试,可移植性测试,安全性测试,用户文档测试,
10、28/104,课程内容,软件测试基本概念,软件测试误区,软件测试技术,软件测试方法,软件测试流程,软件测试过程,微软软件测试介绍,29/104,软件测试误区,软件开发完成后进行软件测试;软件测试,=,程序测试;,软件质量问题是测试人员错误,软件公布后假如发觉问题,那是软件测试人员错;,测试技术要求不高,比编程轻易,随便找一个人就能够了;,测试跟着开发动,有时间就多测,没时间就少测;,测试是测试人员事,与开发人员无关;,软件测试是没有前途工作,只有程序员才是软件高手;,测试要执行全部可能输入;,好测试一定要使用很多测试工具。,30/104,软件测试工程师素质,基本素质:,沟通能力、自信心、幽默感
11、记忆力,、耐心、怀疑精神、自我督促,洞察力,广泛经验,表示能力、问题描述能力,会提问,会寻求,Help,逻辑思维能力,团体协作能力,处理日常事务能力和处理突发事件能力,31/104,软件测试工程师素质,专业素质:,对于系统测试,把握需求是第一位。对产品熟练,能够快速熟悉新产品需求,很强需求了解能力显得很主要;(业务素质、需求分析能力),测试基础:明确测试流程中各个阶段工作,对测试认知程度,决定了测试流程管理规范性,测试工作质量;,测试方案分析设计能力、,测试案例设计能力,(,测试案例覆盖率、优先级等,),;,测试工具使用,(,包含测试管理和测试执行工具,也包含开发工具能力,),;,编程能力,
12、数据库知识,网络知识,操作系统知识;,团体协作能力,与各个小组之间沟通能力,以及管理测试工作能力。,32/104,软件测试工程师分类,测试工程师普通分为两类:测试工具软件开发工程师和软件测试工程师。,-,测试工具软件开发工程师主要负责编写测试工具代码,并利用测试工具对软件进行测试或开发测试工具为软件测试工程师服务。,-,软件测试工程师主要负责了解产品功效要求,然后对其进行测试,检验软件有没有错误,决定软件是否含有稳定性,并写出对应测试规范和测试案例。,33/104,课程内容,软件测试基本概念,软件测试误区,软件测试技术,软件测试方法,软件测试流程,软件测试过程,微软软件测试介绍,34/104,
13、软件测试技术,35/104,口腔管理系统,病人卡片,电子病历,健康档案,财务管理,器械管理追踪,病人卡片,B,病历卡片,Q,修复,卡片,1,正畸,卡片,N,健康档案,M,病史,卡片,护理卡片,病历卡片,Q,主述,病史检验,X,光片,首次诊疗,治疗计划,治疗纪录,病历卡片,P,主述,病史检验,X,光片,首次诊疗,治疗计划,治疗纪录,护理卡片,A,护理,1,护理,2,护理,3,护理,4,护理,5,护理卡片,B,护理,1,护理,2,护理,3,护理,4,护理,5,其它卡片系统,病人卡片,A,病历卡片,P,修复,卡片,1,正畸,卡片,R,健康档案,N,病史,卡片,护理卡片,其它卡片系统,牙医管理软件建设
14、规划图,36/104,思索:,1,、怎样实现这种复杂数据库关系?现在关系型数据库能够实现吗?主要困难是什么?,2,、统计某个口腔疾病患者某次医疗统计是简单。不过假如要统计某一个病人整年医疗统计,将会遭遇以下困难:,(,1,)需要花费,2,周编写复杂,SQL,语句,假如数据库内容有改变,调试这些,sql,语句困难。,(,2,)因为共享数据库,这些长时间读操作和运算操作势必影响到日常其它医生工作。,怎样处理?,37/104,软件测试技术,黑盒测试/白盒测试,-,从要不要看代码部分来区分,动态测试/静态测试,-,从要不要运行软件来区分,38/104,黑盒测试和白盒测试,什么是黑盒测试(,Black-
15、box Testing,),功效测试,数据驱动测试:是在已知软件产品含有何种功效前提下,用来检验每个功效是否能够正常使用一个测试方法。,测试方法和原理:把程序看成是一个不能打开黑盒子,在不考虑程序内部结构情况下,测试人员用操作接口方式进行测试,检验程序能否按照需求指定功效接收输入数据产生正确结果。,黑盒测试主要在开发后期进行。基于对需求、设计、用户要求了解,黑盒测试关注输入、输出信息域,而不关注软件内部结构,黑盒测试是穷举输入测试,39/104,黑盒测试和白盒测试,什么是白盒测试,白盒测试也称结构测试或逻辑驱动测试,必须知道软件内部工作过程,经过测试来检测软件内部是否按照需求、设计正常运行,经
16、过逻辑覆盖、路径覆盖等方式选择测试用例,能够用测试覆盖率评价测试用例,白盒测试法是否能够用穷举逻辑或路径法来测试?,40/104,黑盒测试和白盒测试,P,IN,OUT,白盒测试,:,黑盒测试,:,41/104,黑盒测试和白盒测试,黑盒测试主要工作:检验实现功效与实际需求满足程度;(确认和验证过程),白盒测试主要工作:,-,代码检验(语法、逻辑、书写),-,静态结构分析(内部关系如系统结构、函数调用关系等),-,功效确认与接口分析,(主要是确认过程),-,逻辑覆盖率分析(内部执行路径、提升软件可靠性),-,性能与效率分析,-,内存分析(内存泄露、内存越界等),42/104,动态测试和静态测试,静
17、态测试,不执行程序来寻找代码中存在错误或评定代码过程。由人工来进行,发挥了人逻辑思维优势或测试经验。能够批量性地发觉问题,并直接定位到缺点或错误详细位置。,用静态测试来进行代码检验、静态结构分析。,动态测试,必须生成测试数据来运行被测试程序,取得程序运行真实情况、动态情况,进而进行分析测试质量依赖于测试数据,生成测试数据、分析测试结果工作量大,使开展测试工作费时、费劲、费人,43/104,动态测试和静态测试,静态测试,静态测试不实际运行软件,主要是对软件编程格式、结构等方面进行评定,静态测试包含代码检验、程序结构分析、代码质量度量等。它能够由人工进行,也能够借助软件工具自动进行,代码检验比动态
18、测试更有效率,能快速找到缺点,发 现30%70%逻辑设计和编码缺点,44/104,课程内容,软件测试基本概念,软件测试误区,软件测试技术,软件测试方法,软件测试流程,软件测试过程,微软软件测试介绍,45/104,手工测试和自动测试,手工测试,自动测试,适合自动化测试操作,手工测试和自动测试比较,46/104,手工测试,传统测试方法,由测试人员手工编写测试用例,缺点在于测试工作量大,重复多,回归测试难以实现,47/104,自动测试,利用软件测试工具自动实现全部或部分测试工作:管理、设计、执行和汇报,自动测试节约大量测试开销,并能够完成一些手工测试无法实现测试,自动化测试前必须首先手工测试,(调试
19、缺点:无法及时进行动态调整和数理分析,比如:计算正确不代表逻辑性上没有错误;,48/104,适合自动化测试操作,测试用例生成(包含测试输入,标准输出,测试操作指令等),测试执行与控制(包含单机与网络多机分布运行;夜间及假日运行),测试对象、范围、版本等控制,49/104,适合自动化测试操作,测试结果与预期输出对比,不吻合测试结果分析、统计、分类、和通报,测试统计,报表产生,50/104,手工测试和自动测试比较,手工完成测试全部过程无法确保测试科学性与严密性:,修改缺点越多,回归测试越困难,没有些人能向决议层提供准确数据以度量当前工作进度及工作效率,重复测试带来倦怠情绪及其它人为原因使得测试
20、标准前后不一,测试花费时间越长,测试严格性也就越低,难以对不可视对象或对象不可视属性进行测试。,51/104,手工测试和自动测试比较,自动测试将测试人员从重复、烦杂测试执行中解放出来,用更多时间进行测试设计和结果分析,软件测试不可能完全自动化,不能完成全部手工测试任务,无创造性且灵活性差,不能改进测试有效性,过程中可能会碰到许多意想不到问题,尤其是当软件不稳定时,测试脚本维护高,52/104,课程内容,软件测试基本概念,软件测试技术,软件测试方法,软件测试流程,软件测试过程,微软软件测试介绍,53/104,测试流程,单元测试,集成测试,系统测试,用户验收测试,回归测试,54/104,V,模型示
21、意图,55/104,单元测试,完成对最小软件设计单元模块验证工作,目标是确保模块被正确地编码,使用过程设计描述作为指南,对主要控制路径进行测试以发觉模块内错误,通常情况下是面向白盒,对代码格调和规则、程序设计和结构、业务逻辑等进行静态测试,及早地发觉和处理不易显现错误,56/104,单元测试,单元测试内容,接口测试,:确保进出单元模块数据流是正确。,内部数据结构,:确保暂时存放数据在算法执行过程中完整性,全局数据结构,:全局数据结构对单元模块影响应该审查,边界,:采取边界值分析技术,确保模块在边界条件和极限情况下正常执行,语句覆盖,:确保每个语句均执行一次,错误路径,:对全部处理错误路径进行测
22、试,57/104,集成测试,经过测试发觉与模块接口相关问题,目标是把经过了单元测试模块拿来,结构一个在设计中所描述程序结构,应该防止一次性集成(除非软件规模很小),而采取增量集成,58/104,集成测试,集成测试主要内容,API,API/,参数组合,子模块,59/104,系统测试,依据软件需求规范要求进行系统测试,确认系统满足需求要求,系统测试人员相当于用户代言人,在需求分析阶段要确定软件可测性,确保有效完成系统测试工作,60/104,系统测试,系统测试主要内容,全部功效需求得到满足,全部性能需求得到满足,其它需求(比如安全性、容错性,、,兼容性等)得到满足,61/104,用户验收,/,确认测
23、试,配置审查,确保已开发软件全部文件资料均已编写齐全,并分类编目,Alpha,测试,是由用户在开发者场所来进行,,Alpha,测试是在一个受控环境中进行,62/104,用户验收/确认测试,Beta,测试,由软件最终用户在一个或多个用户场所来进行,开发者通常不在现场,用户统计测试中碰到问题并汇报给开发者,开发者对系统进行最终修改,并开始准备公布最终软件,63/104,回归测试,当发觉并修改缺点后,或者在软件中添加新功效后,重新测试,用来检验被发觉缺点是否被更正,而且所作修改没有引发新问题,回归测试能够经过人工重新执行测试用例,也能够使用自动化捕捉回放工具来进行,64/104,回归测试,回归测试方
24、式,再测试全部用例,选择基线测试用例库中全部测试用例组成回归测试包,测试成本最高,基于风险选择测试,能够基于一定风险标准来从基线测试用例库中选择回归测试包,65/104,各阶段测试所使用方法技术,单元测试,白盒、自动、静态,集成测试,白盒、黑盒、自动、静态,系统测试,黑盒、自动、手工,用户验收,/,确认测试,黑盒、自动、手工,66/104,课程内容,软件测试基本概念,软件测试技术,软件测试方法,软件测试流程,软件测试过程,微软软件测试介绍,67/104,测试基本过程,一个规范化软件测试过程包含以下基本测试活动,确定软件测试计划、方案,设计和生成,测试用例,、准备,测试数据,执行测试,统计原始数
25、据,对缺点进行管理,生成软件测试汇报、缺点统计和报表,68/104,测试基本过程,69/104,测试基本过程,软件测试过程与整个软件开发过程基本上是平行进行,一个开发机构还应该制订软件测试规程,按照软件工程规范,定义各项活动目标和详细过程,70/104,测试基本过程示图,71/104,测试基本过程,测试计划,时间进度和人员安排、风险管理,测试范围确实定、测试数据生成,测试工具、方法选择和工具开发,测试完成标准,影响资源分配特殊考虑等,72/104,测试基本过程,测试方案,定义被测软件功效以及相关测试,并详细说明测试方法和策略,创建测试方案是开始测试设计第一步。测试方案定义应该基于需求分析和设计
26、文档,并遵从测试计划文档,73/104,测试基本过程,测试用例,为实施一次测试而向被测系统提供输入数据、操作或各种环境设置,控制着软件测试执行步骤,是对测试方案中每个测试项深入实例化,74/104,测试基本过程,接口与路径测试用例(单元测试),75/104,测试基本过程,功效测试用例(系统测试),76/104,测试基本过程,性能测试用例(系统测试、验收测试),77/104,测试基本过程,测试用例几条基本准则,测试用例代表性:,代表各种合理和不合理、正当和非法、边界和越界。以及极限输人数据、操作和环境设置等,。,测试结果可判定性,测试结果可再现性,78/104,测试基本过程,怎样编写/生成测试用
27、例,对于手动执行测试用例,确定测试用例,描述执行步骤及预期结果,对于可自动执行测试用例,采取工具录制回放脚本,性能测试工具,使用通用脚本语言,79/104,测试基本过程,软件测试执行,执行测试用例,统计原始测试数据,统计缺点,对所发觉缺点进行跟踪、管理和监控,80/104,测试基本过程,测试评定,结合量化测试覆盖率及缺点跟踪汇报,对整个软件质量、测试工作和软件缺点进行总结,对软件项目标质量和开发团体工作进度及工作效率进行综合评价,生成对应汇报或报表,81/104,测试基本过程,测试汇报,总结测试结果,经过与未经过测试用例,并对被测软件对象进行评定,测试总结:,评价软件质量,分析提交客户后缺点预
28、测分析,以及维护成本分析,对测试工作进行经验、教训、提议总结,82/104,测试基本过程,好测试汇报,针对检测内容,对网站功效完备性、系统安全性及系统性能进行专题定性分析;按照项目分类归并,对每一类错误或异常情况进行细致分析,指出问题存在位置、问题类型、问题严重程度、问题产生可能原因及错误归属方、问题整改大致所需时间等;,83/104,软件测试管理,测试管理从功效应用上可分为三部分:,测试管理控制对象编辑和管理,测试计划、测试用例、缺点汇报、测试总结汇报等,测试流程控制和管理,统计分析和决议支持,84/104,测试组织方式,小组,测试小组内部分为测试人员和支持人员(管理人员属于支持人员),测试
29、工作实体是测试小组和支持小组,分别由小组长全权负责。小组长向测试主管负责,测试组长是测试对外唯一接口,对内完全负责组员工作安排、工作检验和进度管理,85/104,测试组织方式,小组,支持小组负责测试后勤保障和日常管理工作:负责网络管理、数据备份、文档管理、设备管理和维护、员工内部培训、测试理论和技术应用、日常事务管理和检验等,测试组应该长久研究和跟踪竞争对手软件特征、性能、优缺点等。在需求分析、设计阶段应多多参加,86/104,测试运作方式,测试项目组关心系统测试流程:,项目组提交系统测试申请,给测试指定帐号,由专员检验文档格式和完备性,检验合格后交给该软件对应方向研究人员,评价其内容有效性和
30、真实性,检验合格后由测试主管审查并经过,成立测试组,指定测试组长,87/104,测试运作方式,测试组长/组员依据该软件需求汇报、测试计划和以往测试数据,制订测试方案,测试主管审核经过测试方案后,依据测试方案指定测试组组员,并由支持组完成其它支持任务,(,如:设备配置、测试数据库建立、网络权限修改,),88/104,课程内容,软件测试基本概念,软件测试技术,软件测试方法,软件测试流程,软件测试过程,微软软件测试介绍,89/104,微软企业软件测试介绍,基本思想,测试人员,测试文档,90/104,基本思想,测试人员任务就是站在使用者角度上,经过不停地使用和攻击刚开发出来软件,尽可能多地找出软件中存
31、在问题,91/104,基本思想,在测试时主要考虑以下几个问题:,测试要考虑到全部犯错可能性。同时要做一些不是按常规做操作,除了缺点之外,测试还应考虑性能问题,确保软件运行良好,速度稳定,没有内存泄露,不会出现软件运行越来越慢情形,测试要考虑软件兼容性,92/104,软件测试人员,软件测试人员分为:,测试工具软件开发工程师,软件测试工程师,管理层,93/104,软件测试人员,测试工具软件开发工程师主要负责编写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务,软件测试工程师主要负责了解软件功效要求,然后对其进行测试,检验软件有没有错误,决定软件是否含有稳定性,并写出
32、对应测试方案和测试用例,在微软内部,软件测试人员与软件开发人员比率普通为1.52.5左右,微软软件开发实践过程已经证实这种人员结构合理性,94/104,测试中使用测试文档,测试计划,测试方案,测试用例,缺点汇报,测试汇报,进度汇报、测试统计等,95/104,测试计划,测试计划和软件开发紧密相关,全部大型商业软件都需要完整测试计划,需要详细到每一个步骤,而且每一个部分都要符合规范要求,96/104,测试计划,测试计划包含内容:,概述,测试目标和公布标准,计划将测试领域,测试方法描述,测试进度表,测试资源,配置范围和测试工具,97/104,测试方案,测试方案用来描述在测试计划中确定软件测试领域测试
33、需求,编写测试方案,需要参考项目经理写软件规范,开发人员写开发计划,每个领域都应该有一份详细测试方案,所以还需要参考测试计划,98/104,测试方案,测试方案包含内容:,背景信息,被测试特征,功效考虑,测试考虑,测试流程,99/104,测试用例,测试用例是指描述怎样测试某一个领域文档,这些文档符合测试方案中需求说明,测试用例没有固定格式,100/104,测试汇报,测试管理人员以测试汇报形式向整个软件开发部门汇报测试结果及发觉缺点或错误,撰写测试汇报目标是为了让整个软件开发部门了解软件开发进展情况,以使缺点能够快速得到修复,测试汇报格式并无定式,要求能够完整、清楚地反应当前测试进展情况,明白易懂,无二义性,101/104,缺点汇报,测试人员以缺点汇报形式向开发人员汇报所发觉缺点或错误,撰写缺点汇报目标是为了使缺点能够得到修复,测试人员缺点汇报撰写好坏会直接影响到开发人员对缺点修复,102/104,缺点汇报内容,缺点名称,被测试软件版本,优先级与严重性,发觉缺点测试步骤,缺点造成后果,预计操作结果,其它信息,103/104,课后习题,第一题:,简述软件测试方法和策略,第二题:,简述软件测试流程与软件研发流程对应关系,写出每一个测试阶段主要内容。,104/104,






