关于测试的基础知识

软件测试的基础

一、软件测试了解

1、软件测试的定义:

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

2、软件测试的发展方向:

  目前软件测试发展方向大致可分为三个方向:自动化测试工程师白盒测试
工程师
性能测试工程师

自动化测试:自动化测试有广义和狭义之分,广义上一切使用工具或代码来代替手工测试都可以认为是自动化测试;不过,在测试圈中,我们一般狭义的来理解自动化测试,基于UI层的自动化测试技术。

白盒测试工程师:白盒测试工程师定位于在软件测试周期的单元测试阶段对软件进行的代码级测试的人,包括代码走读、代码功能与逻辑测试、代码内存泄漏检查、代码运行效率检查、代码测试覆盖率分析等;白盒的优势就是具备测试思维,在设计测试用例时考虑更加全面;但难点也很明显,需要和开发一样熟悉被测代码,在做接口测试的时候,需要去理解开发写的接口的逻辑。

性能测试工程师:性能测试工程师指在系统测试阶段、功能测试后对软件系统性能指标进行采集分析和运行效率检测,同时需要了解系统的整体架构,性能就是验证当前系统的能力,增加服务器也是最便捷的手段。

二、软件测试的背景

1、软件测试出现过程

  软件测试在软件生命周期中占据重要的地位,软件测试慢慢的独立发展成为一个行业,并且在迅猛发展,软件测试主要是发现问题定位问题,配合开发解决问题,如果公司中没有测试岗位可能存在很大的风险。

2、软件测试出现的原因

  第一大原因就是软件产品规格说明书,很多情况下,说明书没有写,或写的不够全面,经常更改,或者开发小组没有很好的沟通,造成对说明书理解的不一致。第二大原因是软件设计,没有做设计或设计不好,经常变动等和产品规格说明书一样的问题,第三个原因才是编写代码和其它原因;前两个原因至少占了 80%以上。

总结归纳:
  需求解释有错误
  用户需求定义错误需求记录错误
  设计说明有误
  编码说明有误
  程序代码有误
  测试错误
  问题修改不正确
  不正确的结果是由于其他的缺陷而产生
  软件结构复杂
  项目期限短
  使用新技术

3、软件测试包含的内容

  程序测试包括程序逻辑功能,界面,性能,易用性,兼容性,安装等测试,当然文档测试也算,排版,字体大小,也算程序测试的内容

三、软件测试基础

1、软件测试环境

测试环境=硬件+软件+网络
硬件环境:笔记本,台式机,服务器
软件环境:不同的操作系统 windows10 windows8 windows7 Linux Mac,
不同浏览器:IE firefox chrom
网络: 局域网还是互联网
在这里插入图片描述

2、软件测试的基本流程

面试的说法:
  首先进行项目立项会,由【产品经理 项目经理 开发人员 测试人员】进行参与,讨论需求并提出建议,在立项会中(如果有产品说明根据产品说明)制定需求文档;
  接着,开发根据需求文档进行编码,测试则根据需求文档进行编写需求文档,编写测试用例以及对用例的评审;
  开发结束后进行提测,之后对主要功能进行冒烟测试,执行测试用例,提交bug 开发进行修改,修改成功后关闭bug,进行回归测试,最后进行验收测试,再上线前进行测试总结。

简单总结:
  立项(项目确定)
  产品(说明书)
  编写需求文档(由需求人员编写)
  需求评审(开发,测试,项目经理,需求人员进行开会,确定需求)
  开发编码自测(开发人员)
  编写测试用例(测试人员)
  测试用例评审(开发,测试,项目经理,需求,进行测试用例的确定)
  提测(环境部署,大多在Linux环境下)测试环境
  冒烟测试(上线前对软件的基本运行测试,通过进行下一项)
  bug管理禅道(提交bug到禅道)
  回归测试(如果是升级版本对之前的bug进行再次的测试)
  验收测试
  上线
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、软件测试的分类

在这里插入图片描述

软件测试
1、按阶段划分
  单元测试、集成测试、系统测试、验收测试

在这里插入图片描述

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证,单元就是人为规定的最小的被测功能模块。

