《软件测试技术 》课件课程简介及第1章软件测试基础_第1页
《软件测试技术 》课件课程简介及第1章软件测试基础_第2页
《软件测试技术 》课件课程简介及第1章软件测试基础_第3页
《软件测试技术 》课件课程简介及第1章软件测试基础_第4页
《软件测试技术 》课件课程简介及第1章软件测试基础_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

软件测试技术课程性质:专业必修课学时安排:54+10任课教师:联系电话:QQ:办公地点:1软件测试技术软件测试,What?

软件测试是为了发现错误而执行程序,软件测试通过的程序可以认为是基本安全的。2软件测试技术软件测试师的“钱”景:软件测试一般占整个项目开销的30%到50%!一般软件企业目前没有专门的软件测试师!国家的目标是软件测试师与程序员1:1!对软件测试师的要求更高!3软件类型开发成本按阶段分布%需求与设计实现测试控制软件462034航空航天软件342046操作系统331750科技计算软件442630商业应用软件442828课程导论本课程的学习任务本课程的主要教学内容学习本课程后达到的目的学习本课程所需的铺垫知识本课程的学习方法本课程的考核方法4本课程的学习任务通过学习本课程来了解软件测试领域的新知识、新技术和关键技能,同时学习软件测试领域最常用的相关工具软件的使用。5本课程的主要教学内容1软件测试基础2测试用例设计(单元测试)3软件缺陷管理4软件测试管理5软件功能测试6软件性能测试7测试实践6本课程的主要教学内容1软件测试基础2测试用例设计(单元测试)3软件缺陷管理4软件测试管理5软件功能测试6软件性能测试7测试实践7重点内容学习本课程后达到的目的能针对一个小型的被测试软件独立地或与他人协作完成测试工作。8学习本课程所需的铺垫知识软件工程和程序设计语言(C/C++、Java)。9本课程的学习方法本课程所涉及的软件工具较多,而且有的软件工具还涉及到在不同操作系统环境中的使用。要在理解的基础上学习这些软件工具,并且在学习过程中要学会举一反三。10本课程的考核方法期末考试占50%,平时占30%,实验占20%。说明:平时成绩评定见平时成绩考核方案。。。11第1章软件测试基础1.1软件与软件危机1.2软件测试基本概念1.3软件测试的分类1.4软件测试流程121.1软件与软件危机例1用C语言编写的实现“计算每个同学各门课程成绩的平均分”的程序。13程序在什么地方完成输入和输出?#include<stdio.h>voidmain(){ intscores[40]; inttotal,average; inti; total=0; for(i=0;i<40;i++){ scanf("%d",&scores[i]); total=total+scores[i];} average=total/40; printf("%d",average); getch(); }缺陷一:输入、输出没有提示。1.1软件与软件危机例1用C语言编写的实现“计算每个同学各门课程成绩的平均分”的程序。14能完成一个学生多少门课程的平均分求取?这个值是怎么提供的?#include<stdio.h>voidmain(){ intscores[40]; inttotal,average; inti; total=0; for(i=0;i<40;i++){ scanf("%d",&scores[i]); total=total+scores[i];} average=total/40; printf("%d",average); getch(); }缺陷二:课程门数不能改变。1.1软件与软件危机例1用C语言编写的实现“计算每个同学各门课程成绩的平均分”的程序。15当输入学生成绩时不小心输入了负数或非法字符,有没有应对方案?#include<stdio.h>voidmain(){ intscores[40]; inttotal,average; inti; total=0; for(i=0;i<40;i++){ scanf("%d",&scores[i]); total=total+scores[i];} average=total/40; printf("%d",average); getch(); }缺陷三:输入成绩为负或非法字符,没有错误提示,只是不能得到合理的结果。1.1软件与软件危机16既然程序有问题,那我修改!你的程序需要一个个输入成绩,但我的成绩保存在数据库。好,我再修改!我的成绩在教务处的服务器中,要通过网络访问,这个程序应该是web方式,在浏览器中运行。这么多要求,你怎么不早说?你在编程之前有真正了解过我的要求吗?。。。。。。。。。。。。1.1软件与软件危机什么是软件?17软件=程序?×1.1软件与软件危机18软件=程序+数据结构+文档程序是能够完成事先设计的功能和性能的可执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是程序开发、维护和使用有关的图文资料。1.1软件与软件危机19软件是:人的智力劳动成果;人的思维结果;计算机的逻辑部件,而不是物理部件。1.1软件与软件危机20软件的特性:(1)软件是一种逻辑实体,具有抽象性。(2)软件的开发和制造是一个统一的过程。(3)软件开发是一项经济活动。(4)软件不会磨损、老化,但会退化。(5)软件的复杂度随着规模的增大迅速增加。1.1软件与软件危机21软件危机:自20世纪60年代以来,软件的应用越来越广泛,需求越来越迫切,规模也越来越大,但是软件的生产率一直得不到提高,甚至出现了种种难以解决的问题,严重影响了软件产业的健康发展,这一系列现象被称为“软件危机”。随着硬件水平的不断提高、软件规模的不断扩大,维护软件成为了系统管理员的噩梦!1.1软件与软件危机22软件危机的表现:(1)软件开发的进度和成本难以预估和控制。1995年,美国共取消了810亿美元的商业软件项目,其中31%的项目未做完就被取消,53%的软件项目进度通常要延长50%的时间,只有9%的软件项目能够及时交付并且费用也控制在预算之内。1.1软件与软件危机23软件危机的表现:(1)软件开发的进度和成本难以预估和控制。微软公司2001年10月发布了WindowsXP系统,同时宣布启动Vista的开发,最初预计2003年完成。在经历了2005年初、2006年中的多次推迟,直到2007年1月31日才正式发布,历时五年,投入了60亿美元。1.1软件与软件危机24软件危机的表现:(1)软件开发的进度和成本难以预估和控制。

