软件测试小白--学习笔记1

软件测试笔记

(一)行业

一、为什么需要软件测试?

1.一款软件从无到有会经历很多的开发阶段由不同的人来俩参加开发,所以最终产生出的软件功能可能会存在问题,因此为了保证软件的功能实可用的,我们必须要进行测试。

2.当前的软件行业,已经不再是功能为王了,用户不仅仅只盯着软件的功能是否满足需求,还会对软件是否容易上手,执行效率是否OK....等一系列其他体验都有了更高的要求,所以这也需要我们对软件进行大量的测试。

二、为什么选择软件测试

1.国内的软件行业对于专业的软件测试人员需求是慢慢变大

2.有些人喜欢创造世界,所以做了开发,而我们就是希望这个世界变得更加美好所以做了测试。

三、为什么开发自己不做测试

1.当前行业有许多测试从业人员本身之前都是开发岗。

2.专业度:软件测试和软件开发分别属于软件行业当中二个不同的技术方向,所以让专人做专事对于质量更有保障。

3.思维定式:在软件的开发周期中,对于程序员来说他们大多数的时间都是在思考如何实现具体的软件功能,而不会去从用户的角度考虑如何去“奇葩”的使用这些功能。

4.测试力度:对于开发来说,产品就是相当于他们的“孩子”,所以下手不会那么狠。

(二)软件测试基本介绍

一、软件测试定义

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

二、软件测试的作用

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

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

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

