软件测试与质量保证概述ppt课件_第1页
软件测试与质量保证概述ppt课件_第2页
软件测试与质量保证概述ppt课件_第3页
软件测试与质量保证概述ppt课件_第4页
软件测试与质量保证概述ppt课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件质量保证和测试软件质量保证和测试单元测试单元测试马永征2004.6.15单元测试单元测试Outlinen软件测试概述n单元测试n单元测试工具JunitEclipse单元测试单元测试软件测试概述单元测试单元测试内容软件测试定义、目的和作用衡量规范软件测试要素测试技术测试过程单元测试单元测试软件测试n概略n定义:为了发现程序的错误而执行程序的过程n软件测试是SQA的重要手段,属于软件工程领域n目前情况n软件测试的实际性大于实际性n软件测试实际体系尚不成熟n软件测试工具尚不成熟n软件测试效果对于个人的依赖性比较大单元测试单元测试软件测试n目的n为了寻觅错误,并尽能够地为修正错误提供更多的信息n为

2、了证明软件有错误,而不证明软件没有错误n作用n发现并管理缺陷n度量质量n评价任务效率和效果n预期工程风险单元测试单元测试内容软件测试定义、目的和作用衡量规范软件测试要素测试技术测试过程单元测试单元测试软件测试n衡量规范n多n可以找到尽能够多的、以致于一切的BUGn快n可以尽能够早地发现最严重的BUGn好n找到的BUG是关键的、用户最关怀的n找到BUG后可以重现找到的BUG,并为修正BUG提供尽能够多的信息n省n可以用最少的时间、人力和资源发现BUGn测试的过程和数据可以重用单元测试单元测试内容软件测试定义、目的和作用衡量规范软件测试要素测试技术测试过程单元测试单元测试测试技术不实践运转程序,而

3、是经过检查和阅读等手段来发现错误并评价代码质量的软件测试技术。也称为静态分析技术。实践运转程序,并经过察看程序运转的实践结果来发现错误的软件测试技术。在不知道程序内部构造,只知道程序规格的情况下采用的测试技术或战略。在知道程序内部构造的情况下采用的测试技术或战略。开发组内部进展的,采用讲解、讨论和模拟运转的方式进展的查找错误的活动。开发组内部进展的,采用讲解、提问并运用Checklist方式进展的查找错误的活动。普通有正式的方案、流程和结果报告。开发组、测试组和相关人员(QA、产品经理等)结合进展的,采用讲解、提问并运用Checklist方式进展的查找错误的活动。普通有正式的方案、流程和结果报

4、告。针对要求的程序功能,按照规范的流程进展的测试。针对要求的程序功能以外的其他要求,包括性能、平安、配置、负载等目的,按照规范的流程进展的测试。针对要求的程序功能、性能、平安、配置、负载等目的,基于破坏目的、按照阅历进展的随机测试。程序修正或者版本更新以后,为了确保以前正确的功能和其他目的仍旧正确,而重新进展的测试。在测试过程中,选择足够的测试用例,使得每一个可执行语句至少被执行一次。在测试过程中,选择足够的测试用例,使得程序中的每一个分支判别的每一种能够结果都至少被执行一次。在测试过程中,选择足够的测试用例,使得程序中的每一条能够执行的途径都至少执行一次。单元测试单元测试内容软件测试定义、目

5、的和作用衡量规范软件测试要素测试技术测试过程单元测试单元测试测试过程规格定义设计编码系统测试集成测试单元测试用户需求验收测试回归测试配置管理缺陷跟踪 单元测试单元测试测试过程n单元测试:Unit Testingn目的:n检验程序最小单元有无错误n接口、数据构造、边境、覆盖、逻辑n检验单元编码与设计能否吻合n时机:n编码完成后,首先要实施的测试n方法:n静态测试n白盒测试n责任:n开发工程师单元测试单元测试测试过程n集成测试:Integration Testingn目的:n检验组成系统的模块接口有无错误n代码实现的系统设计与需求定义能否吻合n时机:n主要的单元测试完成后,经常与单元测试同步进展n

