从最基本的理解,软件测试的定义是:

规定的条件下对程序进行操作,以发现程序错误衡量软件质量,并对其是否能满足设计要求进行评估的过程

在《软件测试的艺术》一书中,作者对于软件测试的一句话定义是:

测试是为发现错误而执行程序的过程

由此可见,软件测试,不是毫无目的地进行点点点。

从最初的定义中,软件测试有 4 个关键点:

  1. 规定的条件:以测试用例作为测试的依据,测试用例可以指引测试人员逐步操作;

  2. 发现程序错误:指的是找出程序中的bug

  3. 衡量软件质量:对软件质量进行评估,它到底好不好用,稳不稳定等;

  4. 满足设计要求:重点是客户的要求,在公司里,产品经理会根据客户的要求,输出设计文档;其次,就是用户的需求及操作文档

通过上述的描述,大家对软件测试有了基本的了解。那么,接下来,有人会有疑问,怎么开展测试?用什么测试方法?

本篇文章,先按照开发阶段来进行划分,来看看软件测试的方法。

1、单元测试(Unit Testing)

单元测试,又称模块测试。对软件的组成单位进行测试,其目的是检验软件的基本组成单位的正确性。测试的对象,是软件测试的最小单位——模块

其中,这里的最小单位,通常指的是函数或者类等,例如下面这一段简单的 Python 函数,就可以是一个最小单位:

def func(x):  
    """实现数值加1,并返回得到的值"""  
    x += 1  
    return x

从生活的角度理解,作为技术人,相信大部分人都知道高达模型吧。

曾经的我也憧憬有一个属于自己的高达模型,等转行成功后,一定买一个作为对自己的奖励。

那么,模型中的每一个配件,例如每一个手指的关节,就是一个最小单位,等同于程序中的模块——函数、类 and so on。

2、集成测试(Integration Testing)

集成测试,也称联合测试(联调)、组装测试。将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。

集成测试是在单元测试之后执行的,主要目的是检查软件单位之间的接口是否正确

以淘宝为例,注册与登陆之间的接口,商品详情与加入购物车的接口,购物车结算与付款的接口等等;

上面的高达模型中,这几个配件能否组装成高达的手臂,能否组装成高达的剑,能否组装成高达的翅膀等等,就类似于为高达模型做集成测试。

3、系统测试(System Testing)

系统测试,将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。

在实际的工作中,测试团队的大部分时间都花在系统测试的执行上,包括冒烟测试和回归测试。

以我们熟知的王者荣耀为例,整个软件开发完成之后,就相当于一个系统,它能不能让用户注册登陆,能不能玩,并且,不仅要求能在手机上玩,而且还要求能在 PC 端上玩,这一切,都需要进行系统测试。

一个高达模型,组装完成之后,手臂和脚是否能够移动,翅膀能否展开,整体是否牢固、结实,相当于把拼装好的高达模型,作为一个系统,进行测试。

4、验收测试(Acceptance Testing)

验收测试,也称为交付测试,是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,为了向软件购买者展示该软件系统满足原始需求。

QQ、微信这一类普遍大众使用的软件产品,你和我以及社会广大群众都是它们的验收者;也有一些软件,例如面向政府、大学管理的软件,那么,政府的工作人员,大学的师生,就是这一类软件的验收者。

以上就是本篇文章所要分享的内容,欢迎各位大牛指正。你的指正,能让我在测试之路上快速成长。

Leo Never Stop Fighting!


↙↙↙阅读原文可查看相关链接,并与作者交流