测试经验总结

Preface

从事测试行业有一年时间了,一直想写一篇文章来回顾总结这一年来的成长。即是分享自己的经验,同时这也是提升自身能力的一种方式。

工作流程简介

测试工作是项目开发过程中的一个环节。通常互联网公司的产品都是采用敏捷开发的模式,从字面意思就可以看出,敏捷开发的核心要点就是快,以周(weekly)为单位迭代产品。系统的大致开发流程如下:

需求分析—>策划方案—>技术方案—>开发阶段—>测试阶段—>发版上线—>总结复盘

产品策划 是整个项目的管理者,对任务排优先级,给开发和测试分配工单。接到需求后策划会进行需求评审,通过后开始输出策划案,然后还要对策划案进行评审。评审通过后就进入了开发阶段。
开发人员 根据策划案的要求编写代码实现系统或应用的具体功能。如果是改动较大的工单(开发新功能、系统重构等)还需要输出技术方案。当然程序员还负责对日常的问题进行排查和修复。其它的工作包括功能优化、代码优化、技术支持,项目维护等等。
测试人员 工单在开发中的阶段就可以着手输出测试用例了。开发把完成的代码提到测试服,然后测试人员对系统展开测试。测试也被称为QA(quality assessment),需要验证开发完成的功能是否符合策划案的要求,保证系统交付的质量。

测试实践经验

测试流程

话不多说,直接上图:
测试流程图

  1. 需求分析:了解业务的原始需求,知其所以然,有利于设计出更加完善的测试用例。
  2. 了解策划案内容:对要测试的内容做出判断,分析所涉及的系统各个模块或不同系统之间的关联逻辑。
  3. 准备测试数据:运用等价类划分法或边界值分析等方法准备不同类型的测试数据。存在测试服无法生成的测试数据可以找开发协助测试(调用接口,修改数据库等)。
  4. 输出测试用例:把策划案中的内容变成具体的测试项,力求包含该工单涉及的所有测试点。
  5. 执行测试:用不同的方法策略去测试系统,找到效率最高、流程最优的测试方式,达到事半功倍的效果。
  6. 记录Bug,问题复测:对已经修复的问题进行验收,测试进入收尾阶段。
  7. 完成测试:关注发版后是否有用户反馈问题。

测试计划

在接到一个测试任务时,可以先计划一下怎样开展测试,梳理出涉及到的模块、测试优先级和测试资源等。

  • 测试计划大致包含以下几项:
    1. 测试范围
    2. 测试策略
    3. 测试资源
    4. 测试进度
    5. 测试风险预估

测范围需要明确: 哪些需要测试,哪些不用测试;

测试策略要知道: 先测试什么,后测试什么,用什么方法测试;

测试资源要清楚: 有多少测试人员,测试环境;

测试进度要评估: 预估测试工作量,开始测试时间和完成测试时间;

测试风险要预估: 测试中可能出现的风险(增加测试点、需求变更、开发提测时间延迟等情况),给出应对策略;

测试注意项

在测试工作中时常会犯同样的问题,所以总结出来提醒自己。

  • 系统中不同角色有不同的权限,保证权限最小化测试;
  • 输出高质量的测试用例,做到每个问题都能找到对应的测试项;
  • 可能稳定复现Bug,清楚操作的每一个步骤和逻辑,尽量不做多余的操作步骤,确保可以定位问题,记录触发报错的操作链路;
  • 判断测试工单是否涉及旧数据,在开发提测前要在系统中准备好旧的测试数据,以便测试旧数据是否可用,是否被正确处理。
  • 考虑系统中特殊逻辑的测试。例如发起不同类型的单据会有不同的审批流程。填充特殊的枚举值进行测试等。

测试过程要有针对性、有目标、有方向性。做到快速发现问题,准确定位问题,及时反馈问题。描述问题要清晰,容易让开发人员理解。
不止要提出Bug,需要优化的问题也要及时提出来,使系统达到最优的实现效果。

