第一章概述

一、学习目的与要求

本章对软件测试作了概括性的介绍,目的是使学生对软件测试有个初步的认识。通过本章的学习,应使学生掌握软件测试的基本概念,了解软件测试的发展历程和行业现状,掌握软件测试技术的分类,理解软件测试的目的和原则,掌握软件测试工作流程,理解软件开发与软件测试的关系。

二、考核知识点与考核目标

(一)软件测试的基本概念(重点)

  1. 识记:软件测试的定义

软件测试是一个在可控环境中执行软件的过程,目的是为了验证软件是否按预期运行

  1. 理解:软件测试生命周期

需求规格说明、设计、编码是引用错误程序阶段,测试发现错误阶段,缺陷分类、缺陷分离、缺陷排出是清除错误程序阶段

  1. 理解:软件开发与测试模型

软件开发与V模型

  1. 左边下降是开发过程各阶段,右边上升的是测试过程阶段
  2. 价值:明确的标明了测试过程中存在的不同级别,清楚的描述了测试阶段和开发过程期间的对应关系
  3. 适用于所有类型的开发过程,不一定适用于开发和测试过程的所有方面
    在这里插入图片描述

软件开发与W模型

  1. 测试伴随着整个软件开发周期
  2. 测试对象包括需求、设计和程序
  3. 优点:每个软件开发活动结束后就可以执行相应的测试
    在这里插入图片描述

软件开发与H模型

  1. 软件测试不仅指测试的执行,还有其他活动
  2. 软件测试是一个独立的过程,贯穿产品的整个开发周期,与其他流程并发进行
  3. 软件测试要尽早准备,尽早执行
  4. 软件测试根据被测物的不同分层次,不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的 在这里插入图片描述

(二)软件测试技术分类(重点)

  • 理解:软件测试技术的分类

从执行被测软件角度分静态测试动态测试

  1. 静态测试:不利于计算运行被测程序,而是通过其他手段达到测试目的的方法。
  2. 静态测试方法:代码检查和走查,以及桌面检查和同行评分。

从软件测试用例设计方法的角度分为黑盒测试白盒测试

  1. 黑盒测试是从用户观点出发的测试,又称为功能测试、数据驱动测试、基于规格说明的测试。
  2. 白盒测试是基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各部分功能是否得到充分利用,又称为结构测试、逻辑驱动测试、基于程序测试。

按照软件测试的策略和过程可分为单元测试集成测试确认测试系统测试验收测试

  1. 单元测试是软件测试最小单位,使用白盒测试,用来发现内部测试。
  2. 集成测试检验与软件设计相关的程序结构问题,使用黑盒测试。
  3. 确认测试对开发工作初期制定的确认准则进行校验,使用黑盒测试。
  4. 系统测试检验被测软件与系统其他部分的协调性。
  5. 验收测试从用户角度出发。

(三)软件测试目的和原则(次重点)

  1. 理解:软件测试目的和原则

软件测试目的
①软件测试是为了发现错误而执行程序的过程。
②一个好的测试用例能够发现至今尚未发现的错误。
③一个成功的测试是发现了至今尚未发现的错误。
软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。

