技术|测试工程师需要准备哪些知识


零基础测试工程师的必备技能

  • 概述
  • 测试基础理论
    • 软件测试的分类
    • 研发管理模型
    • 测试流程
    • 测试方法(比较重要的测试方法)(用来设计测试用例)
    • BUG的管理
    • 测试的应用
  • 总结

概述 本文会记录一些本人有关于测试工程师岗位的学习的整个过程和理解,如有错误或不足欢迎指正。下文会从测试基础理论,测试的工具学习,代码学习,自动化几个方向记录。测试,文档,编程能力
软件测试工程师实际上是看预期结果和实际结果是否相符
软件测试的发展历程
  1. 证明软件测试是正确的:因为初期的软件产出很不稳定,证明软件的功能是可以运行的。
  2. 证明软件测试是错误的:找出不对的地方,增加容错。
  3. 软件测试是保证软件质量是符合用户需求的一些列手段:和软件开发流程息息相关(预防bug)国内更加重视以技术为导向,国外更偏向于测试流程用质量控制一些理论。
测试的常识
  • 测试是无穷无尽的,测试的数据是无穷无尽的。
  • 评审:同行评审,小组评审,部门评审,项目评审,第三方评审
互联网公司的研发团队结构
技术|测试工程师需要准备哪些知识
文章图片

职业发展
最开始找工作大概:功能测试技术|测试工程师需要准备哪些知识
文章图片

测试基础理论
测试的定义、测试的分类、测试的方法、测试的生命周期。 测试计划、测试方案、测试策略、测试用例的编写。 BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。 测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。 PDCA、5W2H等分析管理的方法 质量管理体系CMMI(了解)
作者:浪晋
链接:https://www.zhihu.com/question/264794090/answer/286383593
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
软件测试的分类
  1. 按照测试方法的分类:
    黑盒测试:只看输入输出,对于软件来说运行暴露的功能是否是正确的。
    白盒测试:检查内部的结构和逻辑看是否有问题,对于软件来说就是看代码是否正确。
    灰盒测试:把两种测试方式结合在一起。
  2. 按照测试的方向的分类:
    功能测试:测试功能,功能测试并不是黑盒测试而功能测试经常采用黑盒测试的方法。
    性能测试:测试性能,性能测试就是能做多好。
    分三点 :
    (1)压力测试:模拟用户数量不断增加,逐渐测试发现软件的一个瓶颈。
    (2)负载测试:持续保持高强度(不会按照峰值的强度测试,而是峰值80%~90%)的工作,看看能维持多久
    (3)并发测试:一瞬间所有人同时在做同一个事情,多线程出错的问题。
    安全测试:测试安全,模拟黑客攻击系统。
  3. 按照软件开发的阶段的分类:
    单元测试:具体测试开发的代码模块(方法,函数,类)
    集成测试:主要测试接口(**接口:**不同的代码模块通过接口进行数据的发送和链接)
    系统测试:集成的系统(功能,性能,安全,兼容性:(WEB不同的浏览器,APP不同的系统),易用性,稳定性,UI)
    验收测试:产品,领导的测试
  4. 按照对象来分类:APP测试,WEB测试,物联网测试,车联网测试,小程序测试,嵌入式测试,大数据测试,AI测试。
  5. 按照软件的状态测试:
    静态测试:软件的不运行的测试
    动态测试:软件运行起来的测试
  6. 其他测试:
    冒烟测试:测试前的测试,大概检测一下功能的完善程度。
    回归测试:检查开发者的bug是否已经被改正。
    阿尔法测试:内测,开放给一小部分内部的工作人员。
    贝塔测试:公测,有一些实际的用户进行试用。
研发管理模型 1.瀑布流模型:不可逆转的模型技术|测试工程师需要准备哪些知识
文章图片

2.V字型模型:左面开发和右面测试的工作有一一对照的关系。
技术|测试工程师需要准备哪些知识
文章图片

3.W字型模型:双V模型。左面的V是研发右面的V是测试。特点就是研发和测试的工作是同步的。
技术|测试工程师需要准备哪些知识
文章图片