三、测试原则(有底线

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

  1. 测试证明软件存在缺陷:

无论执行什么样的测试操作都只能证明当前软件是有缺陷的。

  1. 不能执行穷尽测试

有些功能是没有办法将所有的测试情况都罗列出来,所以任何的测试操作都有结束的时间。

  1. 缺陷存在群集现象

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

  1. 某些测试需要依赖特殊的环境
  2. 测试应尽早介入

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

  1. 杀虫剂现象

同样的一个测试用例不能重复的执行多次,因为软件会对它产生免疫

  1. 存在缺陷谬论

任何软件不可能是完美的

(三)测试对象介绍

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

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

  1. 需求分析阶段:各种需求规格说明书。(软件想做什么--需求)
  2. 软件架构设计:API接口文档(接口测试--测试类型)
  3. 编码实现阶段:测代码(白盒测试、单元测试)
  4. 系统功能使用:软件功能主体(当前行业做的最多的一种测试)
  • 测试级别

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

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

系统测试分类:

  1. 功能测试:验证当前的软件主体功能是否可用
  2. 兼容性测试:验证当前软件在不同的环境下是否可以使用。
  3. 安全测试:验证软件是否只是能授权用户提供功能使用。
  4. 性能测试:相对于当前软件消耗的资源,它的产出能力。

五)常见的系统测试方法(

  • 按测试对像进行分类
  1. 白盒测试:(透过外在看内在)这种测试的主体就是软件的底层代码,不会在意外的界面是否OK,只要求底层功能实现,同时逻辑正确。
  2. 黑盒测试:(只能看见外表)这种测试就是指测试软件外在主体功能是否可用。
  3. 灰盒测试:介于二者之间(接口测试)(先保证功能可用,然后再通过他的接口保证模块是正确的
  4. 上述三种方法当中的“盒”指的就是被测对象。
  • 按测试对象是否执行分类
  1. 静态测试:指的就是测试不执行。(一般使用在测试文档上面)
  2. 动态测试:将软件运行在真实的使用环境中进行测试。
  • 按测试手段进行分类
  1. 手工测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活的改变测试操作及环境。
  2. 自动化测试:所谓自动化主要有二种形,一种是自己写测试脚本。另外一种就是通过第三方的工具对被测对象进行测试。优点就是可以高效率的去执行一些人工无法实现的操作(例如:12306网站可以容纳多少人去登录,现在一个测试人员最多测几个,但是这没有意义,所以可以使用工具)。

(六)软件质量(

描述当前软件是否好用,在当前的软件行业里我们采用的一套标准是基于ISO组织制定的,需要我们记忆的就是软件质量的六大特征

  1. 功能性:软件需要满足用户显式或者隐式的功能。
  2. 易用性:软件易于学习和上手使用
  3. 可靠性:指的就是软件必须实现需求当中指明的具体功能(靠谱)。
  4. 效率性:类似于软件的性能。
  5. 可维护性:要求软件具有将某个功能修复之后继续使用的能力
  6. 可移植性:当前软件可以从一个平台移植到另一个平台上去使用的能力。

[功能靠用,效率可移]

(面试:你认为的问题开发人员认为不是问题怎么办?----------答:在什么情况下他不是一个bug?软件质量的标准来衡量,利用什么什么[上面这些软件质量标准来扯]。)

(七)软件测试流程(

  1. 需求分析
  1. 当前阶段的核心目的就是梳理清楚我们需要设计的点什么
  2. 需求的来源:需求规格说明书(产品经理一般会给,里面会写功能、用户会怎么使用等)、API文档、竞品分析、个人经验
  1. 设计用例
  1. 用例:就是用户为了测试软件的某个功能而执行的操作过程
  2. 设计用例是有方法的(等价类、边界值、判定表)
  1. 评审用例

对当前的用例进行添加或者删除

  1. 配置环境
  1. 环境:指的就是当前被测对象运行所需要的执行环境,作 为测试人员需要具备配环境的能力。

【一般情况下都会使用一键安装的集成环境】

  1. 环境分类:操作系统+服务器软件+数据库+软件底层代码的执行环境。
  1. 执行用例

(拿着设计好的用例去执行它)

  1. 一般在执行用例之前我们会做一个冒烟测试,这种测试的核心就是快速的对当前软件的核心功能或者主体执行流程进行验证。如果冒烟测试阶段有问题,则可以将此版本回退给开发。
  2. 如果冒烟测试通过那么才会开展全面的测试。
  1. 回归测试及缺陷跟踪
  1. 回归测试:指的就是当我们的某个缺陷提交给开发之后,由他们进行修复,修复完成之后需要测试人员再次进行测试【回归测试】
  2. 缺陷跟踪:指的就是当前测试人员发现某个缺陷之后需要一直对其进行状态的跟踪。
  1. 输出测试报告

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

  1. 测试结束

将整个测试过程中产生的一些文档进行整理归档,方便后续版本使用。

(八)软件架构

所谓的软件架构我们可以理解为是用来指导我们软件开发的一种思想,目前来说最常见的二种架构模式就是B/S、C/S

  1. -browser 浏览器
  2. -client 客户端

S-server 服务端

二种架构的比较

1.标准:相当于cs架构来说,bs架构的二端都是在使用现成的成熟产品。所以bs会显示的标准一些。

2.效率:相对于bs架构来说cs中的客户端可以分担一些数据的处理,因此执行效率会高一些

3.安全:bs架构当中的数据传输都是以http协议进行的输出,而http协议又是明文输出,可以被抓包,所以相对于CS架构来说bs就显得不那么安全【相对的】

4.升级:bs架构只需要服务器端将数据进行更新,前台只需要刷新页面就可以完成升级,而cs架构中必须要将二端都进行更新。

5.开发成本:相对于bs架构来说cs当中的客户端需要自己开发,所以相对于来说成本会高一些。

(九)浏览器基本介绍

  • 浏览器是什么

浏览器本质就是一款软件,安装在操作系统之上。一般给用户提供浏览网页的服务。目前来说我们会人为的将所有浏览器总结出一个所谓的五大生产商。[对于浏览器来说最核心技术就是内核]

  • 五大浏览器生产商
  1. IE(微软)----trident
  2. Chrome(谷歌)----blink
  3. Firefox(火狐)----gecko
  4. Safari(苹果)----webkit
  5. Opera(欧朋)----presto[现在已经放弃自己东西完全向Chrome]

(十)常见的图片类型

  1. Jpg:这是一种可以高度保留图片色彩信息的格式。
  2. Png:该类型的图片可以实现透明。
  3. GIF:图片所占体积小,可以实现动图。
  4. Psd:它是一种分层的图片。

 

为什么学习数据库

测试工程师的目的是找出软件的不足,并告诉开发工程师,出现问题的环境,操作步骤和输入输出的数据。而优秀的测试工程师,当测出问题后,还可以告诉开发团队,问题的原因和解决方案。

这就要求测试工程师除了会测试,还需要知道开发相关的知识,其中非常重要的就是数据库,因为绝大多数的软件都跟数据密切相关,比如微博、论坛、新闻、商城等,这些软件都在不停的操作数据,而他们的数据大部分都是存储在数据库中,开发人员的一大部分工作就是在搬迁数据:把数据库中的数据显示到软件中;把用户输入的数据保存到数据库中。

测试工程师在测试软件的过程中。不仅需要再界面上操作,还需要检查数据库的数据是否正确。从而在软件出问题时,能够定位问题的原因。

 

 

比如测试注册登录功能,在输入了注册信息后,提示注册成功,但是使用刚才注册的信息登录不成功。这时需要检查数据库中是否保存了正确的注册信息,如果数据库中没有保存数据,那么使用刚才注册的账号肯定登录不了,这样问题就能定位问题:注册时,没有把数据存储起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值