2008年上半年的统计数据显示,中国软件开发商不能按时完成软件开发任务的比率超过50%,只有6.7%的企业对项目有严格的基于预算的财务管理和核算体系。1.1软件与软件危机25软件危机的表现:(2)软件的质量和可靠性差。

1996年6月4日,欧洲航天局研制的阿里亚娜五型火箭(Ariane5)的初次航行产生了灾难性的后果。发射后仅仅37秒,火箭偏离它的飞行路径,爆炸并解体了。火箭上载有价值5亿美元的通信卫星,连同火箭本身6亿美元付之一炬。后来的调查显示,控制惯性导航系统的计算机向控制引擎喷嘴的计算机发送了一个无效数据。在将一个64位浮点数转换成16位有符号整数时,产生了溢出。在设计Ariane4火箭的软件时,软件开发人员小心地分析了数字值,并且确定该数据绝不会超出16位。不幸的是,他们在Ariane5火箭的系统中简单地重新使用了这一部分,而没有检查它所基于的假设。1.1软件与软件危机26软件危机的表现:(3)软件开发的结果常常不能满足用户需求。

美国政府统计署(GAO)2000年的数据:全球最大的软件消费商--美国军方--每年要花费数十亿美元购买软件,其中可直接使用的只占5%,另外5%需要做一些修改,其余90%都成了垃圾(Rubbish)。1.1软件与软件危机27软件危机的表现:(4)软件维护费用逐渐升高。1992年惠普公司的数据显示,80%的人员和60%的费用用于软件维护。维护需求来源于软件错误、硬件系统的迅速更新和用户需求的快速变化。1.1软件与软件危机28软件危机的表现:(5)软件产业发展落后于硬件的发展速度。软件开发的生产率提高速度则远远慢于硬件,平均只有硬件的6%,导致信息系统中软件的成本逐年上升,20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%。目前已经达到85%以上。1.1软件与软件危机29软件危机的表现:(6)对软件的需求越来越强,软件规模越来越大。

