软件测试

臧艳辉

目录

  • 1 走近软件测试
    • 1.1 走近软件测试
    • 1.2 一个软件测试工程师必备的专业技能和素质
    • 1.3 章节测验
  • 2 软件测试技术
    • 2.1 正确认识软件测试
    • 2.2 软件测试遵循的基本原则
    • 2.3 软件测试的分类
    • 2.4 软件测试的过程模型
    • 2.5 章节测验
  • 3 测试中缺陷的识别与描述
    • 3.1 初识软件缺陷
    • 3.2 全面解析软件缺陷
    • 3.3 有效的记录缺陷
    • 3.4 缺陷报告实例
    • 3.5 缺陷报告模板
  • 4 项目测试计划的制定
    • 4.1 一个项目完整的测试流程
    • 4.2 初识测试计划
    • 4.3 测试计划的基本机构和内容
    • 4.4 测试计划模板和案例
  • 5 初识软件测试用例
    • 5.1 什么是测试用例
    • 5.2 项目测试中设计测试用例的作用
    • 5.3 如何设计一个项目的测试用例
    • 5.4 在测试过程中测试用例怎样进行更新和维护
  • 6 使用等价类划分方法设计测试用例
    • 6.1 等价类划分法的基本思想
    • 6.2 进行等价类划分法的原则
    • 6.3 使用等价类划分法设计测试用例实例
  • 7 使用边界值分析法设计测试用例
    • 7.1 边界值分析法的基本思想
    • 7.2 如何确定边界
    • 7.3 测试知识储备
    • 7.4 使用边界值分析法设计测试用例实例
    • 7.5 项目中如何进行健壮性边界值测试
    • 7.6 等价类+边界值
    • 7.7 章节测试
  • 8 使用大纲法设计测试用例
    • 8.1 什么是大纲法
    • 8.2 项目中如何使用大纲法设计测试用例
  • 9 使用场景法设计测试用例
    • 9.1 什么是场景法
    • 9.2 项目中如何使用场景法设计测试用例
  • 10 因果图和决策表结合设计测试用例
    • 10.1 因果图法的介绍
    • 10.2 决策表的介绍
    • 10.3 项目中选用因果图法和决策表设计测试用例需考虑的问题
    • 10.4 使用因果图法和决策表设计测试用例
  • 11 功能测试
    • 11.1 什么是功能测试
    • 11.2 功能测试的主要内容及测试策略
    • 11.3 功能测试的方法汇总
    • 11.4 功能测试的经验及注意事项
  • 12 界面测试
    • 12.1 界面检查的通用原则
    • 12.2 具体的界面检查的举例
    • 12.3 设计界面测试用例
    • 12.4 界面测试标准总结
  • 13 软件的安装卸载测试
    • 13.1 软件的安装卸载测试
    • 13.2 软件的安装测试
    • 13.3 软件的运行测试
    • 13.4 软件的卸载的测试
  • 14 项目中如何使用进行有效的缺陷管理
    • 14.1 进行缺陷管理的目标是什么
    • 14.2 项目中缺陷管理的流程是怎样的
    • 14.3 缺陷的跟踪方法有哪些
  • 15 测试报告该如何撰写
    • 15.1 软件质量评估
    • 15.2 如何撰写测试报告
    • 15.3 如何写项目总结
    • 15.4 如何写个人测试总结
  • 16 集成测试
    • 16.1 初识集成测试
    • 16.2 集成测试方法
  • 17 白盒测试
    • 17.1 初识白盒测试
    • 17.2 白盒测试技术——逻辑驱动测试
    • 17.3 白盒测试技术——循环覆盖测试
    • 17.4 白盒测试技术——基本路径测
  • 18 软件测试技术及岗位需求介绍
    • 18.1 软件测试岗位需求
    • 18.2 软件测试技术介绍
    • 18.3 软件测试比赛内容
    • 18.4 软件测试岗位应聘简历撰写
一个项目完整的测试流程
  • 1 电子教材
  • 2 PPT

第一章  项目测试计划的制定

简介

本章主要讲解软件测试的工作流程,为什么要制定软件测试计划、软件测试计划都包括哪些内容等。通过本章的学习可以了解在软件开发各个阶段中,测试人员需要做哪些测试活动,一个软件项目应该如何制定测试计划。

