《软件测试教程 宫云战.pptx》由会员分享,可在线阅读,更多相关《软件测试教程 宫云战.pptx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1 章 软件测试概述1.1 计算机系统的软件可靠性问题1.2 软件测试的目的和意义1.3 软件测试过程1.4 软件测试与软件开发的关系1.5 软件测试的发展历程和现状1.6 我国软件测试产业现状1.7 软件测试工具第1页/共33页1.1 计算机系统的软件可靠性问题随着对计算机需求和依赖的与日俱增,计算机系统的规模和复杂性急剧增加,使得计算机软件的数量以惊人的速度急剧膨胀。与此同时,计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。第2页/共33页1
2、.1 计算机系统的软件可靠性问题千年虫问题爱国者导弹防御系统美国火星登陆事故Intel奔腾芯片缺陷Windows 2000安全漏洞第3页/共33页1.2 软件测试的目的和意义定义1:1983年IEEE(国际电子电气工程师协会)提出的软件工程标准术语中给软件测试下的定义是:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去执行程序,以发现软件故障的过程。该定义强调寻找故障是测试的目的。定义3:软件测试是一种软件质量保证活
3、动,其动机是通过一些经济有效的方法,发现软件中存在的缺陷,从而保证软件质量。第4页/共33页1.3 软件测试过程第5页/共33页1.3 软件测试过程1 单元测试目的:检测程序模块中有无故障存在对象:软件设计的最小单位,与程序设计和编程实现关系密切2 集成测试目的:发现与接口有关的模块之间的问题方法:非增式集成测试法和增式集成测试法第6页/共33页1.3 软件测试过程2 集成测试非增式集成测试法1.对每一个模块进行单元测试2.在此基础上按程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试增式集成测试法不断地把待测模块连接到已测模块集(或其子集)上,对待测模块进行测试,直到最后一个模块
4、测试完毕第7页/共33页1.3 软件测试过程3 确认测试目的:对软件产品进行评估以确定其是否满足软件需求的过程4 系统测试目的:针对系统中各个组成部分进行的综合性检验,证明系统的性能测试人员要求:系统开发人员不能进行系统测试。系统开发组织不能负责系统测试。第8页/共33页1.3 软件测试过程5 验收测试目的:向用户表明所开发的软件系统能够像用户所预定的那样工作主要任务:明确规定验收测试通过的标准;确定验收测试方法;确定验收测试的组织和可利用的资源;确定测试结果的分析方法;制定验收测试计划并进行评审;设计验收测试的测试用例;审查验收测试的准备工作;执行验收测试;分析测试结果,决定是否通过验收。第
5、9页/共33页1.4 软件测试与软件开发的关系141 软件开发过程正规的软件开发过程一般包括六个阶段,即:第一阶段 计划 第二阶段 需求分析 第三阶段 设计 第四阶段 程序编写 第五阶段 测试 第六阶段 运行和/维护 这六个阶段构成了软件的生存周期。第10页/共33页1.4 软件测试与软件开发的关系142 软件测试在软件开发中的作用项目规划阶段:负责整个测试阶段的监控。需求分析阶段:确定测试需求分析,制定系统测试计划。测试需求分析是指产品生存周期中测试所需的资源、配置、各阶段评审通过的标准等。概要设计和详细设计阶段:制定集成测试计划和单元测试计划。编码阶段:开发相应的测试代码或测试脚本。测试阶
6、段:实施测试,并提交相应的测试报告。第11页/共33页1.4 软件测试与软件开发的关系第12页/共33页1.4 软件测试与软件开发的关系143 软件测试过程模型1.软件测试过程V模型特点:非常明确地表明了测试的不同级别,清晰地展示了软件测试与开发之间的关系第13页/共33页1.4 软件测试与软件开发的关系2.软件测试过程W模型第14页/共33页1.4 软件测试与软件开发的关系144 软件测试环境的搭建测试环境是指用来运行软件的环境。测试环境硬件软件网络数据准备测试工具第15页/共33页1.4 软件测试与软件开发的关系硬件环境:主要是指PC机、笔记本电脑、服务器、各种PDA终端等。例如现要测试微
7、软的word 2003这一款软件,那么是在PC机上测试还是在笔记本电脑上测试?如果在PC机上测试,那么CPU是奔腾2.4G,还是赛扬1.7G?内存是DDR512M,还是SD128M?不同的机器类型,不同的机器配置,必然会导致不同的反应速度,因此测试一款软件时一定要考虑硬件配置。第16页/共33页1.4 软件测试与软件开发的关系软件环境:主要是软件运行的操作系统。比如word 2003是在Window 2003下检测,还是在Window XP下检测,这里可能会有兼容性的问题。第17页/共33页1.4 软件测试与软件开发的关系网络环境:主要指的是C/S结构还是B/S结构。例如要测试微软的outlo
8、ok 2003这一款软件,那么是在局域网里测,还是在互联网里测?如果在局域网中测,那么是在10M的局域网里测,还是在100M的局域网里测?不同的网络类型,不同的传输速度,必然会导致不同的收发速度,因此测试一款软件时也不能忽视网络的因素。第18页/共33页1.4 软件测试与软件开发的关系数据准备:主要指的是测试数据的准备。测试数据的准备应考虑数据量和真实性,即尽可能获取大量的真实的数据,包括正确和错误的数据。当无法取得真实数据时应尽可能模拟出大量的数据。第19页/共33页1.4 软件测试与软件开发的关系测试工具:目前市场上的测试工具很多,可分为静态测试工具、动态测试工具、黑盒测试工具、白盒测试工
9、具、测试执行评估工具、测试管理工具等,因此,对测试工具的选择是一个比较重要的问题,应根据测试需求和实际条件来选择已有的测试工具,或购买、自行开发相应的测试工具。第20页/共33页1.4 软件测试与软件开发的关系搭建软件测试环境还应注意以下几点:尽量模拟用户的真实使用环境;测试环境中尽量不要安装其它与被测软件无关的软件,但最好安装杀毒软件,以确保系统没有病毒;测试环境应与开发环境独立。第21页/共33页1.5 软件测试的发展历程和现状发展历程:上世纪50年代,英国著名的计算机科学家图灵就给出了软件测试的原始定义:测试是程序正确性证明的一种极端实验形式。直到上世纪70年代以后,随着计算机硬件技术的
10、进步与成熟,软件在整个系统中所占的地位越来越重要,软件规模和复杂性大大增加。软件可靠性面临前所未有的危机,给软件测试工作带来了挑战,测试的意义逐渐被人们认识,软件测试的研究开始受到重视,是软件测试技术发展最活跃的时期。1975年,Goodenough首次提出了软件测试理论,从而把软件测试这一实践性很强的学科提高到理论的高度。1982年,美国北卡来纳大学召开了首次软件测试技术会议,是软件测试与软件质量研究人员和开发人员的第一次聚会第22页/共33页1.5 软件测试的发展历程和现状现状:就目前软件工程发展的状况而言,软件测试仍然是较为薄弱的一个方面。不仅测试理论,已有的测试方法也不能满足当前软件开
11、发的实际需求。尤其是进入20世纪90年代后,计算机技术日趋成熟,软件应用范围逐步扩大,软件规模和复杂性急剧增加,与此同时,计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。第23页/共33页1.6 我国软件测试产业现状随着软件外包行业的逐渐兴起和人们对软件质量保障意识的加强,中国软件企业已开始认识到,软件测试的广度和深度决定了中国软件企业的前途命运。以占中国软件外包总量近85%的对日软件外包来说,业务内容基本都针对测试环节。软件外包中对测试环节的强化
12、,直接导致了软件外包企业对测试人才的大量需求。近年来,几乎所有的软件企业均存在不同程度的测试人才缺口,软件测试工程师已成为了亟待补充的关键技术工种之一。IBM、百度、华为、惠普、盛大网络、联想集团等国内外大型IT企业均表现出对成熟软件测试人才的期盼,而微软、三星、西门子、思科、华为3COM等多家国内外IT巨头则相继在全国各大高校招兵买马,并把软件测试人才的招聘放在了突出的位置。国内软件测试人才紧缺的现状已经凸现出来。第24页/共33页1.7 软件测试工具白盒测试工具静态测试工具职能:主要集中在需求文档、设计文档以及程序结构上,可以进行类型分析、接口分析、输入输出规格说明分析等。工具:McCab
13、e&Associates 公司开发的McCabe Visual Quality ToolSet 分析工具;ViewLog公司开发的LogiScope分析工具;Software Research公司开发的TestWork/Advisor分析工具及Software Emancipation公司开发的Discover分析工具,北京邮电大学开发的DTS缺陷测试工具等。第25页/共33页1.7 软件测试工具白盒测试工具动态测试工具职能:功能确认与接口测试、覆盖率分析、性能分析、内存分析等工具:Compuware公司开发的DevPartner软件、Rational公司研制的Purify系列等。第26页/共
14、33页1.7 软件测试工具黑盒测试工具工具:Rational公司的TeamTest,Compuware公司的QACenter。分类功能测试工具性能测试工具 第27页/共33页1.7 软件测试工具测试设计和开发工具测试设计:说明测试被测软件特征或特征组合的方法,确定并选择相关测试用例的过程。测试开发:将测试设计转换成具体的测试用例的过程。工具类型:测试数据生成器代表工具:Bender&Associates公司提供的功能测试数据生成工具SoftTest;Parasoft公司提供的C/C+单元测试工具Parasoft C+test等。基于需求的测试设计工具捕获/回放工具和覆盖分析工具 第28页/共3
15、3页1.7 软件测试工具测试执行和评估工具测试执行和评估:执行测试用例并对结果进行评估的过程,包括选择用于执行的测试用例、设置测试环境、运行所选择的测试、记录测试执行活动、分析潜在的软件故障并测量测试工作的有效性。工具类型捕获回放覆盖分析存储器测试 第29页/共33页1.7 软件测试工具测试管理工具测试管理:帮助完成测试计划,跟踪测试运行结果等。用途:测试用例管理缺陷跟踪管理配置管理代表工具:Rational公司的Test Manager、Compureware公司的TrackRecord等软件。第30页/共33页1.7 软件测试工具目前市场上主流的测试工具以MI,Rational和Compu
16、ware公司开发的软件测试工具为主导MI公司产品LoadRunnerWinRunnerTestDirectorQTIBM Rational公司产品Rational Robot(功能/性能测试工具)Rational Purify(白盒测试工具)Rational Testmanager(测试管理工具)Rational ClearQuest(缺陷/变更管理工具)Compuware公司产品自动黑盒测试工具QACenter自动白盒测试工具DevPartnerVantage应用级网络性能监控管理软件 第31页/共33页习题1什么是软件测试?软件测试的目的和意义是什么?软件测试与软件开发有何关系?简述软件测试过程。是否有必要在软件开发的各个阶段进行测试?若是,测试在软件开发各阶段的作用分别是什么?简述软件测试过程V模型和软件测试过程W模型的主要区别。搭建软件测试环境涉及哪几方面的内容?请概括静态测试与动态测试的不同点。系统测试和验收测试有何不同?我国软件测试的现状如何?你曾用过哪些测试工具?软件测试工具对软件测试有何影响?第32页/共33页感谢您的观看!第33页/共33页