1. 软件测试的目的是什么?

最终目的是提高软件的质量。


  1. 软件开发的流程。

    1. 市场需求
    2. 指定相应的计划
    3. 进行具体的需求分析 — 测试开始介入
    4. 进一步做设计
    5. 开发编写代码
    6. 测试进行测试
    7. 上线运行维护。

      需求分析

  2. 测试在需求分析阶段,开始介入。 请问你是怎么介入的?

软件测试基础回顾 - 图1

需求评审完成之后, 开发进行对应的代码编写,我们测试人员准备测试用例。
等到开发完成部分功能的测试,会进行提测, 这个是时候我们测试人员才开始真正介入测试。


相关的细节

  1. 需求文档中有哪些内容?
    1. 本次迭代版本号,
    2. 相关人员
    3. 主要功能的细节。
  2. 需求文档是什么格式的?
    1. word,Excel,pdf
    2. 现在很多公司内部都有自己文档管理系统,直接给到一个链接。
  3. 需求评审平时使用多长时间?
    1. 看需求多少?
      1. 快的话30分钟以内。
      2. 大版本迭代功能比较多,用时相对长一些。
  4. 整理测试点一般使用xmind 工具,编写测试用例一般使用Excel,Xmind.

测试点整理

  1. 平时在整理这些测试点的时候你是怎么整理的?
    1. 工具: xmind 工具
    2. 方法:边界值分析法,等价类划分法,场景法
  2. 针对注册页面设计 测试点

image.png
根据等价类划分法,边界值分析法 整理测试点
手机号注册.png
手机号注册.xmind

流程分析法(场景法)

订单的流程
软件测试基础回顾 - 图4


接口断言

使用jmespath 断言
https://jmespath.org/tutorial.html

话题首页中 limit的值 1的时候 返回结果中的数据长度也为1
image.png
数据长度断言
使用 jmespath中的length 获取返回数据长度。
image.png
image.png
添加 jmespath 断言
image.png

相关面试问题

谈谈你对软件测试的理解,你的见解。 根据你多年的软件测试经验,说说你的感受。

  1. 测试软件的功能要跟需求中的保持一致。(功能测试
  2. 测试尽早开始介入,bug发现的越早,越早解决,对后期的影响就越小。
  3. 开发写完代码之后,也会自己测试,自己测试考虑的场景很少,需要专门的测试人员设计用例进行测试。
  4. 软件不存在缺陷的谬论,即使软件上线,也有可能存在bug,只是这个bug还没有被发现而已。

给你一个注册页面,让你来进行测试,你会怎么测试?

  1. 可以从六个方面进行回答
    1. 功能上: 功能是我们平时在工作过程中使用最多。可以通过 边界值,等价类,流程,场景,错误推断等方式上进行功能点的梳理。
    2. 界面上:查看注册页面是否跟需求文档上定义的保持一致。
    3. 易用性:设计是否符合用户使用习惯,功能是否易于快速识别
    4. 兼容性:不同手机系统版本型号,不同分辨率的设备上显示正常。
    5. 性能:多用户同时注册,要保证服务器性能符合要求。
    6. 安全性:用户注册的时候,输入的密码在网络上传输要进行加密。

相关的其他问题:
朋友圈怎么测试,
微信发红包怎么测试
抖音的评论功能怎么测试。


一般我们说的单接口, 单一个接口,测试的时候需要考虑 正常场景,异常场景。
测试方法:

  1. 先根据业务使用边界值,等价类,判定表方法整理对应的测试点,包含正常场景和异常场景的测试点。
  2. 根据整理的测试点,添加对应的测试数据,放到csv文件中。
  3. 通过postman,JMeter 使用csv 参数化(数据驱动)的方式进行测试。

多接口测试,指的一般是有上下游关联的接口(串联),在测试的过程中 主要考虑正常的业务流程和异常的业务流程。
测试方法:

  1. 先根据业务场景,使用场景法(流程分析法),状态迁移法 方式整理出对应正常业务流程和异常业务流程。
  2. 根据对应的流程,使用参数提取的方式(JMeter中 json提取器,正则表达式提取器、,Postman中写代码提取)将业务中的上游接口提取出来的参数设置变量,下游接口中引用变量,设置对应的流程。

总结

软件测试基础回顾 - 图9