• 1. 软件测试技术王占刚 办公室 : 一号楼319 电 话 : 24528069,13602084943 E-mail :wangzhangang@tjpu.edu.cn
  • 2. 教材软件测试 佟伟光 主编 人民邮电出版社,2008-5 软件测试(原书第二版): Ron Patton著,张小松等译 机械工业出版社,2006-4
  • 3. 关于职业Program ManagementProduct ManagementUser EducationLogistics ManagementDevelopmentTestingCommunication
  • 4. 关于行业行业现状:技术、厂商、潮流 2009年全国软件产业统计公报
  • 5. 2008中国软件测试从业人员调查报告
  • 6. 2008中国软件测试从业人员调查报告
  • 7. 2008中国软件测试从业人员调查报告
  • 8. 2008中国软件测试从业人员调查报告
  • 9. 2008中国软件测试从业人员调查报告
  • 10. 2008中国软件测试从业人员调查报告
  • 11. 2008中国软件测试从业人员调查报告
  • 12. 2008中国软件测试从业人员调查报告
  • 13. (本页无文本内容)
  • 14. 2008中国软件测试从业人员调查报告
  • 15. 2008中国软件测试从业人员调查报告
  • 16. 2008中国软件测试从业人员调查报告
  • 17. 第 1 章 软件测试概述 1.1软件、软件危机和软件工程
  • 18. 软件的定义软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。
  • 19. 软件的发展?
  • 20. SaaS ,云… 自动化编程 未来单纯的编码工作将逐渐消失,对软件工程的掌握会成为程序员这一行当的必需 。软件下一个阶段的思考
  • 21. 软件的分类软 件按功能分类按技术架构分类按照目标用户分类系统软件应用软件单机版软件网络版软件C/S结构软件B/S结构软件产品软件项目软件按开发规模分类大型软件中型软件小型软件
  • 22. 软件的特点软件是逻辑的,存在退化问题。软件产品硬件产品
  • 23. 软件的特点软件结构复杂,制造成本相当昂贵。 IBM360研制人员最多时达1000多人,耗时四年,费用为5亿美元。Vista 耗时近六年,费用60亿美元。
  • 24. 软件危机软件危机(Software Crisis )爆发于20世纪60年代末期,至今依然困绕着我们,软件危机的具体表现如下: 软件开发的进度难以控制,经常出现经费超预算、完成期限一再拖延的现象。 软件需求在开发初期不明确,导致矛盾在后期集中暴露,从而对整个开发过程带来灾难性的后果。 由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题。
  • 25. 软件工程1983年,IEEE的定义:软件工程是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。
  • 26. 经典的软件生存周期 软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括: 计划 分析 设计 实现 测试 运行与维护
  • 27. 瀑布模型(Waterfall Model)
  • 28. 快速原型模型 (Rapid Prototype Model)
  • 29. 增量模型 (Incremental Model)
  • 30. 螺旋模型(Spiral Model)
  • 31. 各种模型的比较模型优点缺点瀑布模型阶段清晰、强调需求过程单一不可逆,无法适应需求变化快速原型模型关注满足客户需求前期原型的开发需要投入一定的成本,不适应大型项目增量模型开发早期反馈及时,易于维护需要开放式体系结构,可能会设计差、效率低螺旋模型适应需求多变性,严格的风险控制过程复杂、管理成本高
  • 32. 1.2 软件缺陷1. 什么是软件缺陷(BUG) 软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。
  • 33. (本页无文本内容)
  • 34. 软件缺陷案例1.迪斯尼公司狮子王游戏软件兼容性问题 2.美国航天局火星登陆事故 3.跨世纪“千年虫”问题 4.爱国者导弹防御系统 5. “冲击波”计算机病毒 6. Windows 2000 中文输入法漏洞 7.金山词霸出现的错误
  • 35. (本页无文本内容)
  • 36. 软件缺陷产生的原因
  • 37. 需求 设计 编码 测试 发布软件缺陷的修复费用¥1¥10¥100¥1000+修复费用开发阶段
  • 38. 1.4 软件测试 1979:软件测试就是为了发现错误而执行程序的过程。 1983,IEEE:使用人工或者自动手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。软件中残存着错误,这是软件的一种属性,是无法改变的。
  • 39. 1.4.2 软件测试的准则 Good-enough 木桶原理 80-20
  • 40. 1.4.2 深入认识软件测试
  • 41. 1、完全测试程序是不可能的原因: 输入量太大 输出结果太多 执行路径太多
  • 42. 2、软件测试应该适可而止测试不足过度测试软件缺陷测试费用最优测试量数 量测试工作量
  • 43. 3、找到的和存在的缺陷成正比缺陷有聚集现象,因为: 程序员状态有起伏 程序员往往犯同样的错误 某些缺陷实际上是冰山一角
  • 44. 4、软件测试技术必须经常更新软件测试与庄稼除虫的对比: 庄稼  软件 害虫  缺陷 农药  测试
  • 45. 5、并非所有软件缺陷都要修复没有足够时间 不是真正的软件缺陷! 修复的风险太大 不值得修复
  • 46. 6、开发与测试不能交叉开发和测试生来就是不同的活动 从心理学角度分析,开发人员无法有效测试。 技术上,开发与测试分开,有利问题的发现。 正确认识软件测试由独立测试机构承担
  • 47. 7、软件测试应回溯需求原始需求正确的规格说明错误的规格说明正确的设计对错误说明的设计错误的设计正确的编码错误 的编码 错误的编码正确的功能错误 的功能 错误的功能需求设计编码测试不完善的软件产品
  • 48. 8、测试无法显示潜伏的软件缺陷发现软件缺陷,可以证明被测系统中含有缺陷 未发现软件缺陷,不可以证明被测系统中不含有缺陷
  • 49. 9、软件测试是一项讲究条理的技术专业猴子测试和随机测试是盲目的 需要训练和规范
  • 50. 1.4.3 软件测试的模型 软件测试过程模型是对测试过程一种抽象,用于定义软件测试的流程和方法。
  • 51. V 模型用户需求规格定义概要设计详细设计编 码验收测试系统测试集成测试单元测试
  • 52. W 模型
  • 53. H模型测试准备测试执行其他流程(如设计等)测试就绪点
  • 54. 测试模型的分析模型优点缺点V明确了开发和测试级别的对应关系只着眼于代码测试,忽略了对需求等其他阶段的测试W明确了测试与开发的并行关系强调串行关系,不支持迭代和交叉H明确了测试的独立性,支持微循环无法反映测试的全貌
  • 55. 1.4.4 软件测试的分类1.按测试方式分类 静态测试 动态测试 2.按测试方法分类 白盒测试 黑盒测试
  • 56. 3.按测试过程分类单元测试 集成测试 系统测试 验收测试
  • 57. 4.按测试目的分类功能测试 性能测试 强度测试 接口测试 用户界面测试 容量测试安全测试 负载测试 安装/反安装测试 文档测试 兼容性测试 本地化测试 …
  • 58. 1.4.5 软件测试流程1.制订测试计划 2.测试设计 3.测试准备和建立环境 4.执行测试 5.测试评估 6.测试总结
  • 59. 1.4.6 软件测试发展历程和趋势在早期,测试的含义比较窄,等同于“调试”。 1957年,软件测试才开始与调试区别开来,成为一种发现软件缺陷的活动。 1980年代早期,软件测试不再单纯是一个发现错误的过程,而包含软件质量评价的内容。 1990年代,测试工具盛行。 近20年来,随着计算机和软件技术的飞速发展,软件测试技术的研究也取得了很大的突破。
  • 60. 人月神话:The Mythical Man-Month 提倡外科手术式的团队组织 软件项目的核心概念要由很少的人来完成,以保证概念的完整性: 软件开发过程中必要的沟通手段 如何保持适度的文档 在软件开发的过程中,只有适度改进,没有包治百病的银弹:No Silver Bullet 。  
  • 61. 1.5 软件测试人员的基本素质软件测试人员应具备下列基本素质: 1.良好的计算机编程基础 2.很强的沟通和交流能力 3.创新精神和超前意识 4.团队合作精神 5.不懈努力,追求完美 …
  • 62. (本页无文本内容)