6、方法:n黑盒测试n责任:n开发工程师n测试工程师单元测试单元测试测试过程n系统测试:System Testingn目的:n检验组成整个系统的代码、以及系统的软硬件配合有无错误n代码实现的系统与用户需求能否吻合n检验系统的文档等各种能否完好、有效n模拟验收测试的要求,检查系统能否符合用户的验收规范n时机:n多数集成测试完成后n方法:n黑盒测试n责任:n测试工程师单元测试单元测试测试过程n系统测试:System Testingn稳定期测试n目的:n度量能否可以终了测试n时机:n传统的系统测试完成后n方法:n黑盒测试n责任:n测试工程师单元测试单元测试测试过程n验收测试:Acceptance Tes

7、tingn目的:n使客户验收签字n系统能否符合事先商定的验收规范n时机:n系统测试完成后,在工程组看来开发和测试任务曾经全部完成,可以交付运用n方法:n黑盒测试n责任:n产品经理或其他高级经理n开发工程师n测试工程师n用户单元测试单元测试测试过程n回归测试:Regression Testingn目的:n验证程序修正或者版本更新以后,以前正确的功能和其他目的仍旧正确。n时机:n每次错误修正之后,或者版本更新之后n方法:n白盒测试/黑盒测试n责任:n开发工程师n测试工程师单元测试单元测试测试过程n缺陷跟踪:Defect Tracingn目的:n确保一切发现的错误被正确记录、分发、评价、封锁、统计n

8、时机:n从错误发现开场到错误封锁为止,每次错误形状修正之后n方法:n缺陷跟踪系统n责任:n开发工程师n测试工程师n测试经理n用户单元测试单元测试单元测试单元测试单元测试内容单元测试目的义务单元测试技术静态分析测试设计单元测试流程管理流程测试文档单元测试单元测试单元测试n概略n定义:n检验程序最小单位有无错误。普通在编码之后,由开发人员完成。n单元:软件开发中的最小的独立部分nC言语中的单元:函数或者是子过程nC+言语中的单元:类n目前情况:n实施效果非常好,但是实施阻力比较大(主要是人员和管理要素),普通只在关键的程序单元中实施n有比较系统的实际和方法,但也依赖于系统的特殊性和开发人员的阅历n

9、有大量的辅助工具,开发人员也经常本人开发测试代码和测试工具n主要运用白盒测试和静态分析,也运用黑盒测试单元测试单元测试单元测试n目的n1、检查代码实现能否符合设计n不能检查设计能否正确n2、尽早发现错误nMicrosoft applicationsn10-20 defects/KLOC during unit testingn0.5 defects/KLOC after releasen性价比最好单元测试单元测试内容单元测试目的义务单元测试技术静态分析测试设计单元测试流程管理流程测试文档单元测试单元测试单元测试n义务1、模块接口测试n检查进出模块的数据能否正确nChecklist:n模块的实践

10、输入与定义的输入能否一致n个数、类型、顺序n模块中对于非内部/部分变量能否合理运用n运用其他模块时,能否检查可用性和处置结果n运用外部资源时,能否检查可用性并及时释放资源n内存、文件、硬盘、端口等n其他单元测试单元测试单元测试n义务2、模块部分数据构造测试n检查部分数据构造能否坚持完好性nChecklist:n变量从来没有被运用n能够别的地方运用了错误的变量名n变量没有初始化n错误的类型转换n数组越界n非法指针n变量或函数称号拼写错误n运用了外部变量或函数n其他单元测试单元测试单元测试n义务3、模块边境条件测试n检查临界数据能否正确处置nChecklist:n普通合法数据能否正确处置n普通非法

11、数据能否正确处置n边境内最接近边境的(合法)数据能否正确处置n边境外最接近边境的(非法)数据能否正确处置n其他单元测试单元测试单元测试n义务4、模块独立执行通路(途径)测试n检查由于计算错误、断定错误、控制流错误导致的程序错误nChecklist:n死代码n错误的计算优先级n精度错误n比较运算错误n赋值错误n表达式的不正确符号n、=;=、=、!=n循环变量的运用错误n错误赋值n其他单元测试单元测试单元测试n义务5、模块内部错误处置测试n检查内部错误处置设备能否有效nChecklist:n能否检查错误出现n资源运用前后n其他模块运用前后n出现错误,能否进展错误处置n抛出错误n通知用户n进展记录n