4.敏捷模型:高效的工作,及时的沟通,日报,白板,站立会,集中办公。
测试流程
  1. 需求分析阶段:
    (1)需求分析:-需求文档-产品原型-口述(产品经理写的)
    (2)学习业务流程
    (3)提取功能点:由大到小,按照框架图找到最小的功能。并且把对应功能的描述,效果限制等写成备注在后面。
    技术|测试工程师需要准备哪些知识
    文章图片

    (4)编写需求分析说明书
  2. 测试设计阶段:(5W1H方法编写前三点)
    (1)测试计划:时间和人员的分配
    (2)测试方案:针对每个测试内容如何开展测试,采用什么测试计划,使用什么测试工具
    (3)测试策略:哪些测试内容先测,哪些内容后测,开始测试和结束测试的标准是什么。
    (4)测试用例(测试工程师写):给测试人员一个指导,详见测试方法。
    a 用例编号:唯一的。
    b 用例名称:言简意赅,描述清楚这个用例是测试什么东西的。
    c 前置条件:执行用例之前,软件必须要满足的条件。
    d 优先级:时间有关,执行这测试用例的时间的紧急的登记。
    e 重要级:功能有关,这个测试功能在系统里面的重要级别。
    f 测试数据
    g 测试步骤
    h 预期结果
    i 实际结果
  3. 测试执行阶段:预期结果和实际结果做对比,如果一样则通过,如果不一样则有问题。
    - 提交bug(详见bug的管理)。
    - 回归测试:在版本2检查版本1上发现的问题有没有被解决(详见bug的管理流程/生命周期)。
  4. 测试总结阶段
    - 对工作的总结:做了哪些事情,总结一下。
    - 对BUG的统计分析:测试,开发,软件模块,等级,解决时间,每个版本,状态。
    - 对被测软件的质量评估:软件测试结束的标准:一二级的BUG全部关闭了+三级的BUG关闭80%+四级的BUG无所谓
测试方法(比较重要的测试方法)(用来设计测试用例)
  1. 等价类法:通过少量的数据代表大量的数据(选择一些有普遍意义的值代表大部分的情况,值是大量的,没有办法一个一个去尝试)
    (1)无效等价类:无效的值
    (2)有效等价类:有效的值
  2. 边界值法:找到输入的有效边界值。
    举个例子:
    微信发红包:
    边界值:0.01-200
    有效等价类:0.01,0.02,200,199.99,99.99
    无效等价类:0,200.01
  3. 场景法 :模拟用户针对一个软件的,每一个场景,用户会进行哪些操作。
    举个例子:
    - 发送成功:
    用户输入符合要求的金额,发送红包成功。
    - 发送失败 :
    1. 用户什么都没输入,不能发送成功。
    2. 用户输入超出范围的值,不能发送成功。
    3. 。。。。。。
BUG的管理
  1. BUG的管理平台:
    (1)禅道
    (2)BUGFree
    (3)ALM/QC
    (4)testlink
    (5)Bugzilla
    (6)JIRA
  2. BUG的六要素
    - 编号
    - BUG的名称:言简意赅,说明bug
    - BUG的优先级:时间上的评定,这个BUG需要优先解决吗
    - BUG的严重级别:
    - 致命的:影响产品的核心流程的正常使用;导致软件挂了,闪退,崩溃;和钱有关
    - 严重的:导致了功能上的无法使用。
    - 一般的:功能上有些场景无法正常使用。
    - 轻微的:建议性的东西,UI的问题,用户的体验。
    - BUG的复现步骤:可以把用例的步骤赋值过来;预期结果和实际结果。
    - 附件:佐证。
  3. BUG的生命周期技术|测试工程师需要准备哪些知识
    文章图片

  4. BUG的状态
    - 新建new
    - 打开/激活 open
    - 已确认
    - 已解决
    - 拒绝
    - 重新打开 reopen
    - 关闭 closed
    - 延期处理
    - 重复BUG
  5. BUG的等级
测试的应用
【技术|测试工程师需要准备哪些知识】前言:软件结构分为
  • B/S结构 Browser/sever:
    -C/S结构 client/server:需要单独安装和安装新版本;
  1. app测试(专项测试):
    - 安装/卸载
    - 消息推送
    - 更新
    - 弱网测试: 2/3/4/5G/WI-FI
    - 场景交互:来电话了,正在听音乐,调用相机,前后台的切换
    - 权限测试
    - 离线测试
  2. web 测试:
    版本迭代
    随着时间/测试次数的推进,会发布很多版本,其中版本号是不断增加的。
    增量测试和全量测试:
    增量测试:只测试已知有变化的功能+自动化测试。
    全量测试:测试所有功能。
总结

    推荐阅读