【测试 1】一、软件测试理论

1 软件测试理论

学习目标:

■ 熟悉软件的生命周期

■ 熟悉常见的软件研发模型

■ 掌握软件缺陷以及等级的划分

■ 掌握软件测试的模型:V 模型、W 模型、H 模型、X 模型

■ 掌握软件测试的目的以及软件测试原则

■ 掌握测试用例的写作思路

 

 

1.1 软件生命周期

 

软件生命周期

 

项目计划:确定软件开发总体目标,指定具体实施计划;

需求分析:对软件需要实现的各个部分功能进行描述分析,编写软件需求说明书。

软件设计:架构设计,编写设计概要。开发人员编写详细设计说明书。

程序编码:程序编码阶段,保证程序运行效率。

软件测试:检测软件是否符合客户需求,一般在软件设计完成后,项目开发人员构建测试版本,以便测试团队进行测试。测试过程大致分为:单元测试、集成测试、系统测试、验收测试等

运行维护:投入使用后,对软件进行修改、升级、新增特性等。

 

1.2 软件的体系结构(非重点)

C/S结构——客户端/服务器结构

B/S结构——浏览器/服务器结构

A/S结构——应用服务器结构

 

1.3 软件研发模型

指软件开发全部过程、活动和任务的结构框架。提供软件研发效率、降低研发成本、提升软件质量。目前比较流行的研发模型主要有:瀑布模型、快速原型模型、螺旋模型、RUP流程和敏捷模型。

1.3.1 瀑布模型

按照工序将问题简化,功能的实现与设计分开。该模型中,软件开发的各项活动严格按照线性方式进行。上一活动的结果为下一活动的输入,输出有误则返回上一级修改。

瀑布模型过于强调文档的作用,并且每一个活动都必须仔细验证,适合小规模、需求非常确定的开发。由于不能适应需求的变化,现在软件开发几乎把瀑布模型抛弃。

 

2020年10月28日00:42:09

1.3.2 快速原型模型

瀑布模型的演进,该模型主要思想就是通过向用户提供原型获取用户反馈,使得软件能够真正的反映用户的需求。设计的原型实际上就是Demo,小而重要!

 

 

1.3.3 螺旋模型

瀑布模型和快速原型模型的结合,采用一种周期性的方法进行系统开发,周期内包含完整的计划制定、风险分析、工程实施和客户评估阶段,并由此进行迭代。这种模型虽然将开发风险纳入流程,安全系数很高,但是运行成本比较高,实际并不采用这种模式。

1.3.4 RUP流程

以用例驱动和体系结构为核心的增量迭代的软件过程模式。是目前比较流行的研发模式。

横轴是时间(生命周期),用来描述周期、阶段、迭代和里程碑;纵轴表示工作流,用来描述软件的工作流。

RUP的四个阶段:

  • 初始化阶段:关注的是整个项目进行中的业务和需求方面的主要风险。
  • 细化阶段:分析问题,建立完善的体系结构基础。
  • 构造阶段:编码、构建、程序集成、功能详细测试等。
  • 发布阶段:可以迭代发布,包括为产品发布做准备的产品测试,基于反馈小规模调整。

RUP的9个核心工作流:

  • 业务建模
  • 需求
  • 分析设计
  • 实现
  • 测试
  • 部署
  • 配置和变更管理
  • 项目管理
  • 环境管理

参考:https://baike.baidu.com/item/RUP/8924595=aladdin

 

1.3.4 敏捷模型

敏捷开发以用户需求进化为核心,采用个迭代、循序渐进的方式开发软件。软件项目在构建的时候就被切分为多个相互联系、独立运行的子项目,并且分别完成,在此过程中软件一直处于可使用的状态。敏捷开发宣言就是尽早的,持续的交付有价值的软件来使得客户满意。

敏捷开发原则:

  • 快速迭代
  • 让测试人员和开发者参与需求讨论
  • 编写可测试的需求文档
  • 多沟通,减少文档
  • 做好产品原型
  • 及早考虑测试

参考:

https://baike.baidu.com/item/敏捷开发/5618867=aladdin

https://www.zhihu.com/question/19645396

 

1.4 软件测试基本概念

软件测试发展的五个重要发展时期:

  • 以调试为主
  • 以证明为主
  • 以破坏为主
  • 以评估为主
  • 以预防为主

软件测试目的演进过程:

  • 证明软件产品
  • 检测错误缺陷
  • 提前预防风险

软件测试原则:

  1. 所有的测试要追溯到用户需求:从客户角度出发,想客户之所想。
  2. 测试应该尽早的介入:越到后期代价越大。
  3. 测试无法穷举:无法穷举所有情况,满足出口要求准则时则是就应该终止。
  4. 集群现象:出现错误比较多的地方就有理由相信存在更多没有发现的错误。
  5. 杀虫剂悖论:测试用例被执行的次数越多,检测出问题的能力就会下降。
  6. 不存在缺陷谬论:测试可以减少未发现的缺陷,不能证明产品没有缺陷。
  7. 测试活动依赖于测试背景:测试背景不同,测试活动也就不同,测试策略和测试方法的选择也就不同。比如银行更关注安全,电商更关注性能。

参考:http://www.51testing.com/html/86/n-877786.html

1.5 软件测试模型