12、错误处置能否有效n在系统干涉前处置n报告和记录的错误真实详细n其他单元测试单元测试内容单元测试目的义务单元测试技术静态分析测试设计单元测试流程管理流程测试文档单元测试单元测试单元测试技术n静态分析n定义:n不实践运转程序,而是经过检查和阅读等手段来发现错误并评价代码质量的软件测试技术。也称为静态测试技术。n方法:n走查:WalkThroughn审查:Inspectionn评审:ReviewMichael Fagan IBM(1976)单元测试单元测试单元测试技术n静态分析-走查n定义:n开发组内部进展的,采用讲解、讨论和模拟运转的方式进展的查找错误的活动。n阅历:n限时n防止跑题n参与人员n阅

13、历丰富的开发人员n和本模块相关的开发人员n本工程组的新人n由本模块的开发者进展讲解、回答以下问题并记录n不要现场修正n检查要点n逻辑错误n代码规范/规范/风格单元测试单元测试单元测试技术n静态分析-审查n定义:n开发组内部进展的,采用讲解、提问并运用Checklist方式进展的查找错误的活动。普通有正式的方案、流程和结果报告。n阅历:n以会议的方式,制定会议目的、流程和规那么,终了后要编写报告n参与人员n阅历丰富的开发人员n和本模块相关的开发人员n本工程组的新人n由另外一名开发者进展讲解、其他开发者主要按照Checklist进展提问并填表、本模块开发者回答以下问题并记录n不要现场修正n检查要点

14、n设计需求n代码规范/规范/风格单元测试单元测试单元测试技术n静态分析-评审n定义:n开发组、测试组和相关人员(QA、产品经理等)结合进展的,采用讲解、提问并运用Checklist方式进展的查找错误的活动。普通有正式的方案、流程和结果报告。n阅历:n以会议的方式,制定会议目的、流程和规那么,终了后要编写报告。相关资料要在会议前下发并阅读。n参与人员n阅历丰富的开发人员n和本模块相关的开发人员n测试组和相关人员n由另外一名开发者进展讲解、其他开发者主要按照Checklist进展提问并填表、本模块开发者回答以下问题并记录n不要现场修正n检查要点n设计需求n代码规范/规范/风格n文档的完好性和一致性

15、单元测试单元测试内容单元测试目的义务单元测试技术静态分析测试设计单元测试流程管理流程测试文档单元测试单元测试单元测试技术n测试设计n定义:n根据模块的内部构造,设计测试用例的过程。n主要采用白盒测试技术,关注逻辑覆盖n原那么:n1、保证没有死代码n保证一个模块中的每个独立途径都能够被运用到n2、保证对一切的逻辑值都测试true和falsen3、在上下边境和合法的范围内运转一切的循环n4、确保内部数据构造的有效性和完好性单元测试单元测试单元测试技术n测试设计n逻辑覆盖测试方法:n1、语句覆盖n选择足够的测试用例,使得程序中每一条可执行语句至少被执行一次。n2、断定覆盖n选择足够的测试用例,使得程

16、序中每一个分支判别的每一种能够结果(主要指switch-case情况)都至少被执行一次。断定覆盖也叫分支覆盖。n3、条件覆盖n选择足够的测试用例,使得程序中每一个分支判别中的每一个条件的能够结果都至少被执行一次。单元测试单元测试单元测试技术n测试设计n逻辑覆盖测试方法:n1、语句覆盖n2、断定覆盖n3、条件覆盖n4、断定/条件覆盖n选择足够的测试用例,使得同时满足断定覆盖和条件覆盖。n5、条件组合覆盖n选择足够的测试用例,使得程序中每一个分支判别中的每一个条件的每一种能够组合结果都至少被执行一次。n6、途径覆盖n选择足够的测试用例,使得程序中一切的能够途径都至少被执行一次。单元测试单元测试单元

17、测试技术n测试设计n逻辑覆盖测试方法:语句覆盖断定覆盖条件覆盖断定/条件覆盖条件组合覆盖途径覆盖单元测试单元测试内容单元测试目的义务单元测试技术静态分析测试设计单元测试流程管理流程测试文档单元测试单元测试单元测试流程n管理流程n主要指动态测试运用流程测试方案测试设计测试执行测试记录分析测试总结终了缺陷跟踪针对测试目的,规定测试义务、资源分配、人员角色、进度安排等。根据测试方案,设计测试用例,包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。根据测试方案,配置测试环境,并手动或者自动执行测试设计。根据测试方案,忠实地记录测试执行的过程和结果。分析测试记录,假设发现与预期结果不同,确定

