资讯中心 Info
当前位置:爱尚教育 > 资讯中心 >
一篇文章了解什么是软件测试
发布日期:2021-12-10 阅读次数:

软件测试基本介绍

一、软件测试定义

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

二、软件测试的作用

1,通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心。

2,测试可以记录软件运行过程中产生的一些数据,从而为决策提供数据支持。

3,测试可以降低同类型产品开发遇到问题的风险

三、测试原则

所谓的测试原则指的就是我们在执行测试工作时必须要遵守得一些原则

 

1,测试证明软件存在缺陷

2,不能执行穷尽测试

3,缺陷存在群集现象

在实际工作中我们会集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%。因此我们就会遇到缺陷都集中在20%功能模块里的现象

4,某些测试需要依赖特殊的环境(南北方温度不同,手机电池低温下未做测试)

5,测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷,我们追求测试工作尽早的展开

6,杀虫剂现象:同样的一个测试用例不能重复的执行多次,因为软件会对她产生免疫(产生抗体)

7,不存在缺陷谬论

 

测试对象介绍

对于当前的测试行业来说我们最经常测试的主体就是软件(主体功能),但是需要我们明白的是一个软件也不仅仅只有功能需要测试。我们可以将软件分为三个部分组成:

功能集合+使用说明书+配置数据

                  配置数据:默认提供给客户的也要是对的(冰箱)

地图软件,淘宝打开有东西吧 默认数据 为了让客户快速的看到网站默认的东西

                   手机买回来会自带的软件都属于配置数据

对于一款软件来说从无到有需要一个过程,我们把可以将这个过程分为不同阶段,然后每个阶段都会有相应的测试

1,需求分析阶段:各种需求规格说明书

2,软件架构设计:API接口文档(接口测试)

设计的概念:房屋构造

CTO:首席技术执行官,不需要做底层代码编写,站在一定的高度,把整个公司的框架搭起来,要实现多少个功能,每个功能有多少个模块,每个模块又有多少个小的模块,画好了出一套文档,程序员拿到了做开发工作

接口文档 接口测试

3,编码时间阶段:源代码(白盒测试,黑盒测试)

   a,确定想法做什么        b,怎么做,c,动手做

这一阶段我们测试对象是源代码(如果测试人员也会代码,那就是两个程序员,成本太高,)

如果可以的话就可以给客户用了

4,系统功能使用(测试阶段):这一阶段测试对象是软件功能主体,当前行业做的最多的一种测试

相当于让测试人员充当客户,对功能主体进行验证,OK了,拿到市面上给客户用

总结:不要认为测试的对象就是软件,这是狭义的错误的,

软件本身有三个部分组成:

 

1,软件有一堆的功能指令,(关闭,最小化)功能说明书,使用人员要培训

2,默认的配置数据(拿到客户面前给客户看的时候第一次展示的内容,是对的)

3,一款软件从没有到有需要很多阶段,作为测试人员每个阶段都有要测的东西(测试需求文档,测试api文档,测试源代码,测试主体功能)

 

测试级别

软件的开发都会依据相应的开发模型,则测试级别指的就是在这个模型当中我们认为定义的开发步骤。其中对于测试来说我们最常见的一种级别分类如下:

1,单元测试(UT  unit test):在软件测试中单元指的就是组成软件最小的底层代码结构,一般就是类,函数,组件(当下的软件测试行业,不会可以要求测试人员对源代码进行测试,谁开发谁测试)

 

小区的单元,小模块进行测试

就是对底层的源代码进行测试,组成构成当前源代码最小的部分,

常见的有三种类型:类,函数,组件(不明白代码没事,找到集合,最小的组成部分)

不管界面多漂亮 ,只管底层的代码对不对,逻辑结果对比不对

 

2,集成测试(IT system ingertation test):

 

将不同的多个单元模块组合在一起,然后验证它们之间沟通的“桥梁”是否能正常工作(换成人话:接口测试 )

单元是最小部件,集成就时组合在一起,

例一:小汽车,雨刷,挡风玻璃。组合三米长的雨刷和挡风玻璃在一起不行了。

例二:两人没结婚前没事,一结婚在一起天天吵架

 

3,系统测试(ST  system test):这是当前行业做的最多的一种测试,有测试人员充当用户然后对软件的功能主体进行测试

4,验收测试:

 

核心:为了让用户为这个软件进行买单(不是为了挑毛病,)

(1)α测试---内测(公司内部,测试开发在一起)

(2)β测试---公测(提问题,反馈,邮箱反馈,奖励)

(3)UAT(user acceptance test)测试---由客户派出本公司业务精通人员来使用该软件,从而对功能进行测试

客户花钱买软件,客户觉得你们懂技术但不一定懂我们的业务,所以客户要站在自己的业务需求角度,派出本公司业务精通人员来对软件进行使用测试(场景)

 

系统测试分类

1,功能测试:验证当前的软件主体功能是否可用

你告诉我好用不行  我得验证

2,兼容性测试:验证当前软件在不同的环境下是否还可以使用

Windouw /Linux,浏览器,客户端:(pad,电视,手机,电脑)

3,安全测试:验证软件是否只是能授权用户提供功能使用

银行卡,密码保护,次数限定

4,性能测试:

 

常见的系统测试方法

一,按测试对象进行分类

1,白盒测试:这种测试的主体就是软件的底层代码,不会在意外在的界面是否ok,只要求底层功能实现,同时逻辑正确。

问你会不会,你可以说了解(不会就是了解哈~~)html,python,数据库等都了解了就会了

虽然现在可能都不会用哈,慢慢学哈

2,黑盒测试:这种测试就是指测试软件外在主体功能是否可用。

看不到里面只能看外在(登录,关闭,测试只能看到的,底层代码看不到)

3,灰盒测试:介于二者之间(接口测试)

先保证功能可用,在保证模块没问题。

4,上述三种方法当中的“盒”指的就是被测对象

 

二,按测试对象是否执行分类

1.静态测试:指的就是测试不执行

不给我软件,我怎么测啊?测文档啊,对着文档看网页界面

2.动态测试:将软件运行在真实的使用环境中进行测试

给我个小汽车,没问题,上路上跑两圈就测试了

 

三,按测试手段进行分类

1,手工测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活地改变测试操作环境。

手机买回来就是拍拍照片打打电话测一测,但就是有的人喜欢在油锅里煮一煮,在冰箱里冻一冻,没问题,有人来操作的时候很灵活就可以改变,但工具不行------自动化

2,自动化测试,自动化测试需要掌握Python,以及一系列测试工具,测试框架。