测试理论基础

1.软件测试行业基本介绍

1、为什么需要软件测试
1.任何软件都会存在问题,为了保证软件的功能时可用的,我们必须进行测试
2.为了提高用户体验,需要我们对软件进行大量测试
2、为什么选择软件测试
1.国内的软件行业对于专业的软件测试人员的需求是慢慢变大的
2.有些人喜欢创造世界所以他们做了开发,而我们就是希望世界更加完美
3、为什么不让开发自己做测试
1.当前行业有许多的测试从业人员本身之前都是开发岗
2.专业度:软件测试和软件开发分别属于软件行业当中两个不同的技术方向。所以,让专人做专事对质量更加有保障。
3.思维定式:在软件的开发周期中,对于程序员来说他们大多数的时间都是思考如何实现具体的软件功能。而不会从用户角度考虑如何去“奇葩”的使用这些功能。
4.测试力度:相对于开发来说,产品就像是他们的孩子,所以下手就不会那么狠

2.软件测试基本介绍

1、软件测试定义
通过手工或者工具对“被测对象”进行测试操作,从而验证实际结果与预期结果是否存在差异。
2、软件测试的作用
1.通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心。
2.测试可以记录软件运行过程中产生的一些数据,从而为决策提供数据支撑。
3.测试可以降低同类型产品开发遇到问题的风险。
3、软件测试的七个原则
所谓测试的原则就是我们在执行测试中必须要遵守的一些规则

1.测试显示软件中存在缺陷 Testing shows presence of defects:测试只能证明软件中存在缺陷,但并不能证明软件中不存在缺陷。软件测试是为了降低存在缺陷的可能性,即便是没有缺陷,也不能证明软件是完美的。
2.穷尽测试是不可能的 Exhaustive testing is impossible:现在软件的规模越来越大,复杂度越来越高,想要做到完全性的测试是不可能的。在测试阶段,测试人员可以根据风险和优先级来进行集中和高强度的测试,从而保证软件的质量。
3、测试尽早介入 Testing early:为了保证软件质量,降低风险和成本。测试人员一般在需求阶段就开始介入,是缺陷在需求或设计阶段就被发现,缺陷越早发现,修复的成本就越小
4、缺陷集群性(2/8原则) Defect clustering:缺陷集群性表明小部分模块中包含大部分的缺陷。软件测试中存在 帕累托原则:80%的缺陷发现在20%的模块中
一个功能模块发现缺陷越高,那存在未被发现的缺陷也越高,故发现的缺陷与未发现的缺陷成正比
5、杀虫剂悖论 Pesticide Paradox:跟昆虫的抗药性一样,如果一直使用相同的测试方法或手段,可能无法发现新的bug
为了解决这个问题,测试用例应当定期修订和评审,增加新的或不同的测试用例帮助发现更多的缺陷
测试人员不能一直依赖于现有的测试技术,而要不断的提升测试方法以提高测试效率
6、测试活动依赖于测试内容 Testing is context depend:根据业务的不同,软件测试内部也分为不同的行业,比如游戏行业、电商行业、金融行业。不同的行业。测试活动的开展都有所不同,比如测试技术工作的选择,测试流程都不尽相同,所以软件测试的活动依赖于所测试的内容
7、没有错误是好事谬论 Absence of error - fallacy:有可能99%没有bug的软件也是不能使用的。如果对错误的需求进行了彻底的测试,这种情况就发生了。软件测试不仅是找出缺陷,同时也需要确认软件是否满足需求。如果开发出来的产品不满足用户需求,即便找到和修复了缺陷也用处不大

3.测试对象

对于当前的测试行业来说我们最经常测试的主体就是软件(主体功能),但是需要我们明对于当前的测试行业来说我们最经常测试的主体就是软件(主体功能),但是需要我们明白是一个软件也不仅仅只有功能需要测试。我们可以将软件分为三个部分组成:功能集合+使用说明+配置数据。
对于一款软件来说从无到有需要不同的过程,我们可以将这个过程分为不同的阶段然后每个阶段都会相应有测试对象

1.需求分析阶段:各种需求规格明说
2.软件架构设计:API接口文档(借口测试)
3.编码实现阶段:源代码(白盒测试、单元测试)
4.系统功能使用:软件功能主题(当前行业做的最多的一种测试)

4.测试级别

1、单元测试【UT unit test】
在软件测试中单元指的就是组成软件最小的底层代码结构,一般就是类、函数、组件(当下的软件测试行业,不会刻意要求测试人员对源代码进行测试)
2、集成测试【IT system ingertaion test】
将多个单元模块组合在一起,然后验证他们之间沟通的“桥梁”是否能正常工作(接口测试)
3、系统测试【ST system test】
这是当前行业做的最多的一种测试。由测试人员充当用户然后对软件的功能主题进行测试
4、验收测试
1.α测试–(内测)
2.β测试–(公测)
3.UAT(user acceptance test)测试-- 由客户派出对于业务精通的人员来使用该软件,从而对功能进行测试
4.验收测试的核心就是让客户为当前软件“买单”

