软件测试基础知识(一)

泛型季风
• 阅读 2896

软件测试基础知识(一)

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

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

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

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

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

从最初的定义中,软件测试有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!

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
易娃 易娃
4年前
Go VS Java:一位资深程序员对两种语言的解读
导读:对于软件开发的编程语言,其实没有万能灵药。本文作者详细介绍了他使用Java和Go这两种编程语言,一个是传统语言,一个是新兴语言的工作方式。image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/0f0509de2420894d6c75e8678081e0cd.png)
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
4年前
Jmeter+Ant+Jenkins接口自动化测试框架搭建for Windows
前言软件开发的V模型大家都不陌生,其中测试阶段分为单元测试→功能测试→系统测试→验收测试。其中单元测试一般由开发同学们自己完成,大部分测试具体实施(这里不包括用例设计)是从单体功能测试开始着手的。!(https://usergoldcdn.xitu.io/2018/11/12/16706895ac09c25d?imageView2/0/
Stella981 Stella981
4年前
RSAC2019创新沙盒大赛公司shiftleft介绍
!(https://oscimg.oschina.net/oscnet/8c90299fbb33785510ed9cdc8ef611800c0.jpg)概念:本身ShiftLeft这个单词的在测试行业的意思就是将软件测试阶段尽量前置,测试、开发人员使用项目管理、自动化测试工具全量参与到软件开发活动中。ShiftLeft这家公司于17年
新支点小玉 新支点小玉
2年前
从定义和实施帮你对软件测试进行全解析
软件测试是软件开发过程中的一项重要环节,它的目的是确保软件能够满足预期的需求和质量标准,为客户提供高质量的产品或服务。本文将从定义和实施角度对软件测试进行解析,帮助读者更好地了解软件测试。一、定义软件测试是一种质量保证活动,旨在检测软件产品是否满足用户需求
新支点小玉 新支点小玉
2年前
软件测试报告如何编写?出检测报告的第三方检测实验室推荐
团队进行软件测试工作,编写一份软件测试报告对于测试人员来说必不可少。虽然编写软件测试报告是软件测试人员的工作,但是项目的开发人员比如程序员、软件使用单位对软件测试报告的组成部分有一定的了解也是十分有必要的,软件测试报告比较容易理解,人们并不需要拥有足够的专