软件测试原则
(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。
(2)测试应当有重点。
(3)事先定义好产品的质量标准。
(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。
(5)穷举测试是不可能的。
(6)第三方进行测试会更客观,更有效。
(7)软件测试计划是做好软件测试工作的前提。
(8)测试用例是设计出来的,不是写出来的。
(9)对发现错误较多的程序段,应进行更深入的测试。
(10)重视文档,妥善保存一切测试过程文档。

(四)软件测试工作流程(重点)

  1. 理解:软件测试工作流程
  1. 需求阶段是软件测试活动的前提
  2. 设计、编码和单元测试阶段是进行概要设计,形成集成测试方案,再进行详细设计
  3. 集成测试、系统测试、和验收测试阶段
    在这里插入图片描述

(五)软件开发与软件测试的关系(一般)

  1. 理解:软件开发与软件测试的关系

软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。

三、习题

  1. 软件测试的目的是______。
    A. 避免软件开发中出现的错误
    B. 发现软件中出现的错误
    C. 容忍软件中出现的错误
    D. 修改软件中出现的错误
  2. 以下关于软件测试原则的叙述中,不正确的是(  )。
    A. 测试用例不仅选用合理的输入数据,还要选择不合理的输入数据
    B. 应制定测试计划并严格执行,排除随意性
    C. 对发现错误较多的程序段,应进行更深入的测试
    D. 程序员应尽量测试自己的程序
  3. 以下关于测试时机的叙述中,正确的是______。
    A. 应该尽可能早的进行测试
    B. 若能推迟暴露软件中的错误,则修复和改正错误所花费的代价就会降低
    C. 应该在代码编写完成后开始测试
    D. 需求分析和设计阶段不需要测试人员参与
  4. 软件测试的对象包括______。 ①软件代码 ②文档 ③数据
    A.①②
    B.①③
    C.②③
    D.①②③
  5. 什么是软件测试?简述其目的及原则。
  1. 软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。
  2. 测试目的:
    (1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。
    (2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。
    (3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。
  3. 测试过程中应注意和遵循的原则:
    (1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。
    (2)测试应当有重点。
    (3)事先定义好产品的质量标准。
    (4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。
    (5)穷举测试是不可能的。
    (6)第三方进行测试会更客观,更有效。
    (7)软件测试计划是做好软件测试工作的前提。
    (8)测试用例是设计出来的,不是写出来的。
    (9)对发现错误较多的程序段,应进行更深入的测试。
    (10)重视文档,妥善保存一切测试过程文档。
  1. 软件测试阶段是如何划分的?

计划阶段:

  1. 编写测试计划;
  2. 编写进度表设计阶段:测试环境准备、设计测试用例;
  3. 执行阶段:执行测试用例、记录缺陷;
  4. 评审阶段编写测试报告
  1. 简述软件测试过程。

软件测试过程主要包括如下6个活动:
测试计划;
测试需求分析;
测试设计;
测试规程实现;
测试执行;
总结生成报告。

  1. “软件测试能够保证软件的质量”这句话对吗?软件测试和软件质量之间是什么关系?

不对。软件测试是保障软件质量的手段之一,但不是唯一手段。测试是产品高质量的必要非充分条件,软件测试不能决定软件质量。

  1. 简述软件开发进程与测试进程的关系。

软件测试是一个贯穿软件开发生命周期的活动,它可以是一个与开发并行的过程,也可以是在开发完成某个阶段任务之后的活动。

  1. 什么是回归测试?什么时候进行回归测试?

回归测试就是重新运行现有测试用例测试原有功能,以便确定变更是否达到了预期的目的,检查变更是否损害了原有的正常功能。每当软件发生变化时就应进行回归测试。

  1. 常常把与分析软件开发中的各种产品相关的测试活动称为静态测试
  2. 软件设计阶段的测试主要采取的方式是
    A评审
    B白盒测试
    C黑盒测试
    D动态测试
  3. 测试计划不包括()
    A测试资源
    B测试预期输出
    C测试范围
    D测试策略
  4. 下列与设计测试用例无关的文档是()
    A项目开发计划
    B需求规格说明书
    C软件设计说明书
    D源程序
  5. 修复软件缺陷费用最低的阶段是()
    A需求分析阶段
    B设计阶段
    C编写代码
    D发布阶段
  6. 检查软件产品是否符合需求定义的过程称为()
    A确认测试
    B集成测试
    C性能测试
    D功能测试
  7. 导致软件缺陷的最大原因是()
    A设计
    B规格说明书
    C编码
    D测试
  8. 下列质量保障措施能在开发过程中尽早发现和预防错误,把出现的错误克服在早期的是()
    A技术评审
    B程序测试
    C改正程序错误
    D管理评审
  9. 软件生存周期过程中,修改错误代价最大的阶段是(
    A 需求阶段
    B设计阶段
    C编程阶段
    D发布运行阶段
  10. 在没有产品说明书时使用()
    A探索测试
    B功能测试
    C动态测试
    D静态测试
  11. 测试驱动开发的含义是()
    A先写程序后写测试的开发方法
    B先写测试后写程序,即"测试先行"
    C用单元测试的方法写测试
    D不需要测试的开发
  12. 简述软件测试V模型的优缺点

优点∶明确地标注了测试过程中存在不同类型的测试,清楚地描述这些测试阶段和开发过程期间各阶段的对应关系
缺点∶仅仅把测试作为在编码之后的一个阶段,是针对程序进行的寻找错误的活动,而忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能

  1. 简述软件测试 w模型的优缺点。

优点∶测试伴随着整个软件开发周期。测试的对象不仅仅是程序,需求、设计等同样要测试,测试与开发是同步进行的,有利于尽早地、全面地发现问题
缺点∶需求、设计、编码等活动被视为串行的,同事,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段的工作,无法支持迭代的开发模型。

  1. 简述软件测试的意义

随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。
而由于软件本身的特性,软件中的错误是不开避免的。
不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。
因此为了保证软件质量,必须对软件进行测试。
软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值