1 / 58

软件测试技术

软件测试技术. 软件外包教研室. 第 1 章 软件测试基础. 1.1 软件测试背景 1.2 软件测试基础理论 1.3 软件开发过程 1.4 软件测试过程 1.5 软件质量保证概要 1.6 软件测试职业. 1.1 软件测试背景. 1.1.1 软件缺陷与故障 案例 软件缺陷的定义 软件缺陷的特征 1.1.2 软件缺陷产生的原因. 1.1.1 软件缺陷与故障. 案例 1. 美国迪斯尼公司的狮子王游戏软件 BUG 2. 火星登陆事故 3. 跨世纪”千年虫”问题 4. 其他一些例子. 1.1.1 软件缺陷与故障.

jorn
Download Presentation

软件测试技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 软件测试技术 软件外包教研室

  2. 第1章 软件测试基础 1.1软件测试背景 1.2 软件测试基础理论 1.3软件开发过程 1.4软件测试过程 1.5软件质量保证概要 1.6软件测试职业 xiangr@neusoft.com

  3. 1.1软件测试背景 1.1.1软件缺陷与故障 • 案例 • 软件缺陷的定义 • 软件缺陷的特征 1.1.2软件缺陷产生的原因 xiangr@neusoft.com

  4. 1.1.1软件缺陷与故障 • 案例 1.美国迪斯尼公司的狮子王游戏软件BUG 2.火星登陆事故 3.跨世纪”千年虫”问题 4.其他一些例子 xiangr@neusoft.com

  5. 1.1.1软件缺陷与故障 • 软件缺陷的定义(符合下列规则的叫软件缺陷): 1.软件未达到产品说明书的功能  2.软件出现了产品说明书指明不会出现的错误  3.软件功能超出产品说明书指明范围  4.软件未达到产品说明书虽未指出但应达到的目标  5.软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好 xiangr@neusoft.com

  6. 1.1.1软件缺陷与故障 • 软件缺陷的特征 1.软件的特殊性决定了缺陷不易看到,即”看不到”; 2.发现了缺陷,但不易找到问题发生的原因所在,即”看到但是抓不到”. xiangr@neusoft.com

  7. 软件缺陷产生的原因 1.1.2软件缺陷产生的原因 xiangr@neusoft.com

  8. 1.2 软件测试基础理论 1.2.1软件测试的定义 1.2.2软件测试的基本理论 1.2.3软件测试和缺陷修复的代价 1.2.4软件测试技术概要 xiangr@neusoft.com

  9. 1.2.1软件测试的定义 • 软件测试的定义: 几个观点: 测试是为了证明程序有错,而不是证明程序无错误; 一个好的测试用例是在于它能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。 xiangr@neusoft.com

  10. 1.2.1软件测试的定义 • 软件测试的定义: 狭义定义:程序测试是为了发现错误而执行程序的过程。 广义定义:将测试延伸到需求评审、设计审查活动中去,这种延伸后的软件测试,被认为是一种软件测试的广义概念。 xiangr@neusoft.com

  11. 1.2.1软件测试的定义 软件测试的定义为: 软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。 xiangr@neusoft.com

  12. 1.2.2软件测试的基本理论 1.软件测试的目的 2.软件测试的原则 3.测试在开发各阶段的作用 xiangr@neusoft.com

  13. 软件测试的目的 • 发现软件缺陷 • 发现软件缺陷,尽可能早一些 • 发现软件缺陷,尽可能早一些,并确保其得以修复 xiangr@neusoft.com

  14. 软件测试的原则 • 应当把“尽早和不断地测试”作为开发者的座右铭。 • 程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。 • 设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。 • 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。 xiangr@neusoft.com

  15. 软件测试的原则 • 对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。 • 制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。 • 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。 • 妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。 xiangr@neusoft.com

  16. 测试在开发各阶段的作用 • 项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。 • 需求分析阶段:确定测试需求分析、系统测试计划的制定、评审后成为管理项目。 • 详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。 • 编码阶段:由开发人员进行自己负责部分的测试代码。在项目较大时,由专人进行编码阶段的测试任务。 • 测试阶段:依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。 xiangr@neusoft.com

  17. 软件测试和缺陷修复的代价 xiangr@neusoft.com

  18. 1.2.4软件测试技术概要 1.软件测试策略 2.软件测试技术 xiangr@neusoft.com

  19. 1.2.4软件测试技术概要 1.软件测试策略 软件测试策略就是测试将按照什么样的思路和方式进行。通常,软件测试要经过单元测试、集成测试、确认测试、系统测试和验收测试。 xiangr@neusoft.com

  20. 1.2.4软件测试技术概要 2.软件测试技术 按照软件测试用例的设计方法而论,软件测试可分为白盒测试法和黑盒测试法;按照软件测试是否执行程序而论,软件测试又可以分为静态测试和动态测试;按照软件设计方法是否采用面向对象设计技术而论,软件测试又可以分为传统测试方法和面向对象测试方法;按照网络环境下C/S应用结构的特定环境而论,软件测试又有其相应的方法。这些都是软件测试具体的测试方法。 xiangr@neusoft.com

  21. 1.3软件开发过程 1.3.1软件产品的组成 1.3.2软件开发项目组 1.3.3软件开发模式 xiangr@neusoft.com

  22. 1.3.1软件产品的组成 1.软件产品需要多少投入 产品说明书 进度 测试计划 产品审查 来自上一版的反馈 客户调查   易用性数据 设计文档 竞争对手情况 观察和感受说明书 xiangr@neusoft.com

  23. 1.3.1软件产品的组成 2.客户需求 • 产品开发小组必须摸清客户所需 • 用调查问卷的形式搜集详细信息 • 反馈软件的以前版本 • 竞争产品信息(同领域产品) • 杂志评论(媒体) • 焦点人群的意见 xiangr@neusoft.com

  24. 1.3.1软件产品的组成 3.产品说明 • 对客户要求的研究结果是原始资料,无法描述要做的产品,只是确定哪些要做,哪些不要做,以及客户要求的功能. • 产品说明书综合上述信息和一些没有提出但必须实现的要求,真正地定义产品是什么、有哪些功能、外观如何 • 产品说明书是“锁定”的 xiangr@neusoft.com

  25. 1.3.1软件产品的组成 4.设计文档 常用的设计文档包括如下: • 构架 • 数据流示意图 • 状态变化示意图 • 流程图 • 注释代码 xiangr@neusoft.com

  26. 1.3.1软件产品的组成 5.测试文档 一般的测试文档包括如下: • 测试计划 • 测试用例设计 • 软件测试报告 • 归纳、统计和总结 xiangr@neusoft.com

  27. 1.3.1软件产品的组成 6.开发进度(Gantt图) • 系统最终交付日期已经确定,软件开发部门必须在规定期限内完成 • 系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定 • Gantt图中横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和钟点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。 xiangr@neusoft.com

  28. 1.3.1软件产品的组成 • 错误信息 • 广告与宣传材料产品支持信息 • 软件的安装 • 软件说明文件 • 测试错误提示信息 7.其他组成部分 • 帮助文件 • 用户手册 • 样本和示例 • 产品支持信息 • 图表和标志 xiangr@neusoft.com

  29. 1.3.2软件开发项目组 • 项目管理员。由他们全程负责整个软件开发项目,通常负责编写产品说明书、管理进度、进行重大决策。 • 设计师或系统工程师。他们的角色是担任软件小组的技术专家,需要具有丰富的经验,可以胜任设计整个系统构架或软件构思。 • 程序员。由他们负责设计、编写并修复软件中的缺陷。他们与项目管理员和设计师密切合作生产软件,然后与项目管理和测试员密切合作修复软件缺陷。 • 软件测试员。我们负责找出并报告软件产品的问题,与小组全部成员在开发过程中密切合作,进行测试并报告发现的问题。 • 技术作者、用户助手、用户培训专员、手册编写人员或者文案专员。由他们来负责编制软件产品附带的文件和联机文档。 xiangr@neusoft.com

  30. 1.3.3软件开发基本过程 xiangr@neusoft.com

  31. 1.3.3软件开发基本过程 • 需求分析:根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。 • 设计:根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。 • 编程:将设计转换成计算机可读的形式。 • 测试:对设计、编程进行验证和用户需求确认的过程 • 维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。 xiangr@neusoft.com

  32. 1.3.4软件开发模式 • 瀑布模型 • 原型模型 • 快速应用开发(RAD)模型 • 改进的V模型 • 螺旋模型 • 增量模型和迭代模型 • 构件组装模型 • 并发模型 • XP模型 xiangr@neusoft.com

  33. 瀑布模型 • 整个开发包括六个阶段:计划、需求分析、设计、编码、测试、运行维护。六个阶段自上而下、相互衔接,以固定的次序来进行。 • 特点 阶段的顺序性和依赖性 推迟实现的观点 质量保证 • 存在问题 不适合需求模糊的系统 xiangr@neusoft.com

  34. 先建立一个能反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型进行反复的扩充、改进和求精,最终建立符合用户需求的目标系统先建立一个能反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型进行反复的扩充、改进和求精,最终建立符合用户需求的目标系统 特点:快速开发工具、循环、低成本 种类: 渐进型、抛弃型 开始 需求的采集和细化 停止 快速设计 产品样品 建造原型 加工原型 用户评价原型 原型模型 xiangr@neusoft.com

  35. 快速应用开发(RAD) –V模型 xiangr@neusoft.com

  36. RAD -V Model (改进) xiangr@neusoft.com

  37. Validation of Customer Requirements Operational or Business Needs customer, user, PM, technical support Test Objectives Verification of system design Test Planning Engineers Define Requirements Test Design Design System Test Execution (Static) Test Execution (Dynamic) Design/Analysis Verify/testing Build System RAD -V Model (进一步丰富) xiangr@neusoft.com

  38. 螺旋模型将瀑布模型和快速原型模型结合起来,并且加入了两种模型均忽略的风险分析。 螺旋模型的每一周期都包括制定计划、风险分析、实施工程和评审四个阶段。 螺旋模型 xiangr@neusoft.com

  39. 阶段开发模型 xiangr@neusoft.com

  40. 增量开发 迭代开发 增量和迭代模型 • 增量模型中,在每个阶段都生成软件的一个可发布版本。这些阶段是交错进行的。 • 在增量模型中,软件版本是逐步完善的。 • 在原型中,每个阶段是发布一个原型,而在增量模型中,是完成一个正式的版本。 xiangr@neusoft.com

  41. 1.4 软件测试过程 • 软件测试过程是一种抽象的模型,用于定义软件测试的流程和方法。 • 测试过程的质量将直接影响测试结果的准确性和有效性。 • 软件测试过程遵循软件工程原理,遵循管理学原理。 xiangr@neusoft.com

  42. 1.4 软件测试过程 1.4.1软件测试过程模型 1.4.2测试过程管理理念 1.4.3测试过程管理实践 1.4.4测试过程可持续改进 xiangr@neusoft.com

  43. 1.4.1软件测试过程模型 图1-4 软件测试V模型 xiangr@neusoft.com

  44. 1.4.1软件测试过程模型 图1-5 软件测试W模型 xiangr@neusoft.com

  45. 1.4.1软件测试过程模型 图1-6 软件测试H模型 xiangr@neusoft.com

  46. 1.4.2测试过程管理理念 • 尽早测试 • 全面测试 • 全过程测试 • 独立的、迭代的测试 xiangr@neusoft.com

  47. 1.4.3 测试过程管理实践 • 策划测试过程 • 把握需求 • 变更控制 • 测试度量 xiangr@neusoft.com

  48. 1.4.4测试过程可持续改进 测试技术发展到今天,已经存在诸多可供参考的测试过程管理思想和理念。但信息技术发展一日千里,新技术不断涌现,这就注定测试过程也需要不断的改进。 xiangr@neusoft.com

  49. 1.5 软件质量保证与软件测试的关系 • 软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。 • 软件测试流程包括项目计划检查、测试计划创建、测试设计、执行测试、更新测试文档和测试评估;SQA的活动可总结为协调度量、风险管理、文档检查、促进/协助流程改进、监察测试工作。 xiangr@neusoft.com

  50. 1.5 软件质量保证与软件测试的关系 • 软件质量保证和软件质量控制之间的界限越来越模糊了 • 软件测试是SQA中的重要手段,SQA的主要功能在软件测试中得到体现,集中在静态测试中,两者的关系越来越紧密 xiangr@neusoft.com

More Related