4.1  一个项目完整的测试流程

4.1.1  软件生命周期

如同人类从出生到少年、青年、中年、老年、死亡的生命过程一样,软件也有自己的生命周期,它是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护、淘汰的过程。由于软件开发中不同软件的需求和规模各不相同,因此在开发不同的软件过程中也有各种不同的方法,以下介绍两种常见的软件生命周期模型。

1.软件生命周期的瀑布模型

瀑布模型将软件生命周期的各项活动规定为依照固定顺序连接的若干阶段工作,形如瀑布流水,如图4-1所示,最终得到软件产品。在每一个阶段结束时,项目小组进行审查,并决定是否进入下一阶段。

4-1 软件生命周期的瀑布模型

2.软件生命周期的螺旋模型

螺旋模型是瀑布模型的发展,如图4-2所示。目前螺旋模型比较常用,并被证实是开发软件的有效手段。螺旋模型的主要思想是开始不必详细定义所有细节。其主要过程是:从小开始à定义重要功能à努力实现à接受客户反馈à然后进入下一阶段。重复上述过程,直到得到最终软件。

每一个螺旋包括6个步骤:确定目标、可选方案和限制条件à明确并解决风险à评估方案à本阶级开发和测试à计划下一阶段à确定进入下一阶段的方法。

软件测试员通过参与最初的设计阶段,可以尽早地影响到软件,软件的来龙去脉都很清楚。在项目末期,不至于匆忙在短时间内进行全面测试,而是测试一直在进行,直到最后宣布全部成功。

4-2 软件生命周期的螺旋模型

4.1.2  软件测试生命周期

通过学习软件生命周期的瀑布模型和螺旋模型,可以了解软件产品开发的基本过程。那么,软件测试生命周期又是什么样子?如图4-3展示了软件测试生命周期。

4-3 软件测试生命周期

通过图4-3可以看出软件测试活动包括:制定测试计划、测试设计和开发、执行测试(实施软件测试)、评估测试(评审)。那么这些活动的具体内容包括什么?下面分别加以说明。

测试计划阶段主要处于测试的先期准备工作阶段,在该阶段中主要是对将要进行的测试工作做一个整体的规划,在计划中一般都包括测试目的、测试策略、测试资源,其中在测试资源中又分为人力资源与软硬件设备资源两项,同时还要在文档中体现整个测试过程中的各里程碑的情况。

测试设计阶段主要是参照各种相关文档对测试进行设计的工作,包括测试需求的分析和测试用例的设计两项工作。

测试开发阶段则是按照测试设计阶段完成的测试需求分析与测试用例设计的方案要求进行实施的过程,该过程包括:测试用例数据的准备,测试工具的开发,测试脚本的开发录制等工作。此阶段的工作一直可能持续到软件测试的结束。

执行测试阶段是将设计与实施两个阶段中设计好的测试用例及测试数据应用于实际软件测试过程中,包括手工测试的执行、自动化测试的执行、测试缺陷报告提交等工作。在该阶段中同时存在对于前两个阶段进行工作补充的情况。

测试评估是在测试结束后对整个测试过程与产品进行评估的过程。评估过程包括对测试工作的总结、缺陷数据的分析及测试过程的评估等。

4.1.3  软件项目中的完整测试流程

按照尽早进行测试的原则,测试人员应该在需求阶段就介入,并贯穿软件开发的全过程。就测试过程本身而言,应该包含以下几个阶段:

Ø  测试需求的分析和确定

Ø  测试计划

Ø  测试设计开发

Ø  测试执行

Ø  测试记录和缺陷跟踪

Ø  回归测试

Ø  测试总结和报告

而这几个阶段其实就是一个PDCA 循环。PDCA循环也叫戴明循环,是一种质量改进的模型。PPlan)代表计划,DDo)代表执行,CCheck)代表检查,AAction)代表处理。

首先在分析清楚需求的前提下对测试活动进行计划和设计,然后按既定的策划执行测试和记录测试结果,对测试的结果进行检查分析,形成测试报告,这些测试结果和分析报告又能指导下一步的测试设计,因此形成了质量改进的闭环,如图4-4所示。

4-4 测试的各个阶段