1992年,微软发布的第一个成功的Windows系统Windows3.1,其代码规模是250万行,Windows95上升到1500万行,Windows98有1800万行,WindowsXP则为3500万行,WindowsVista的代码行数达到了惊人的5000万行。Windows7开发从2006年开始启动,2009年10月22日正式发布,历时3年。1.1软件与软件危机30软件危机产生的原因:(1)软件开发人员继承下来的不良传统。不注重软件开发过程,忽视了分析、设计、测试、维护的工作。软件确实容易修改,但难以正确地修改且不引入新的错误。越到软件开发后期,软件修改的代价越大。对于进度已落后的软件开发计划,增加人员只会让其更加落后(Brooks法则)。缺少规范性,不注意信息交流,导致开发人员难以合作,软件难以维护。1.1软件与软件危机31软件危机产生的原因:(2)大型软件开发问题。大型软件开发项目需要组织很多的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确,有时还会产生误解。软件项目开发人员不能有效地、独立自主地处理大型软件开发的全部关系和各个分支,因此容易产生疏漏和错误,这也是导致软件危机产生的一个原因。1.1软件与软件危机32软件危机产生的原因:(3)用户需求难以明确。在软件开发出来之前,用户自己也不清楚软件开发的具体需求;用户对软件开发需求的描述不精确,可能有遗漏、有二义性,甚至有错误;在软件开发过程中,用户还提出修改软件开发功能、界面、支撑环境等方面的要求;软件开发人员对用户需求的理解与用户本来愿望有差异。1.1软件与软件危机33软件危机产生的原因:(4)缺乏正确的理论指导,缺乏有力的方法学和工具方面的支持。由于软件开发不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,缺乏正确的理论指导,缺乏有力的方法学和工具方面的支持,从而加剧了软件开发产品的个性化,这也是产生软件危机的一个重要原因。1.1软件与软件危机34消除软件危机的方法:(1)应该对计算机软件有一个正确的认识。(2)必须充分认识到软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。还有最重要的一点,及早开展软件测试工作对消除软件危机有很大的作用!

1.2软件测试基本概念35软件测试的发展历史:软件测试是伴随着软件的产生而产生的。早期因为软件规模小、复杂程度低,测试的含义比较狭窄,开发人员将测试等同于“调试”。到了20世纪80年代初,软件趋向大型化、复杂化,软件的质量越来越重要。这个时候,一些软件测试的基础理论和实用技术开始形成。1.2软件测试基本概念36软件测试的概念:BillHetzel在《软件测试完全指南》中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量”。1983年IEEE提出的软件测试的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。”1.2软件测试基本概念37软件测试的概念:软件测试(SoftwareTesting),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。——百度软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。1.2软件测试基本概念38软件测试的意义:软件测试的意义在于保证发布出去的产品达到了一定的质量标准。软件测试是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程;是SQA(softwarequalityassurance)的重要子域。1.2软件测试基本概念39软件测试的目的:软件测试的最终目的确保最终交给用户的产品的功能符合用户的需求,把尽可能多的问题在产品交给用户之前发现并改正。1.2软件测试基本概念40软件测试的原则:(1)所有的测试都应追溯到用户需求。(2)应尽早地和不断地进行软件测试。(3)在有限的时间和资源下进行完全测试。(4)测试只能证明软件存在错误而不能证明软件没有错误。(5)充分关注测试中的集群现象。(6)程序员应避免检查自己的程序。(7)尽量避免测试的随意性。1.2软件测试基本概念41软件测试的质量度量:软件测试质量度量的目的是改进软件测试的质量,提高测试效率,改进测试过程的有效性。开展软件测试质量度量,最关键的一项工作就是对软件测试人员的工作质量度量。1.3软件测试的分类42软件测试的分类:“白盒”测试与“黑盒”测试根据是针对软件系统的内部结构,还是针对软件系统的外部表现行为来采取不同的测试方法,分别称为“白盒”测试方法和“黑盒”测试方法。1.3软件测试的分类43软件测试的分类:②静态测试与动态测试

根据程序是否运行,测试可以分为静态测试和动态测试。1.3软件测试的分类44软件测试的分类:③手工测试与自动化测试:根据用人工的方法手动运行被测试软件还是用工具自动控制被测试软件运行将测试分为手工测试和自动化测试。1.3软件测试的分类45软件测试的分类:④基于生命周期的软件测试

温馨提示

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

评论

0/150

提交评论