【文档说明】第一章软件测试基础入门课件.ppt,共(99)页,3.107 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45249.html
以下为本文档部分文字说明:
第一章软件测试基础入门教学内容1.1、什么是软件测试?1.2、软件测试的重要性1.3、软件测试定义1.4、软件测试体系1.5、软件测试的基础理论1.6、软件测试技术的发展1.1、什么是软件测试?软件测试从杯具开始✓给你一只纸杯,你如何去做测试?1
.1、什么是软件测试?软件测试从杯具开始➢需求测试:查看杯子的使用说明➢界面测试:查看杯子的外观➢功能测试:装物体时漏或不漏,能不能喝到杯子中所装物体➢安全性测试:有没有毒或细菌➢可靠性测试:从高处落下杯子的损坏度➢可移植
性测试:在不同地方、温度是否可正常使用➢兼容性测试:装果汁、白水、酒精等➢易用性测试:是否烫手,防滑,方便使用➢疲劳测试:放24小时水➢泄漏时间和情况测试:装汽油24小时看泄漏时间和情况➢压力测试:放针不断加重,击穿1.2、软
件测试的重要性由2007年奥运会门票销售系统性能问题、2011年7.23动车追尾事件、2012.1月全国火车订票系统崩溃事件、2012.2.29广州市出租车计费表不能跳表事件所想到.......1.2、软件测试的重要性奥运会门票销售系统性能问题◼事件:➢2007年,奥运会
第二阶段门票开始预售,公众的奥运热情很高,承担此次售票的票务网站一小时浏量达800万次、每秒钟提交的站票申请20万张;呼叫中心一小时呼入200万人次....➢由于访问过大,导致售票系统速度慢、不能登录系统的情况
,最终整个系统崩溃。◼原因:➢系统性能测试严重不足1.2、软件测试的重要性7.23动车追尾事件◼事件:➢7·23甬温线特别重大铁路交通事故,2011年7月23日20时34分,北京至福州的D301次列车行驶至温州市双屿路段时,与
杭州开往福州的D3115次列车追尾,导致D301次1、2、3列车厢侧翻,从高架桥上掉落,毁坏严重,4车厢悬挂桥上,D3115次15、16车厢损毁严重。事故已造成40人死亡,200多人受伤。◼原因:➢由于温州南站信号设备在设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间信号机错误
显示为绿灯。1.2、软件测试的重要性2012.1月全国火车订票系统崩溃事件◼事件:➢春节,Hold不住的回家路,12年1月9日,铁道部官方订票网站www.12306.cn点击量超过14亿次,相当于所有中国人当天都点击了一次。由于访问量太大
,网站无法顺畅登录,最终导致崩溃。◼原因:➢网站耗资数千万未做过春运模拟演练。◼启示➢巨大的火车订票需求必然催生12306网站瘫痪的风险。有句话说得好,成长是要付出代价的。1.2、软件测试的重要性广州的士遭遇“闰年虫”发作锁死1500辆的士计费表◼事件:➢2012年2月29日是四年一遇的2月
29日,从凌晨起,广州50多家出租车公司约1500辆出租车的计价器出现故障。昨天上午,大量出租车集中在白云大道永泰路段的检测点等待维修,一度造成该路段交通拥堵。◼原因:➢某些2008年前版本的出租车计价器有缺陷,在闰年无法将时间跳至2月29日,导致发生了时间性锁表故障。1.
3、软件测试定义软件测试的历史◼二十世纪70年代以前:边想边测试。◼70年代末~80年代中期:基础理论和几已经形成,作为质量保证。◼80年代末~90年代中期:测试工具在质量和数量上不断增长,测试自动化开始广泛应用。◼90年后期:关注有效的过程程管理对软件测试的重要性,形成各种测试模型。
◼二十一世纪初:软件开发活动应该以测试为主导的思想。随着软件测试分工的细化和成熟,促使大量的软件测试服务机构涌现,从单一第三方测试到参与整个软件过程的测试服务。1.3、软件测试定义软件测试的历史发展过程◼1、软件调试◼2、独立的软件测试◼3、定义软件测试◼4、软件测试成为专门学科◼5
、开发与测试的融合1.3、软件测试定义软件测试的发展趋势1.软件测试技术进入快速发展轨道2.自动化软件测试技术应用越来越普遍3.测试技术不断细分①WEB应用测试②手机软件测试③嵌入式软件测试④安全测试⑤可靠性测试1.3、软件测试定义如何学
好软件测试?——学习建议◼从工作类型看手工测试和用例设计占的比重相当大。◼在学习中,要避免“重工具不重过程”、“重使用不重思维”的误区。◼工具只是为实现某种测试目的的手段,并非掌握的工具越多越好。◼只有对软件系统、测试理论越来越深入的理解,才能更好地把握测试。准备工作
◼要测的系统?◼要做哪方面的测试?◼基本实现思路?开展◼实现的方式与手段◼需要的资源(环境、工具、人力…)◼文档管理收尾◼撰写报告,收集统计数据,结论…如何开始测试?1.3、软件测试定义业务分析需求定义架构设计详细设计编程和单元测试系统测试发布/部署开发流程测试流程
需求可测试性评审用户沟通测试分析和设计测试策略缺陷跟踪功能测试计划、设计及其评审非功能测试计划测试环境搭建部署验证计划单元测试集成测试测试脚本开发测试具体脚本测试执行测试结果分析产品质量评估测试报告覆盖软件开发全过程1.3、软件测试定义测试&开发的同步关系1.3、软件测试定义软件测
试概念的演化◼1979年,GlenfordMyers的《软件测试艺术》的定义:测试是为发现错误而执行的一个程序或者系统的过程。◼1983年,BillHetzel在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活
动,测试是对软件质量的度量。◼Rick和Stefan在《系统的软件测试》一书中对软件测试的定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。1.3、软件测试定义1983年IEE
E(InstituteofElectricalandElectronicsEngineers)国际电子电气工程师协会提出的软件工程标准术语中给软件测试下的定义是:使用人工或自动手段来运行或测定某个系统的过程,其
目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。我们把软件测试定义为在程序中找出故障的过程,使测试成为可以做到的任务,从而克服了心理上存在的问题。因此,对软件测试人员而言,测试的最好定义是:软件测试是为了发现错误而执行程序的过程。1.3、软件测试
定义狭义观点vs.广义观点◼狭义观点G.J.Myers所给出了测试定义——“程序测试是为了发现错误而执行程序的过程”。瀑布模型◼广义观点将测试延伸到需求评审、设计审查活动中去。由静态测试和动态测试构成一个全过程的、完整
的软件测试1.3、软件测试定义辩证观点◼验证软件是“工作的”,以正向思维,针对软件系统的所有功能点,逐个验证其正确性。◼证明软件是“不工作的”,以反向思维方式,不断思考开发人员理解的误区、不良的习惯、程序代码的边界、无效数据的输入以及系统的弱点,试图破坏系统、
摧毁系统,目标就是发现系统中各种各样的问题。1.3、软件测试定义软件测试的其它观点◼风险观点:软件测试是对软件系统中潜在的各种风险进行评估的活◼经济学观点:一个好的测试用例是在于它能发现至今未发现的错误。缺陷发现得越早,所造成得代价就越低,这就是从经济学的观点来说明测试越早越好。◼标准
观点:软件测试就是“验证(Verification)”和“有效性确认(Validation)”活动构成的整体,即软件测试=V&V1.3、软件测试定义软件测试vs软件调试◼软件测试=软件调试?◼×。两者并不等价◼软件调试:开发时发现错误后
消除错误的过程◼软件测试:主要目的是寻找缺陷(不包括修正)◼调试必须由开发人员自己完成,测试则不一定1.3、软件测试定义软件测试是干嘛的?◼找Bug◼判断:软件测试员的工作的主要目的是验证软件是否能实现要求的功能。◼错。软件
测试员的主要工作是发现bug。◼无论再充分的实验,也无法验证一个软件的完全正确性,因此假如让测试员来“验证”其实是一项无穷尽的、不可能的工作。1.3、软件测试定义讨论:若仅仅测试程序是否按其方式运行,可能发生什么问题?举例说明◼用户不一定遵守规则,测试员需要知道假如用户不守规则将可能出
现什么后果。否则,将遗漏某些缺陷并造成严重后果,因此,在测试中需要全面的考虑1.3、软件测试定义计算器的例子◼计算器说明书:该计算器将准确无误地进行加、减、乘、除运算。计算器不会出现崩溃、死锁或停止反应。(1)2+3,没有反应?(2)随意敲击键盘后,没有了反应?(3)还能计
算某数的平方根(4)因为电池没有电,所以计算错了(5)按键很小、显示屏看不清楚1.4、软件测试体系1.4、软件测试体系质量缺陷软件测试阶段管理思想质量用例方法目标1.4、软件测试体系高质量的软件应该是相对的无产品缺陷(B
ugFree)或只有极少量的缺陷、满足客户需求的、是可维护的,而且它能够准时交给用户、其费用是在预算内的。但是,有关质量的好坏最终评价依赖于用户的反馈。产品质量过程质量1.4、软件测试体系软件产品质量的需
求◼功能性需求PRD/MRD,UIMock-up,FunctionalSpec也可称为可说明性◼非功能性需求性能、安全性、可用性、兼容性、可靠性、易用性、可达性(Accessibility)等1.4、软件测试体系测试目标(质量需求)缺陷软件测试阶段管理思想质量用例方法目标可靠性测试
可用性测试兼容性测试安装测试恢复测试安全性测试性能测试功能测试国际化测试本地化测试1.4、软件测试体系测试方法缺陷软件测试阶段管理思想质量用例方法目标单因素?多因素?1.4、软件测试体系测试用例重点缺陷软件测试阶段管理思想质量用例方法目标测试执行测试数据测
试环境测试套件测试脚本测试工具手工测试自动化测试1.4、软件测试体系缺陷缺陷软件测试阶段管理思想质量用例方法目标缺陷报告缺陷生命周期缺陷跟踪趋势分析分布分析缺陷清除率质量评估缺陷预防1.4、软件测试体系缺陷◼软件的Bug,
狭义概念是指软件程序的漏洞或缺陷◼广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差异的功能实现等。1.4、软件测试体系什么是软件缺陷?(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说
明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指明的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。1.4、软件测试体系测试思想质量文化客户
需求质量保证测试现实测试原则测试驱动成熟度模型缺陷软件测试阶段管理思想质量用例方法目标1.4、软件测试体系测试管理缺陷软件测试阶段管理思想质量用例方法目标测试策略测试风险资源进度测试计划实验室测试团队测试覆盖测试报告与模板1.4、
软件测试体系测试阶段缺陷软件测试阶段管理思想质量用例方法目标需求审查设计审查单元测试集成测试系统测试验收测试α/β测试回归测试冒烟测试1.4、软件测试体系软件测试全过程(1)1.4、软件测试体系软件测试全过程(2)1.4、软件测试体系-系统
测试1.4、软件测试体系-工作模型产品质量标准测试流程测试工程方法测试项目测试活动测试项目管理测试工具平台测试基本概念测试规范标准效统提升职业化统一基础测试项目是核心,质量标准、测试流程、测试技术都是为测试项
目提供支撑和服务的1.4、软件测试体系软件测试工具体系1.4、软件测试体系测试管理工具:◼TD、QC、Rational系列性能测试工具:◼loadRunner、JMeter功能自动化测试工具:◼QTP、Robot缺陷管理工具:◼TD、QC、
Mantis1.4、软件测试体系软件测试方法论体系1.5、软件测试的基础理论软件测试的目的◼测试的目的就是发现软件中的各种缺陷◼测试只能证明软件存在缺陷,不能证明软件不存在缺陷◼测试可以使软件中缺陷降低到一定程度,而不是彻底消灭◼以较少的用例、时间和人力找出软
件中的各种错误和缺陷,以确保软件的质量1.5、软件测试的基础理论测试的目标◼最终目的是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正:-确保软件完成了它所承诺或公布的功能-确保软件满足性能的要求-确保软件是健壮的和适应用户环境的1.5、软件测试的基础理论测试的目标◼为软
件的质量评估提供依据◼为软件质量改进和管理提供帮助1.5、软件测试的基础理论软件测试的对象◼软件测试应贯穿于软件定义和开发的整个期间需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格
说明、概要设计规格说明、详细设计规格说明以及源程序,都应做为软件测试的对象1.5、软件测试的基础理论What's'Bug’——“名留青史”的飞蛾1.5、软件测试的基础理论What’s‘Bug’?◼软件的Bug,狭义概念是指软件程序的漏洞或缺陷◼
广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差异的功能实现等。1.5、软件测试的基础理论软件缺陷定义◼从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系
统所需要实现的某种功能的失效或违背。⚫表现:◼1、软件没有实现产品规格说明所要求的功能模块◼2、软件中出现了产品规格说明指明不应该出现的错误◼3、软件实现了产品规格说明没有提到的功能模块◼4、软件没有实现
虽然产品规格说明没有明确提及但应该实现的目标;◼5、软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。1.5、软件测试的基础理论软件缺陷定义◼Bug(统称)◼Defect(瑕疵,缺点,可能不明显的b
ug)◼Fault(故障,相对稍严重一些的bug)◼Failure(必然导致运行失败的bug,较严重)缺陷不一定会产生运行失败1.5、软件测试的基础理论软件缺陷产生的原因图1软件缺陷产生的原因分布其他10%软件产品说明书(需求)56%编写代码7%设计27%1.5、
软件测试的基础理论软件缺陷产生的原因➢软件本身➢团队工作➢技术问题➢项目管理的问题…………⚫1.需求说明差⚫1.不切实际的时间表⚫3.测试不充分⚫4.不断增加功能⚫5.交流问题1.5、软件测试的基础理论软件缺陷产生的原
因◼使需求分析变得困难的几种原因:➢(1)客户说不清楚需求;➢(2)需求自身经常变动;➢(3)分析人员或客户理解有误。◼如何改善?进退两难——一个项目经理的日记1.5、软件测试的基础理论软件缺陷不同阶段的分布1.5、软件测试的基础理论软件测试和缺陷修复的代价◼软件在从需求、设计
、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。020406080100编制说明书设计阶段编写代码测试发布图2软件缺陷在不同阶段发现时修复的费用示意图1.5、软件测试的基础理
论软件测试和缺陷修复的代价$1$10$100designcoderelease$1000+specification1.5、软件测试的基础理论修复成本⚫问题发现的越早越好1.5、软件测试的基础理论练习:假如手头上没有任
何需求、设计文档和源代码,只拿到一个程序——假如是windows自带计算器程序。请思考:针对下图计算器的功能,如何进行测试?并思考以下几个问题:✓是否需要测试所有可能的运算?✓是否需要测试每一个运算符的运算?✓是否需要测试每一个按键?✓是否需要测试哪些特定的组合?✓Anyothers?1
.5、软件测试的基础理论软件测试的原则1、保证测试的覆盖程度,但穷举测试是不可能的例:测试windows计算机器原因:输入量太大输出结果太多软件执行路径太多软件说明书是主观的,没有客观标准。1.5、软件测试的基础理论软件测试的原则◼2、软件测试
是有风险的活动➢SoftwareTestingisaRisk-BasedExercise➢如果不选择完全测试所有情况,那就是选择了冒险✓Nottotesteverypossibletestscenario,Customerwilleventuallyf
inditsomeday.✓如:1024+1024=2048➢矛盾:✓Testingvs.Releasedeadline✓Stoptestingvs.Costlybug➢关键测试要点:✓把数量巨大的可能测试减少到可以控制的范围✓针对风险做出明智的选择,哪些测试重要
,哪些不重要1.5、软件测试的基础理论软件测试的原则◼3、测试无法显示潜伏的软件缺陷和故障➢软件测试员可以报告软件缺陷存在,却不能报告软件缺陷不存在.➢可以进行测试,发现并报告软件缺陷,但是任何情况下都不能保证软件缺陷
不存在.➢Whatcanyoudo?!✓唯一的方法:继续测试,找到更多的缺陷1.5、软件测试的基础理论软件测试的原则◼4.充分注意测试中的群集现象➢缺陷可能成群出现✓发现一个,附近就可能有一群✓缺陷一个接一个➢可能的原因:✓A.程序员也有心情不好的时候
✓B.程序员往往犯同样的错误✓C.有些软件故障可能是冰山一角1.5、软件测试的基础理论软件测试的原则◼5、测试的杀虫剂现象➢用于描述测试人员对同一测试对象进行的测试次数越多,发现的缺陷就会越来越少的现
象。就像老用一种农药,害虫就会有免疫力,农药发挥不了效力。这种现象的根本原因就是测试人员对测试软件过于熟悉,形成思维定势。1.5、软件测试的基础理论如何规避和解决杀虫剂现象:◼1、重新分析测试需求:重新对需求文档进行分析,找出不同的业务逻辑。尤
其是组合条件较复杂的逻辑和业务工作流。◼2、拓展测试用例:根据新制定的测试需求,必须重新设计测试用例来进行检验。◼3、改变测试方法,加入更多的场景:很多问题是在长时间操作,反复进行业务交互后才产生的。1.5、软件测试的基础理论如何
规避和解决杀虫剂现象:◼4、在模块功能稳定的情况下,适当补充非功能性测试,在易用性、可靠性、稳定性等质量指标下,系统容易暴露更多的状况,很多是用例未考虑的情况。◼5、缺陷问题整理和归纳1.5、软件测试的基础理
论软件测试的原则◼6.并非所有的软件缺陷都要修复➢虽然测试员尽了最大的努力,但并非找到的所有软件缺陷都要修复。➢并非意味着软件测试员没有达到目的.➢解决办法✓依赖软件测试员的素质—进行良好的判断,根据风险决定哪些缺陷需要修复,哪些不需要修复。造成软件缺陷不能修复的原因:(1)时间不够(2
)不算真正的软件缺陷(3)修复的风险太大(4)不值得修复1.5、软件测试的基础理论软件测试的原则◼7、木桶原理:➢软件质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至文化因素也会影响最终软件的质量➢测试是
提高软件质量的必要条件,最直接、最快捷的手段,但决不是一种根本手段。反过来说,如果将提高产品质量的砝码全部押在测试上,那将是一个恐怖而漫长的灾难。1.5、软件测试的基础理论软件测试的原则◼8、Bug的8
0-20原则➢在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的Bug➢而系统测试又能找出其余Bug中的80%➢最后的5%的Bug可能只有在用户的大范围、长时间使用后才会曝露出来➢80%的Bug集中在20%功能模块上1.5、软件测试的基础理论软件测试的原则◼9.
软件测试必须有预期结果➢软件缺陷是经过对比而得出来的。没有预期结果的测试是绝不可以的。我们事先不知道或是无法肯定预期的结果,我们必然无法了解测试正确性。1.5、软件测试的基础理论软件测试的原则◼10.应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭(想想虫卵、小虫、大虫)1.
5、软件测试的基础理论软件测试的原则◼11.程序员应该避免检查自己的程序。➢Why?➢程序员从来不会承认自己写的程序有错误➢程序员的测试思路有明显的局限性➢多数程序员没有经过严格正规的职业训练,常忽视测试➢程序员无
良好的BUG跟踪和回归测试的习惯1.5、软件测试的基础理论软件测试的原则◼12追溯至用户需求◼13及时更新测试1.5、软件测试的基础理论软件测试的分类软件测试按照不同的划分方法,有不同的分类:◼按照软件测试用例的设计方法而论,软件测试可以分
为白盒测试法、黑盒测试法和灰盒测试法。◼按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。1.5、软件测试的基础理论测试类型——按测试过程分单元测试集成测试系统测试(确认测试、回归测试
、验收测试)单元测试——最低级别的测试,测试对象是软件的一个独立模块(通常是一个函数)。集成测试——测试若干个单元组合在一起后是否能够按既定意图协作运行确认测试——检验软件是否能按用户要求工作。回归测试——对被测过的程序在修改缺陷
后进行的重复测试,以发现是否引入新的缺陷验收测试——确定产品是否能够满足合同或用户所规定需求,让系统用户决定是否接受1.5、软件测试的基础理论测试类型——按测试目标分◼功能测试——系统能干什么。主要考虑软件的外部表现
。◼包括逻辑功能测试、界面测试、安全性测试、互操作性测试等◼性能测试——系统工作的怎样。包括并发测试、稳定测试、负载测试、压力测试等。◼其他非功能测试:易用性测试、可移植性测试、可维护性测试、兼容性测试等1.5、软件测试的基础理论测试类型——按测试人群分◼α(Alpha)测试——一个
用户在开发环境下进行的测试。也可以由开发机构内部的用户在模拟实际操作环境下进行。通常在开发现场进行,是受控制的环境下进行的测试。开发者在测试现场,随时记录错误情况和使用中的问题。◼β(Beta)测试——多个用户在实际使用环境下进行的测试。开发者不在测试现场,是在开发者无法控制的环境下
进行的现场、实时、随机的应用。1.5、软件测试的基础理论软件测试的分类随机测试单元测试界面测试容量测试安装测试易用性测试兼容性测试业务逻辑功能测试可靠性测试软件测试按阶段分集成测试验收测试确认测试系统测试按是否运行程序划分按是否查看代码划
分其它静态测试动态测试白盒测试灰盒测试黑盒测试回归测试冒烟测试功能测试性能测试并发测试压力测试负载测试性能测试安全性测试配置测试失败测试1.5、软件测试的基础理论软件测试的周期性软件测试的周期性是“测试->改错->再测试->再改错”这样一个循环过程,如下图1
-3所示。测试周期开发/改错改错测试周期改错串行方式开发者:…...开发者:并行方式测试者:开发/改错开发/改错最终回归测试回归测试1测试周期1……功能冻结代码冻结测试周期2图3软件测试的周期性1.5、软件测试的
基础理论软件测试关键问题◼(1)测试由谁来执行?(Who)➢通常软件产品的开发设计包括开发者和测试者两种角色。开发者:通过开发形成产品,如分析、设计、编码调试或文档编制等。测试者通过测试来检测产品中是否存在缺陷,包括根
据特定目的而设计测试用例、构造测试、执行测试和评价测试结果等。通常由开发者负责完成第一阶段的代码单元测试,而系统测试则由独立的测试人员或专门的测试机构进行。1.5、软件测试的基础理论软件测试关键问题◼(2)测试什么?➢软件产品
的组成:✓软件产品到底是什么?并不仅仅是从软盘或者光盘安装到计算机上的程序,还包括许多隐含的内容,容易被忽视,但这些也往往是包含软件缺陷的测试对象,需要软件测试员铭记在心!1.5、软件测试的基础理论软件测试关键问题◼软件测试对象:软件测试不仅仅是对程序的测试,而是贯穿于软件定义和开发的整个过
程。因此,软件开发过程中产生的需求分析、概要设计、详细设计以及编码等各个阶段所得到的文档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序,都是软件测试的对象。◼软件测试在软件生命周期,也就是从开发设计、运行、直到结束使用的全过程中,主要横跨以下两
个测试阶段:1.5、软件测试的基础理论软件测试关键问题◼第一阶段:单元测试阶段,即在每个模块编写出以后所做的必要测试。◼第二阶段:综合测试阶段,即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试等。◼研究表明,通常表现在程序中的
故障,并不一定是由编码所引起的,可能是需求分析,概要设计、详细设计等阶段的问题所致,要排除故障就必须追溯到前期的工作(这就涉及到下一个问题——什么时候进行测试)1.5、软件测试的基础理论软件测试关键问题◼(3)什么时候进行测试。➢测试可以是一个与开发并行的过程,也可
以是开发完成某个阶段任务后的的活动,即模块开发结束之后,还可以在各模块装配成为一个完整的程序之后再进行测试。1.5、软件测试的基础理论软件测试关键问题◼(4)怎样进行测试。➢对软件进行测试就是根据软件的功能规范说明和程序实现,利用各种测试方法,生成有效的测试用例,对软件进行测
试。1.5、软件测试的基础理论软件测试关键问题◼(5)测试停止的标准是什么➢从现实和经济的角度来看,对软件进行完全测试是不可能的。那么,什么时候停止测试呢?因为无法判断当前查出的故障是否为最后一个故障,所以决定什么时候停止测试是一
件很困难的事。测试完成的传统标准是分配的测试时间用完了或完成了所有的测试又没有检测出故障。但这两个完成标准都没有什么实用价值。➢实用的停止测试标准应该基于以下几个因素:➢成功地采用了具体的测试用例设计方法;➢每一类覆盖的覆盖率;1.5、软件测试的基础理论
软件测试关键问题◼(5)测试停止的标准是什么➢故障检测率(即每一单元测试时间内检测出的故障数)低于指定的限度。基于故障检测数量的标准必须注明故障的严重性程度。➢检测出故障的具体数量或消耗的具体时间等。➢常用的停止测试的标准有5类➢测试超过了预定的时间,停止测试;➢执行了所有测试用例但没有发
现故障,停止测试;➢使用特定的测试用例设计方法作为判断测试停止的基础;➢正面指出测试停止的要求,比如发现并修改70个软件故障;➢根据单位时间内查出故障的数量决定是否停止测试。1.5、软件测试的基础理论软件测试中的误区◼误区1调试和测试是
一样的◼误区2软件测试对象就是程序◼误区3软件测试是测试人员的事情,与开发人员无关◼误区4好的软件质量是通过测试得到的◼误区5把不合格的开发人员安排做测试◼误区6关注于测试的执行而忽略测试的设计◼误区7测试自动化是万能的◼误区8测试是为了证明软件的正确性1.6、软
件测试技术的发展软件测试技术的发展趋势:(1)软件验证技术(2)静态测试分析技术(3)测试数据的选择——主要对测试用例进行选择通常从下面几个方面评价测试用例的质量:检测软件缺陷的有效性、测试用例的可重用性、测试用例的经济性、测试用例的可维护性(4)集成化测试——研究如何实现软件测试
的自动化过程以及相关的一系列内容。1.6、软件测试技术的发展软件测试发展趋势◼全程软件测试,伴随着整个软件开发生命周期◼全程自动化测试,测试原来可以是这样的◼全程缺陷预防,测试工作已经不是那么重要敏捷测试(agiletest)94基于模型的测试95被测系
统可以通过模型来描述模型包括开始状态、转换和结束状态扩展有限状态机方法(EFSM)MSSpecExplorer模糊(FuzzTest)测试针对测试系统的随机数据输入数据驱动或事件驱动适用于安全性的测试96云测试(Cloudtest)分布式、可伸缩系统大数据量、大用户量虚
拟技术并行算法实时服务97InfrastructureasaService(IaaS)PlatformasaService(PaaS)SoftwareasaService(SaaS)THANKYOU!感
谢聆听