软件测试基础及一般流程

软件测试行业基本介绍

软件测试的定义:通过手工或者工具对“被测对象”进行测试的操作,从而验证实际结果与预期效果之间是否存在差异。

为什么需要软件测试?

  1. 一款软件从无到有会经历很多的开发阶段有不同水平的人来参与开发,所以最终产出的软件功能可能会存在问题,因此为了保证软件功能的可用性,我们必须进行软件测试
  2. 当前的软件行业已经不再是功能为王了,用户不仅仅只盯着软件功能是否满足需要,还会对软件是否容易上手,执行效率是否可以等一系列其他体验都有了更高的要求,所以我们需要对软件进行大量的测试。

为什么选择软件测试?

  1. 国内的软件行业对于专业的软件测试人员需求是慢慢变大
  2. 有些人喜欢创造世界所以他们选择了开发,而我们就是希望这个世界变得更完美所以做了测试。

为什么公司不让开发自己做测试?

  1. 当前行业有许多的测试从业人员本身之前从事的都是开发岗
  2. 专业度:软件测试和软件开发分别属于软件行业当中的两种不同的技术方向,所以让专人做专事对于质量来说更有保障。
  3. 思维定势:在软件的开发周期中,对于程序员来说他们大多数时间都是在思考如何实现软件的功能,而不会从用户的角度去考虑如何“奇葩”的使用这个功能。
  4. 测试力度:相对于开发来说,产品就想到于是他们的“孩子”,所以下手不会太狠。

软件测试的作用:

  1. 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品使用信心
  2. 测试可以记录软件使用过程中产生的一些数据,从而为决策提供数据支持
  3. 测试可以降低同类型产品开发遇到问题的风险。

测试原则

  1. 测试证明软件存在缺陷(无论做什么样的测试操作都可以证明软件是有缺陷的,不存在无缺陷的软件)
  2. 不能执行穷尽测试(有些测试是没有办法将所有的测试情况都罗列出来,所以任何的测试都有结束的时间)
  3. 缺陷存在群集现象(28理论)——>20核心+80边缘

在实际过程中,我们会集中测试20%的核心功能

     4、某些测试需要依赖特殊的环境

     5、测试要尽早介入(为了更多地发现和更好的解决软件中的缺陷,测试工作需要尽早开始)

     6、“杀虫剂”现象:同样的一个测试用例不能重复的执行多次,因为软件会对它产生免疫

     7、“不存在缺陷”谬论:任何软件不可能是完美的

在公司中,做测试这块比较普遍的工作流程:

需求分析

注:需求的设计重在经验的积累,不是一时的努力(测试很多情况是开发转过来的)

  1. 当前阶段的核心是梳理清楚我们需要设计的点是什么
  2. 测试需求的来源:需求规格说明书(项目经理提出项目并书写需求说明书)
API文档(技术部门)

竞品分析(同行产品,根据对方产品的劣势,测试自己产品)

个人经验(做单调的工作,自己最值钱的地方)

特别地,软件专业学生没有专业优势,有行业背景的工程师是最强的(业务的了解程度)

设计用例 ***

  1. 测试用例就是用户为了测试软件的某个功能而设计的需要执行的操作过程
  2. 测试这块有白盒测试和黑盒测试,但是目前做的多的还是黑盒测试
  3. 设计用例不是盲目的,它有据可行(等价类[各类中有代表性的数据测测]、边界值、判定表…..)
  4. 等价类划分法:(属于黑盒测试):将不能穷举的过程进行分类,从而保证完整性和代表性(在取值范围内去有代表性的值——>有效等价类的确定

注:测试不能完全,只能同等情况下选择最优。

评审用例(测试组内有经验的同事或者测试组长

主要工作是:对当前的测试用例进行添加和删除(某些点没有涉及到/部分点没必要

配置环境***

  1. 环境:指的就是当前被测对象运行所需要的执行环境。(注:作为高测,需要必备的基础能力)——》[新手一般使用一键安装的集成环境,low]
  2. 环境分类:操作系统 + 服务器软件 + 数据库 + 软件底层代码的执行环境
  3. 底层代码的执行环境:(php、Java、python做网页)比如index.html不需要配置,直接可以在浏览器中运行,但是如:index.jsp在无任何准备的情况下就不能顺利运行

执行用例

     1、一般在执行测试用例之前我们会做一个冒烟测试。

冒烟测试():核心是:快速地对当前软件的核心功能或者主体执行流程进行验证。如果此阶段有问题,则可以直接将此版本会退给开发,等待下一个版本的到来(比如:购物平台中商品不能加购物车

      2、如果冒烟测试通过,才准备开展全面的测试

回归测试及缺陷跟踪

  1. 回归测试指的是当我们将某个缺陷提交给开发后,有他们进行修复,修复完成后需要测试人员再次对其进行测试[回归测试]
  2. 缺陷跟踪:指的就是当测试人员发现某个缺陷之后需要一直对该缺陷的状态进行跟踪,直到其结束为止。

输出测试报告

(1)将当前的测试过程中产生的数据进行可视化的输出,方便其他人去查看。

  1.  测试结束:结束还算一个步骤吗?

算,很多公司很在乎,他们希望自己的产品持续更新迭代,

测试人员需要将整个测试过程中产生的一些文档进行整理归档,方便后续版本的使用

猜你喜欢

转载自blog.csdn.net/weixin_42067873/article/details/105740275