• 1. 软件测试技术 Software Testing Technology主讲教师:孙军梅博士 副教授 jmei_sun@yahoo.com.cn
  • 2. 课程主要内容第1部分 软件测试概述(What) 第2部分 软件测试基础(概念、原理、方法、步骤、工具)(How) 第3部分 软件测试实践(Application)
  • 3. 课程考核平时成绩:10%(包括出勤情况,课堂表现,书面作业) 实验成绩:30% 期末成绩:60%
  • 4. 国内软件测试专业网站http://www.51testing.com 51testing软件测试网 http://www.testage.net 测试时代 http://www.ccidnet.com 中国IT室验室 http://www.uml.org.cn UML软件工程组织 http://www.17testing.com 一起测试网 http://www.csdn.net CSDN IT技术社区 http://www.softtest.cn 中国软件测试在线
  • 5. 国外软件测试专业网站http://www.junit.org Junit网站 http://checkstyle.sourceforge.net http://www.parasoft.com http://cppunit.sourceforge.net http://www.mercuryinteractive.com http://www.rational.com http://www.compuware.com http://www.radview.com http://www.bugzilla.org
  • 6. 教学参考书Ron Patton著,《软件测试》Software Testing Second Edition(英文版 第2版)(美),机械工业出版社,2006 赵斌,软件测试技术经典教程,科学出版社,2007 古乐等编著,软件测试案例与实践教程,清华大学出版社 LoadRunner教程 QuickTest 使用指南 QualityCenter教程
  • 7. 第1部分 软件测试概述
  • 8. 教学目标了解为什么要学这门课?----why 掌握测试是做什么的?-------what(1) 了解软件测试的发展现状和测试人员的职业规划-------what(2)
  • 9. 软件缺陷与软件故障案例跨世纪“千年虫”问题 设计考虑不周全 美国航天局火星登陆事故 系统测试 衔接问题 爱国者导弹防御系统炸死自家人 系统时钟误差积累 迪斯尼的狮子王,1994~1995 兼容性问题 冲击波计算机病毒 Windows2000安全漏洞 ……
  • 10. 为什么会有这么多的事故?
  • 11. (本页无文本内容)
  • 12. 为什么要做软件测试?软件失败时,也许仅仅是给我们带来了不便,也可能是灾难性的。我们需要软件测试,来保障软件质量。
  • 13. (本页无文本内容)
  • 14. 什么是软件测试?有人说,软件测试就是在寻找软件中的Bug。这种说法对吗?
  • 15. 什么是Bug(缺陷)?软件的Bug就是指程序运行时出现的故障。这种说法对吗? 软件中(包括程序与文档)不符合用户需求的问题。(这是我们判断一个软件问题是否是Bug的唯一标准)。
  • 16. 什么是软件缺陷(Bug)?软件缺陷的定义 软件未达到产品说明书中已经标明的功能 软件出现了产品说明书中指明不会出现的错误 软件未达到产品说明书中虽未指出但应当达到的目标 软件功能超出了产品说明书中指明的范围 软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良
  • 17. Bug的3种类型完全没有实现的功能。 基本实现了用户需要的功能,但是运行时会出现一些功能或性能上的问题。 实现了用户不需要的功能,即多余的功能。
  • 18. 什么是软件测试?从软件质量保证的角度看 软件测试是一种重要的软件质量保证活动 测试过程中的活动包括分析软件和运行软件 也有人认为软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
  • 19. 什么是软件测试?1979年,MYERS在《软件测试艺术》(The art of software testing)书中给出定义:软件测试是为了发现软件缺陷而执行程序或系统的过程。 测试文档属于软件测试,但是它不一定需要执行程序。 我按照用户的需求测试了实际的系统,却一个缺陷也没有发现,我所做的测试工作有意义吗? 当然有意义,因为我至少证明了该系统基本符合用户的需求。
  • 20. 什么是软件测试?1983年IEEE对软件测试的定义: 使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。 明确提出软件测试以检验是否满足需求为目标。
  • 21. 什么是软件测试?软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。
  • 22. 软件测试的依据需求规格说明书; 相关的设计说明(概要设计,详细设计等); 已经基本成型的UI(可以有针对性地补充一些用例)。 代码 用户需求
  • 23. 软件测试的目的
  • 24. 测试是软件开发重要环节之一软件测试在软件生命周期中占据重要的地位; 软件测试是软件质量保证的重要手段之一
  • 25. 需要弄清楚的几个概念精确和准确 确认和验证 确认是保证软件符合产品说明书的过程; 验证是保证软件满足用户要求的过程。 质量和可靠性 测试和质量保证 软件测试的目标是尽可能地找出软件缺陷,并确保缺陷得以修复; 软件质量保证的职责是创建和执行改进软件开发过程并防止软件缺陷发生的标准和方法。
  • 26. 软件开发中的人员角色
  • 27. 软件测试和SQA的关系SQA(Software Quality Assurance,软件质量保障):为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。 做软件质量保障的具体工作人——QA
  • 28. 软件测试和SQA的关系SQA的工作: 通过监控软件开发过程来保证产品质量。 保证开发出来的软件和软件开发过程符合相应标准与规程(ISO9000或CMM) 保证软件产品、软件过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者。 确保项目组制定的计划、标准和规程适合项目组需要,同时满足评审和审计需要。
  • 29. 软件测试和SQA的关系CMM(Capability Maturity Model,能力成熟度模型)是SQA用来监督项目的一个标准质量模型。 1级 初始的 2级 可重复的 项目级 3级 定义的 具备了组织化思想,不仅仅是针对具体项目。 4级 可管理的 组织过程处于统计的控制之下。 5级 不断优化的
  • 30. 公司里测试部门的组织结构小公司组织结构
  • 31. 公司里测试部门的组织结构大公司组织结构项目部测试部
  • 32. 公司里测试部门的组织结构专业外包公司组织结构
  • 33. 软件测试发展历程20世纪50-60年代 软件测试才开始与调试区别开来,成为一种发现软件缺陷的活动 70年代以后 软件技术的成熟和完善使得软件测试的规模和复杂度加大,软件测试也逐渐形成了一套完整的体系,逐渐走向规范化。
  • 34. 20世纪80年代早期 质量的号角才开始吹响 20世纪90年代早期 测试工具终于盛行起来
  • 35. 软件测试的现状(国外)据统计,在欧美的软件项目中,软件测试的工作量占到项目总工作量的40%,软件测试的费用要占到项目总经费的30%,在微软,开发人员和测试人员的比例为1:1.5,BORLAND公司测试人员与开发人员的比例大概为1:1,比尔 盖茨曾说:人们都说我们是世界上最大软件开发公司,其实我们更是世界上最大的软件测试公司.
  • 36. 微软公司两个产品中开发人员和测试人员比例exchange2000windows2000项目经理25约250开发人员140约1700测试人员350约3200测试与开发人员比例2.51.9
  • 37. 软件测试现状(国内)与一些发达国家相比,国内测试工作还存在一定的差距。目前主要有3种形式: 第1种:为欧美和日韩的知名软件公司提供测试外包和人力外包服务,代表公司有博彦科技(客户为微软、惠普、NEC等),文思创新(客户为微软、 IBM),信必优等。这类公司属于专业化的测试公司,对员工的外语水平要求较高。 第2种:国内大型IT公司(如华为、亿阳)提供软件测试外包和人力外包服务,但因现在国内大多数公司都有自己的测试部门,故这种形式在逐渐减少。
  • 38. 第3种,也是最多的一种形式,就是国内软件公司下设软件测试部或质量保障部为公司自身开发的项目和产品进行测试和质量保障,其对测试人员的从业经验比较看重。
  • 39. 软件测试工程师待遇、职业发展
  • 40. (本页无文本内容)
  • 41. 据统计,软件测试工程师的缺口为20万人左右。
  • 42. 软件测试的原则
  • 43. 软件测试的原则
  • 44. (本页无文本内容)
  • 45. (本页无文本内容)
  • 46. (本页无文本内容)
  • 47. (本页无文本内容)
  • 48. (本页无文本内容)
  • 49. (本页无文本内容)
  • 50. (本页无文本内容)
  • 51. (本页无文本内容)
  • 52. (本页无文本内容)
  • 53. 软件测试是有风险的行为 我们的目标是找到最优的测试量,使测试不多不少。 测试无法显示潜伏的软件缺陷 你可以报告软件缺陷存在,却不能报告软件缺陷不存在。 并非所有软件缺陷都要修复
  • 54. (本页无文本内容)
  • 55. (本页无文本内容)
  • 56. (本页无文本内容)
  • 57. 软件测试人员的素质要求
  • 58. 软件测试人员的素质要求
  • 59. (本页无文本内容)
  • 60. 如何成为一名优秀的测试工程师练好内功 -------基础 熟悉各种武术招式-------各种测试技术 不断学习充电 阅读原版书籍 阅读缺陷管理系统中的缺陷报告 阅读高手写的测试用例 学习产品相关的业务知识
  • 61. (本页无文本内容)
  • 62. 提问:软件运行时产生的错误是Bug,这句话对吗? “软件测试能够保障软件的质量”,这句话对吗?软件测试和软件质量之间是什么关系? 哪个阶段引入的缺陷最多,修复成本又最底?
  • 63. 作业第1章课后小测验 P12 第3章课后小测验 P31 第21章课后小测验 P233 第22章课后小测验 P240(除第2题)