5.系统测试分类

1、功能测试
验证当前软件主题功能是否可用

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

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

4、性能测试
相对于当前软件消耗的资源,它的产出能力

6.常见的系统测试方法

1、按照测试对象进行分类
1.白盒测试:这种测试的主体就是软件底层代码,不在意外在的界面是否OK,只要求底层功能实现。同时逻辑正确
2.黑盒测试:这种测试就是指测试软件外在主体功能是否可用
3.灰盒测试:介于两者之间(接口测试)
4.注意:上述三种方法中的“盒”指的就是被测对象(也就是我们所说的软件)

2、按测试对象是否执行分类
1.静态测试:测试对象不执行。(一般测文档、纯界面静态展示性质的)
2.动态测试:讲软件运行在真实的使用环境中进行测试

3、按测试手段进行分类
1.手工测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活的改变测试操作及环境
2.自动化测试:所谓自动化主要有两种形式,一种是自己写测试脚本,另一种就是通过第三方工具对被测对象进行测试。优点是可以高效率的去执行一些人工无法实现的操作

7.软件质量特性

1、功能性:软件需要满足用户显式或者隐式功能

2、易用性:软件易于学习和上手使用

3、可靠性:指的就是软件必须实现需求当中指明的具体功能

4、效率性:类似于软件的性能

5、可维护性:要求软件具体将某个功能修复之后继续使用的能力

6、可移植性:当前软件可以从一个平台移植到另一个平台上去使用的能力

8.软件测试流程

1、需求分析
1.当前阶段的核心目的就是梳理清楚我们需要涉及的点是什么
2.需求的来源:需求规格说明书、API文档、竞品分析、个人经验…

2、设计用例
1.用例就是客户为了测试软件某个功能而执行的操作过程
2.设计用例是有方法的(等价类、边界值、考判定…)

3、评审用例
对当前用例进行添加或者删除

4、配置环境
1.环境:指的就是当前被测对象运行所需要的执行环境,作为测试人员需要具备配环境的能力。【一般情况下都会使用一键安装的集成环境】
2.环境分类:操作系统+服务器软件+数据库+软件底层代码的执行环境

5、执行用例
1.一般在执行用例之前我们会做一个冒烟测试。这种测试的核心就是快速的对当前软件的核心功能或者主体执行流程进行验证。如果冒烟测试阶段有问题,则可以将此版本回退给开发
2.如果冒烟测试通过,那么才会展开全面的测试

6、回归测试及缺陷追踪
1.回归测试:是指的就是当我们将某个缺陷提交给开发之后,由他们进行修复,修复完成之后需要测试人员再对其进行测试
2.缺陷跟踪:指的就是当测试人员发现某个缺陷之后需要一直对其进行状态跟踪

7、输出测试报告
将当前测试过程中产生的数据进行可视化的输出。方便其他人去查看

8、测试结束
将整个测试过程中产生的一些文档进行整理归档,方便后续使用

9.软件架构

1.所谓的软件架构我们可以理解为用来指导我们软件开发的一种思想。目前来说最常见的两种架构模式就是B/S C/S B—browser 游览器 C—clent 客户端 S— server 服务端

2.两种架构的比较
1.标准:相对于CS架构来说 BS架构的两端都是使用现成的成熟产品。所以BS会显得标准一些
2.效率:相对于BS架构来说 CS中的客户端可以分担一些数据处理,因此执行效率会高一些
3.安全:BS架构当中数据传输都是以HTTP协议进行输出,而HTTP协议又是明文输出。可以被抓包所以相对于CS架构来说 BS就显得不那么安全【相对的】
4.升级:BS架构只需要在服务器端将数据进行更新,前台只需要刷新页面就可以完成升级,而CS架构当中必须要将两端进行更新
5.开发成本:相对于BS架构来说 CS当中的客户端需要自己开发,所以相对于成本来说会高一些。

10.游览器基本介绍

1、游览器是什么
浏览器本质就是一款软件,安装在操作系统上。一般给用户提供浏览网页服务.目前我们会人为的将所有浏览器总结出一个所谓的五大生产厂商

2、五大游览器生产厂商
1.IE(微软):是微软出品的浏览器,IE4 以上版本都是Trident内核。
2.Chrome(谷歌):google Chrome,谷歌游览器之前一直使用苹果的webkit内核,但是现在它与苹果内核分道扬镳,开创了新的blink内核,这个内核也在被欧鹏(Opera 游览器)共同采用和开发
3.Firefox(火狐):Mozilla Firefox,内核是Gecko
4.Safari(苹果):使用的是苹果公司自己的内核 webkit
5.Opera(欧鹏):内核是blink

3、常见的图片的类型
1.jpg(jpeg):这是一种可以高度保留图片色彩信息的格式
2.png:该类型的图片可以实现透明
3.gif:图片所占体积小,可以实现动图
4.psd:它是一种分层的图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值