测试技能

具备测试能力

测试人员不仅需要深入理解业务,还需要具备一些测试思维和测试方法。以下是行业专家茹炳晟提出的一些要求,分享出来和大家一起学习进步。

  1. 测试策略涉及能力
    对于各种不同的被测软件,能够快速准确地理解需求,并在有限的时间和资源下,明确测试重点以及最适合的测试方法的能力。这需要在大量实践的基础上潜移默化形成。
  2. 测试用例涉及能力
    无论对于什么类型的测试,都能设计出高效地发现缺陷,保证产品质量的优秀测试用例。测试用例设计能力要求你不仅仅局限于熟悉业务领域的测试用例设计,而是能够融会贯通,熟练地把系统性的测试设计方法和具体业务有机结合,对任何被测软件都可以输出出色的测试用例。要想提高测试用例设计能力,你平时就要多积累,对常见的缺陷模式、典型的错误类型以及遇到过的缺陷,要不断地总结、归纳,才能逐渐形成体系化的用例设计思维。
  3. 快速学习能力
    包含两个层面的含义:
    (1)对不同业务需求和功能的快速学习与理解能力;
    (2)对于测试新技术和新方法的学习与应用能力。
    比如,当你学习一个新的开源工具时,建议你直接看官方文档:一来,这里的内容是最新而且是最权威的;二来,可以避免网上信息质量的参差不齐。知识输入源头是单一,而且权威的话,你的学习曲线也必然会比较平滑。
    另外,当学习新内容时,你一定要做到理解其原理,而不是只停留在表面的、简单的操作和使用,长期保持这种学习状态,可以在很大程度上提高逻辑思维和理解能力。这样,当你再面对其他新鲜事物时候,也会更容易理解,形成良性循环。
  4. 探索性测试思维
    测试工程师在执行测试的过程中不断学习被测系统,同时结合基于自己经验的错误猜测和逻辑推理,整理和分析出更多的有针对性的测试关注点。优秀的探索性测试思维可以帮助你实现低成本的“精准测试”,精准测试最通俗的理解可以概括为针对开发代码的变更,目标明确并且有针对性地对变更点以及变更关联点做测试,这也是目前敏捷测试主推的测试实践之一。
  5. 缺陷分析能力
    根据发现的缺陷,结合错误的上下文可以预测或定位缺陷的发生原因;结合探索性测试思维推断同类缺陷存在的可能性,找出潜在的缺陷。
  6. 自动化测试技术
    自动化测试技术可以把你从大量的重复性手工劳动中解放出来。一方面,自动化测试技术本身不绑定被测对象,比如说你掌握了 GUI 的自动化测试技术,那么你就可以基于这个技术去做任何 GUI 系统的界面功能测试了。另一方面,自动化测试技术需要测试工程师具备一定的写代码的能力,这通常与测试工程师职业发展的诉求不谋而合,所以你会看到很多测试工程师非常热衷做自动化测试。
  7. 良好的沟通能力
    一方面测试人员需要在工作中对接策划,确保需求的正确实现和项目整体质量的达标;另一方面,你还要和开发人员不断地沟通、协调,确保缺陷的及时修复与验证。所以良好清晰的沟通能力是测试人员必不可少的能力。

计算机网络知识

计算机协议分层

基础的协议

TCP
IP
HTTP

工具的使用

接口测试

Postman

网络测试

Wireshark抓包工具(网络协议分析器),
Clumsy弱网模拟工具

性能测试

Jemeter

安全测试

兼容性测试

模拟器

最后

分享一句自己很喜欢的话:Perseverance is not a long race ,it is many short races one after another. 自己也是在摸索中不断的前进,找到了属于自己的正确的方向(科技、文学、艺术、世界),发现正确高效的方法策略,沿着这条路一直走下去。


文章最后编辑于 2023年7月29日 周六

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值