软件测试模型有:V 模型、W 模型、H 模型、X 模型、敏捷测试等。

 

V模型

RAD(快速应用开发)——V模型。通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。

V模型强调软件开发的协作和速度,反应测试活动和分析或设计关系,将软件实现和验证相结合。V模型适合规模小、时间周期短的项目,这种形式逐渐被淘汰。

 

W模型

V模型的演进,W模型增加了软件开发各阶段中同步进行的验证和确认活动。

 

H模型

该模型中,软件测试活动是独立的,将测试准备和测试执行分离,降低成本提高效率。

X模型

 

X 模型中提出一个重要的理念是探索性测试,这是不进行事先计划的特 殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现 更多的软件错误。但这样可能对测试造成人力、物力和财力的浪费,而且对 测试员的熟练程度要求比较高。

 

参考:https://blog.csdn.net/jingminminwangbobo/article/details/82931670

 

敏捷测试

通过不断的修正质量标准,建立正确的测试策略,确认客户的有效需求来保证产品的质量。敏捷测试试遵循的一种测试时间就是强调从客户的角度进行测试。

敏捷测试需要重点关注需求的变更、产品设计和源代码设计等。一般是需要全程参与敏捷开发团队的讨论评审活动,并参与决策制定等。在独立完成测试设计、分析、执行的同时,还要关注用户需求并且进行有效沟通,从而协助敏捷开发流程快速开发。测试除了针对产品的质量,还要保证整个软件开发过程是正确的符合客户需求的。

 

1.6 软件缺陷

引入软件缺陷的原因:

  • 缺乏有效的沟通
  • 软件的复杂度
  • 程序员编程错误
  • 需求变更
  • 时间压力
  • 人员盲目自信

 

缺陷种类:

  • 遗漏:未实现规格;
  • 错误:与需求违背;
  • 冗余:超出规格说明的冗余;
  • 不满意:用户对产品的不满意也属于缺陷的一种。所以不停地强调在用户的角度进行测试。

 

1.7 测试用例

什么是测试用例:https://baike.baidu.com/item/测试用例/1928697=aladdin

测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。

 

测试用例的重要性:

  • 避免漏测
  • 测试进度的控制
  • 作为度量指标
  • 分析缺陷的依据
  • 项目管理成本

 

测试用例写作思路:(摘抄自《软件测试技术指南》—斛嘉乙)

参考:

https://www.zhihu.com/question/51558124

https://www.cnblogs.com/hellosecretgarden/p/9332216.html

 

 

测试用例作为测试工作的一个指导,那么测试人员如何编写一个好的测 试用例呢测试用例需要遵守 5C 原则(Correct 准确、Clear 清晰、 Concise 简洁、Complete 完整、Con-sistent 一致)。大多公司的测试用例 通常包含用例编 、所属模块、用例标题、用例优先级、前提条件、测试数 据、操作步骤、预期结果、用例状态等。

  1. 用例编

用例编 是测试用例的唯一标识,主要用来识别该测试用例的目的。用 例编 需要具有指引性和维护性,格式一般由字母、数字、下划线组成,具 体格式如下: 产品名称_需求编 _用例类型_测试子项_数字编 1)产品名称通常是指产品的简称:如客户管理系统简称 CRM。 2)需求编 通常记录需求规格说明书中需求的编 。 3)用例类型描述测试所属的测试阶段:如单元测试 UT、集成测试 IT、 系统测试 ST、验收测试 UAT 等。

  1. 所属模块

所属模块是指被测试需求具体属于哪个模块,主要是为了更好识别以及维护用例。

  1. 用例标题

用例标题用简洁明了的一句话来描述测试用例的关注点,原则上测试标题也是具有唯一性。简单说就是每一条用例对应一个测试目的。

  1. 用例优先级

用例优先级一般划分为三个级别:高、中、低,根据需求的优先级级别来定义。通常来说,高优先级别用例是指软件的核心业务、基本功能、重要特性以及使用频率比较高的部分,但是在定义时针对一个需求点我们会定义2~3 个优先级高的测试用例。

  1. 前提条件

前提条件是指测试用例在执行前需要满足的一些的条件,否则测试用例无法执行。前提条件指被测功能的先决条件以及测试环境,简单说就是跟测试用例存在因果关系的条件。

  1. 测试数据

在执行测试时,需要输入一些外部数据完成测试,这些数据根据测试用例的具体情况来定,有参数、文件以及数据库记录等。

  1. 操作步骤

执行测试用例的步骤描述,测试用例执行人员可以根据该操作步骤完成测试执行。在编写操作步骤时要注意一点就是避免冗余。

  1. 预期结果

预期结果是测试用例中最重要的部分,主要用来判断被测对象是否正常。根据需求规格说明书来描述用户的期望。通常在编写预期结果可以从以下两个方面考虑:

  1. 操作界面的提示:也就是说在执行操作步骤后,界面会有什么提示信息。
  2. 数据库的变化:也就是说在执行操作步骤后,数据库会发生什么变化。
  1. 用例状态

用例状态一般分三种:PASS 通过、FAIL 失败、N/A 未执行。此项在编写用例时为空,当执行完测试用例后再填写。

 

 

 

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月24日
下一篇 2020年9月25日

相关推荐