18、并重现缺陷。检查测试设计能否全部执行终了,缺陷能否全部封锁。记录、分发、评价、封锁缺陷报告。分析测试过程和缺陷报告,评价测试质量和测试效果,给出能否经过测试的建议。单元测试单元测试内容单元测试目的义务单元测试技术静态分析测试设计单元测试流程管理流程测试文档单元测试单元测试单元测试流程n测试文档n主要指动态测试运用文档测试方案测试设计测试执行测试记录分析测试总结终了缺陷跟踪测试方案文档测试用例文档测试记录文档缺陷跟踪报告测试总结报告单元测试单元测试单元测试文档n测试方案n编号n如:ut-tp0016n标题n如:文字排版功能.字间距.MarchCalculatorn版本号n如:V1.0n执行形状n

19、如:未执行n修正记录n如:2003年7月1日;某某编制/修正;缘由n测试目的n如:语句覆盖n测试人员n如:某某1担任执行测试用例xxx;某某2担任执行测试用例xxxn测试用例编号(多个)n如:ut-tc00021/ut-tc00031/ut-tc00035n被测试单元代码位置n如:$tag1/layout/marchCal.cpp单元测试单元测试单元测试文档n测试用例n编号n如:ut-tc00016n标题n如:测试“文字排版功能.字间距.MarchCalculatorn版本号n如:V1.3n执行形状n如:曾经执行n修正记录n如:2003年7月2日;某某编制/修正;缘由n测试步骤n如:配置运转环

20、境;输入测试数据;执行X功能/测试代码;察看/记录XXn测试场景n如:在联网的环境下n测试代码n如:ut-tcc00021(位置)/ut-tcc00035(位置)n测试数据n如:输入数据(输入文件、文字描画);预期结果(性能、图片、文字描画)单元测试单元测试单元测试文档n测试记录n编号n如:ut-tr00016n标题n如:记录测试“文字排版功能.字间距.MarchCalculator结果n填写记录n如:2003年7月2日;某某填写;缘由n测试用例编号n如:ut-tc0016n输出结果n如:图片、文字描画n测试察看n符合/不符合期望结果单元测试单元测试单元测试文档n缺陷跟踪报告n编号n如:ut-

21、dt00016n标题n如:文字排版功能.字间距.MarchCalculator计算错误n版本号n如:V1.3n执行形状n如:空白/草稿/提交/审批/分发/正在修正/修正终了/正在确认/封锁n修正记录n如:2003年7月2日;某某编制/修正;缘由n测试环境和版本号码、程序编写人员n错误严重程度和优先级别n错误详细描画n重现步骤和方式、对应的测试记录编码n附件n建议修正方式n修正内容、结果及修正人员签字/日期n确认内容、结果及确认人员签字/日期单元测试单元测试单元测试文档n测试总结报告n编号n如:ut-tr00016n标题n如:文字排版功能.字间距.MarchCalculator单元测试总结报告n

22、版本号n如:V1.5n执行形状n如:曾经提交n修正记录n如:2003年7月3日;某某编制/修正;缘由n测试方案编号n方案执行情况n缺陷统计(缺陷总数/未处理数目)及为处理缺陷列表n后续处置措施n能否经过单元测试单元测试单元测试单元测试工具Junit单元测试单元测试What is JUnitnDe facto Java unit testing frameworknIntegrated nicely with IDEs and AntnEasy to learnnSupport many IDEsnJBuilder, VisualAge, Eclipse 单元测试单元测试实例npublic cl

23、ass Car npublic int getWheels ()nreturn 4;nn单元测试单元测试实例cont.npublic class TestCar npublic static void main(String args) nn Car car = new Car();nif (4 = car.getWheels()nSystem.out.println(Ok!);nelsenSystem.out.println(Error!);nn单元测试单元测试nimport junit.framework.TestCase;npublic class CarTest extends Tes

24、tCase nprotected Car car;nprotected int expectedWheels;nnpublic static void main(String args) njunit.swingui.TestRunner.run(CarTest.class);nn public CarTest(String arg0) nsuper(arg0);n实例cont.单元测试单元测试n protected void setUp() throws Exception ncar = new Car();nexpectedWheels = 4;nnn protected void tearDown() throws Exception nsuper.tearDown();nnnpublic void testGetWheels ()nassertEquals(expectedWheels, car.getWheels();nn单元测试单元测试JUnit Rules and ConventionsnSubclass TestCasenPrior to v3.8, String-arg constructor requirednTest methodsnpublic void testXXX() throws nAny number of assertions per meth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论