集成测试:集成测试是单元测试的下一个阶段,是指将通过测试单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口部分。
	
系统测试:指的是将整个软件系统看做一个1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。

验收测试:以用户为主的测试,软件开发人员和质量保证人员参加
2、按是否运行程序划分(了解即可)
  静态测试、动态测试
静态测试,是指不实际运行被测试软件,而只是静态的检查程序代码、界面或者文档中可能存在的错误的过程。

动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
3、按是否查看源代码划分

在这里插入图片描述

  白盒测试
白盒测试:指的是把盒子盖打开,去研究里边源代码和程序结构(单元测试,ui/接口自动化测试)
  黑盒测试
盒测试:把被测试的软件看做一个黑盒子,我们不去关心盒子里边的结构是什么样子,只关心软件的输入数据和输出结果
有人把黑盒测试比作中医,通过“望闻问切”来判断是否有问题。

“望”:观察软件的行为是否正常。
 
“闻”:检查输出的结果是否正确。
 
“问”:输入各种信息,结合“望”,“闻”来观察软件的响应。
 
“切”:像中医一样给软件“把把脉”,敲击一下软件的某些“关节”

    功能测试
      逻辑功能测试:测试应用是否符合逻辑,比如应该先注册账号之后,才能进行登录,登录之后才能看我的购物车。
      界面测试:窗口大小,按钮大小,点击按钮弹出什么样的提示框,是否有滚动条,下拉菜单是否有展示内容…
      易用性测试:从软件使用的合理性和方便性等角度对软件系统进行检查,比如,软件窗口长宽比例是否合适,颜色色彩是否赏心悦目,字体大小是否合适
      安装测试:在这里插入图片描述

      兼容性测试:硬件兼容性测试和软件兼容性测试; 硬件兼容性:比如一款软件在pc机,笔记本,主机上是否兼容; 软件兼容性测试:比如一款软件在windows8和windows10上是否兼容
    性能测试
      一般性能测试:软件正常运行,不向其施加任何压力的测试
      稳定性测试:也叫可靠性测试,是指连续运行被测系统,检查系统运行时的稳定程度。
      负载测试:让被测系统在其能够忍受的压力范围之内连续运行,来测试系统的稳定性。(测试载重)
      压力测试:持续不断的给被测试的系统增加压力,直到被测试的系统压垮为止,用来测试系统所承受的最大压力。(测试强度)

4、其他
  回归测试、冒烟测试、随机测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

冒烟测试:指对一个软件进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

随机测试:是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误

3、测试案例需要考虑的方向

需求:(功能,性能,界面,安全,易用)

4、软件测试的模型

  1、V模型

在这里插入图片描述
优点:
1 每一个阶段都清晰明了,便于控制开发的每一个过程。
2 既包含单元测试又包含系统测试。
缺点:
1 测试介入的比较晚,对于前期的一些缺陷无从发现和修改。
2 测试和开发串行。

  2、W模型

在这里插入图片描述
优点
1 测试伴随着软件的整个生命周期,例如,在需求分析结束后就可以进行需求分析测试。
2 测试于开发是并行独立进行的。
缺点
1 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
2 对于需求和设计的测试技术要求很高,实践起来很困难。

5、软件测试的工具

简介

  软件测试工具是通过一些工具能够使软件的一些简单问题直观的显示,使测试人员更好的找出软件错误所在。
软件测试工具分为自动化软件测试工具和测试管理(禅道)工具。
  软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入。
测试管理工具是为了复用测试用例,提高软件测试的价值。

优点

  一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。

具体工具

Bug管理工具: 禅道 Jira(付费),Trac,gitlab
自动化 python+ selenium ,python+ appnium (ui自动化) pytest,unites,Junit (测试用例 单元测试) innerHtml (发送测试报告) request +python+allure 接口自动化
性能测试工具 jmeter ,Loadrunner、
抓包工具 Fiddler ,charles (弱网测试的)
接口工具 postman ,jmeter
录制脚本 bodyboy jmeter

云测 腾讯云 模拟不同的移动端或者是web浏览器

命令 Linux adb monkey
数据库 myql,oracle,redis,MongoDB
语言 python,java

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值