软件测试基础必知必会

Posted 经理,天台风好大

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试基础必知必会相关的知识,希望对你有一定的参考价值。

文章目录


软件测试介绍

1、目标

  1. 理解软件测试的定义
  2. 为什么需要软件测试? (减少损失)
  3. 为什么选择软件测试? (薪资.市场需求)
  4. 为什么不让开发自已做测试? (思维定式/测试力度/关注度)
  5. 掌握软件测试的核心内容?
  6. 清楚学习软件测试需要具备的基础知识

2、定义

  • 软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进 行评估的过程.
  • 简单地说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。

3、核心内容

  • 功能测试
  • 自动化测试
  • 接口测试
  • 性能测试

4、需要掌握的基础铺垫

  • 计算机基础
    • 计算机的定义和基本特点
    • 计算机硬件系统和软件系统组成
    • 二进制的相关概念
    • 十进制和二进制如何相互转换
    • 计算机编码和计量单位
    • 浏览器和图片类型
    • 掌握网站的访问过程
    • 掌握常用的DOS命令
  • 前端知识
    • 掌握常见的html标签
    • CSS的作用和语法规则
    • CSS选择器的语法规则
    • JS的定义和作用
    • 掌握JS的基本用法
  • 后端知识
    • 掌握C/S和B/S架构的特点
    • 知道什么是服务器及常见的软件服务器
    • 了解编程语言的时代发展
    • 了解Java语言的特点和应用领域
    • 掌握Python语言的特点和应用领域
    • 掌握XML的语法
    • 掌握JSON的特点和语法规则
    • 知道如何使用SVN管理文件
  • 软件测试理论
    • 掌握软件测试的目的和原则
    • 掌握瀑布模型
    • 了解快速原型模型和螺旋模型
    • 掌握V模型
    • 掌握W(双V)模型
    • 能掌握软件质量模型的分类
    • 掌握软件测试分类
    • 掌握软件缺陷的定义与判定标准
    • 掌握测试用例定义和8要素

软件测试理论

目标

见上文

(一)软件测试的目的和原则

1、软件测试目的

用最少的人力、物力、财力,找到软件中的问题并修复,从而降低商业风险

2、软件测试原则

  1. 只能证明软件存在问题,不能证明不存在问题
  2. 不能进行穷尽(穷举)测试,应该分类别测试
  3. 测试工作要尽早的介入,降低修复成本(需求文档–ui、程序、测试)
  4. 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷
  5. 测试依赖环境(系统、浏览器)
  6. 杀虫剂现象
  7. 不存在缺陷谬论

(二)软件开发模型

1、开发模型的介绍

  • 在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,如:
  • 软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自 己在其中的位置,从而发挥自身的价值。

2、瀑布模型

2.1 瀑布模型的特点

(1) 是线性模型的一种,每一个阶段只执行一次。
(2) 文档驱动。

2.2 瀑布模型的优缺点

  • 优点:
    (1) 开发的各个阶段比较清晰,当前阶段完成后,只需关注后续阶段。
  • 缺点:
    (1) 不适应需求的变化。
    (2) 风险往往延至后期才显露,失去及早纠正的机会。

3、快速原型模型(了解)

在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。

3.1 快速原型模型的特点

(1) 快速得构建软件的原型
(2) 支持用户参与

3.2 快速原型模型的优缺点

  • 优点:
    (1) 克服瀑布模型的缺点,减少由于软件需求不明确带来的项目开发风险。
  • 缺点:
    (1) 不适合大型系统的开发 (适合开发小型的、灵活性高的系统)

4、螺旋模型(了解)


4.1 螺旋模型的特点

(1)引进了风险分析活动

4.2 螺旋模型的优缺点

  • 优点:
    (1) 螺旋模型很大程度上是一种风险驱动的方法体系。
  • 缺点:
    (1) 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识。

(三)软件测试模型(重点)

1、V模型

  • V模型是最具有代表意义的测试模型,最早是由Paul Rook在20世纪80年代后期提出,由英国国家计算机中心文献中发布,旨在改进软件开发的效率和效果;
  • V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析和设计的关系。
  • V模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系。

V模型示意图:

V模型的优缺点

  • 优点:
    (1)测试V模型即包含了底层测试又包含了高层测试;
  • 缺点:
    (1)当需求变更时将会导致返工量非常大,模型灵活性比较低。

2、W模型

测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。

W模型示意图:

2.1 W模型的优缺点

  • 优点:
    (1) 强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,还包括需求和设计。
    (2) 更早地介入测试,能尽早得发现缺陷进行修复。
  • 缺点:
    (1) 对于测试技术要求高,实践起来困难。

(四)软件质量模型

1、软件质量模型

  • 软件质量,就是软件与明确地和隐含地定义的需求相一致的程度。
  • ISO 9126软件质量模型是评价软件质量的国际标准,这个模型是软件质量标准的核心,对于大部分的软件, 都可以考虑从这这6个特性和27个子特性去测试、评价一个软件。

(五)软件测试分类

1、软件测试分类

2、按测试阶段划分

2.1 单元测试
  • 又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。单元测试需要从程序内 部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
  • 单元定义:C中指一个函数,Java中指一个类。

2.2 集成测试
  • 又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。

2.3 系统测试
  • 指的是将整个软件系统看为一个整体进行测试,测试的依据是软件需求说明书
2.4 验收测试

检验软件是否符合用户需求的测试

  • α测试
    • Alpha 是内测版本
    • 通常只在软件开发者内部交流
    • 一般而言, 该版本软件的bug较多,普通用户最好不要安装
  • β测试
    • Beta是公测版本,是对所有用户开放的测试版本
    • 这一版本通常由软件公司免费发布, 用户可从相关的站点下载
    • 通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改
  • γ测试
    • Gamma版本,指的是软件版本正式发行的候选版。
    • 该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本

3、按是否查看源代码

3.1 黑盒测试

又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据。

3.2 白盒测试

指的是把盒子打开,去研究里面的源代码和程序结构。

3.3 灰盒测试

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,不仅关注输出、输入的正确性,同时也关注程序内部 的情况。

4、按是否运行分类

  • 静态测试:
    • 指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
  • 动态测试:
    • 是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

5、按照是否自动化

  • 人工测试
    • 也叫做手工测试,测试人员手动去进行的测试
  • 自动化测试
    • 利用代码或者工具帮助人工进行测试

6、软件测试的更多分类

  • 冒烟测试
    • 冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通
  • 回归测试
    • 当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试
  • 随机测试
    • 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分
  • 探索性测试
    • 探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。

(六)软件缺陷

1、软件缺陷

软件缺陷:是指软件或程序中存在的各种问题及错误

软件缺陷的存在会导致软件产品在某种程度上不能满足用户的需求

1.1 软件缺陷的判定标准
  1. 软件未达到需求规格说明书中标明的功能
  2. 软件出现了需求规格说明书指明不会出现错误的地方
  3. 软件的功能超出了需求规格说明书指明的范围
  4. 软件未达到需求规格说明书虽未指明但应该达到的目标
  5. 软件测试人员认为软件难以理解,不易使用,运行速度慢,或者最终用户体验不好。
1.2 软件缺陷产生的原因

软件缺陷产生是不可避免的,造成软件缺陷产生的原因主要归纳如下:

  1. 需求解释、记录或者定义错误
  2. 设计文档说明存在错误或者拼写错误
  3. 编码说明、程序代码有误
  4. 硬件或者软件系统上存在错误
1.3 软件缺陷产生的根源
  • 需求的变更
  • 交流不充分
  • 软件的复杂性
  • 进度压力
1.4 软件缺陷的类型
  • 功能错误
  • 界面错误
  • 兼容性缺陷
  • 易用性问题
  • 改进建议

(七)测试用例

1、测试用例

测试用例:(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期结果的文档。测什么?怎么测?
1.1 认识生活中的测试用例
买手机、买电脑,要试用一下:开机、屏幕、运行速度、内存大小;这就是生活中的测试用例!

举例说明
买手机:按开机键,相当于输入了一组数据来测试,执行条件指的是开机的前提条件,比如是否有电;预期结 果就是能顺利打开手机,那么测试完毕后,是否达到了想要的需求(顺利开机)

2、测试用例八大要素

软件测试用例的基本要素包括:

  1. 用例编号
  2. 用例标题
  3. 测试项目
  4. 用例级别
  5. 预置条件
  6. 测试输入
  7. 执行步骤
  8. 预期结果

以上是关于软件测试基础必知必会的主要内容,如果未能解决你的问题,请参考以下文章

运维人必知必会的Zabbix核心命令

《SQL必知必会》读书笔记

关于TCP/IP,必知必会的十个问题

HTTP必知必会

干货TCP/IP协议中需要必知必会的十大问题~

MySql必知必会读书笔记 -- 基础