软件测试行业基本介绍
软件测试定义:通过手工或者工具对“被测对象”进行测试操作,从而验证实际结果与预期结果之间是否存在差异。
作用:
测试原则:在执行测试工作时必须遵守的规则。
1.测试证明软件存在缺陷 :无论执行什么样的操作都不能证明这个软件没有缺陷。
2.不能执行穷尽测试:有些功能是没有办法将所有的情况都罗列出来,所以任何的测试操作都有 结束的时间。
3.缺陷存在群集现象:对于软件功能来说,核心功能占20%,非核心是80%,在实际工作中,我 们会集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%。
4.某些测试需要依赖特殊的环境。
5.测试应该尽早介入:为了更多的发现和更好的解决软件中的缺陷,追求测试工作尽早展开。
6.杀虫剂现象:同样的一个测试用例不能重复的执行多次,因为软件会对他产生免疫。
7. 不存在缺陷谬论:任何软件不可能是完美的。
测试对象
最经常测试的主体就是软件(主体功能),但是需要明白的是一个软件不仅仅只有功能需要测试。我们可以将软件分为三个部分:功能集合+使用说明书+配置数据。
对于一款软件从无到有需要不同的过程,这个过程分为不同阶段,每个阶段都有相应的测试对象。
1.需求分析阶段,测试对象:各种需求规格说明书。
2.软件架构设计,测试对象:API接口文档(接口测试)。
3.编码实现阶段,测试对象:源代码(单元测试,白盒测试)。
4.系统功能使用:测试对象:软件功能主体(黑盒测试,当前行业做的最多的测试)。
测试级别
软件开发都会依据相应的开发模型,测试级别值得是就在这个模型当中我们认为顶i一的开发步骤。其中对于测试来说我们最常见的一种级别分类如下:
1.单元测试(UT:unit test):在软件测试中单元指的就是组成软件最小的底层代码结构,一般就是类,函数,组件。
2.集成测试(IT:system ingertation test):将多个单元模块组合在一起时,验证它们之间沟通的“桥梁”是否能正常工作(接口测试)。
3.系统测试(ST:systerm test):当前行业做的最多的测试,由测试人员充当用户然后对软件的功能主体进行测试。
4.验证测试:
(1)α测试:内测,公司内部开发和测试人员在一起
(2)β测试:公测,外部用户测试,开发和测试人员不在一起
(3)UAT(user acceptance test)测试:由客户派出对用业务非常精通的人员来使用该软 件,从而对功能进行测试。
(4)验收测试的核心就是让用户为当前软件“买单”。
系统测试分类
1.功能测试:验证当前软件的主体功能是否可用。
2.兼容性测试:当前软件在不同的环境下是否可以使用。
3.安全测试:验证软件是否只是对授权用户提供功能使用。
4.性能测试:相对于当前软件消耗的资源,它的产出能力。
系统测试方法
按测试对象分类
1.白盒测试:测试主体是软件底层代码,不在意外在界面,只要底层功能实现,逻辑正确。
2.黑盒测试:测试软件外在主体功能是否可用。
3.灰盒测试:介于二者之间(接口测试)。
“盒”指的就是被测对象
按测试对象是否执行分类
1.静态测试:指的就是测试不执行。
2.动态测试:将软件运行在真实的使用环境中进行测试。
按测试手段进行测试
1.手工测试:由测试人员手动对被测试对象验证,优点就是可以灵活改变测试操作及环境。
2.自动化测试:一种是自己写测试脚本,另外一种就是通过第三方的工具对被测试对象进行 测试,优点是可以高效率的去执行一些人工无法实现的操作。
软件质量
描述当前软件是否好用,在当前软件行业里采用的是一套标准是基于ISO组织制定的。
软件质量六大特性:
1.功能性:软件需求满足用户显示或者隐示功能。
2.易用性:软件易于学习和上手使用。
3.可靠性:软件必须实现需求当中指明的具体功能。
4.效率性:类似于软件的性能。
5.可维护性:要求软件具有将某个功能修复之后继续使用的能力。
6.可移植性:当前软件可以从一个平台移植到另一个平台上去使用的能力。
(功能 靠 用,效率 可 “以”)
软件测试流程
1.需求分析:
(1)当前阶段的核心目的就是梳理清楚我们需要设计的点是什么。
(2)需求的来源:需求规格说明书,API文档,竞品分析,个人经验
2.设计用例:
(1)用例就是用户为了测试软件的某个功能而执行的操作功能。
(2)设计用例是有方法的(等价划分类,边界值,判定表。。。)
3.评审用例:
对当前的用例进行添加或者删除
4.配置环境:
(1)环境:当前被测对象运行所需要的执行环境,需要具备配环境的能力。(一般情况下都会 使用一键安装的集成环境)
(2)环境分类:操作系统 + 服务器软件 + 数据库 + 软件底层代码的执行环境
5.执行用例
(1)执行用例之前会做一个冒烟测试,这种测试的核心就是快速的对当前软件的核心功能或者 主体执行流程进行验证。如果冒烟测试阶段有问题,则可以将此版本回退给开发。
(2)如果冒烟测试通过那么才会开展全面的测试。
6.回归测试及缺陷跟踪
(1)回归测试指的是当我们将某个缺陷提交给开发之后,由他们进行修复,修复完成之后需要 测试人员再次进行测试(回归测试)
(2)缺陷跟踪:指的就是当测试人员发现某个缺陷之后需要一直对其进行状态的跟踪。
7.输出测试报告
将当前的测试过程中产生的数据进行可视化的输出,方便其他人去查看。
8.测试结束
将整个测试过程中产生的一些文档进行归档整理,方便后续版本使用。
软件架构
可以理解为是用来指导我们软件开发的一种思想,目前来说最常见的两种架构模式就是:
B/S C/S :浏览器架构,客户端架构
B——browser 浏览器
C——client 客户端
S——server 服务端
两种架构的比较
1.标准:相对于CS架构来说,BS架构的两端都是在使用现成的成熟产品,所以BS会标准一些。
2.效率:相对于BS架构,CS中的客户端可以分担一些数据的处理,因此执行效率会高一些,
3.安全:BS架构当中的数据传输都是以HTTP协议进行输出,而HTTP协议又是明文的,所以相对来说,BS就显得不那么安全。
4.升级:BS架构只需要在服务器将数据进行更新,前台只需要刷新就可以升级,而CS架构当中必须要将两端都进行更新。
5.开发成本:相对于BS架构来说,CS当中的客户端需要自己开发,所以相对来说成本会高一些。
浏览器基本介绍
浏览器本质就是一款软件,安装在操作系统之上。一般给用户提供浏览网页的服务。目前来说将所有浏览器总结出一个所谓的五大生产厂商。对于浏览器来说最核心的就是内核。
1.IE(微软)——trident
2.Chrome(谷歌)——blink
3.Firefox(火狐)——gecko
4.Safari(苹果)——webkit
5.Opera(欧朋)——presto(现在已经放弃自己的东西完全向chrome)
常见图片类型
测试工作基本流程
1.测试需求分析
2. 测试设计
3.测试执行
4.测试分析总结