测试工程师修炼之道——我有一双善于找茬的眼睛

it2025-04-21  1

     软件it行业,给人的感觉除了一堆让人觉得天书般的代码外,可能就是中年秃顶形象的程序员了。

     但这只是这行业的一角,一个软件从生产到你手里可使用的成熟软件应用。要从产品经理跟客户沟通需求后明白——要做什么,程序员——实现它,测试——大家来找茬,程序员——改!改!改!

     最后,就是到你手里的成品,你现在用的微信、支付宝、高德地图等都是这么出来的。

     那测试在里面是不是可有可无呢?打个比方,你要建一栋大楼,我给你的建材里面有很多钢筋是劣质铁,一碰就断。你觉得是在刚开始建的时候我就把劣质钢筋剔除掉你再建房子的损失小,还是当你房子建得高耸如云了,出现楼体开裂你再去补救损失小?

    测试就是这样的存在,在产品经理定项目时把错误的研发方向纠正,可能就几句话的代价,在研发时改一个小错误可能就要几十块钱,在研发完成你再找到错误,修复可能就要花几千块钱的代价,要是被客户找到错误,那损失可能就是、几十上百万了。

 90年代迪士尼曾发行过一款光碟pc游戏,宣传铺天盖地,销量火爆。但之后,售后电话也被打爆了,投诉电话里满是小孩的哭声。因为这些购买光碟的家长回家,发现自家的pc机使用不了光碟。就因为当时迪士尼没做一个市面兼容主机的调查与试验。最后本来一个大好的盈利颇丰的项目,几乎把利润都赔光了,还影响了口碑。

  所以测试的存在是有其价值的,虽然我们找茬,但是我们帮公司省钱,生产更优质客户体验感更好的软件产品。

   那,测试难吗?

   说难不难,只要你会简单操作电脑、手机,沟通表达正常。那就可以成为一名测试。

   说易不易,因为你如果想做好,那整个项目你是要了解的,发现问题你会去定位问题出在哪,甚至你能给出解决方案。

   那一名测试平常的工作是怎样的?我们业内自嘲为“点点点”,颇有点读机的架势。

   其实就是看软件哪些功能实现了,这个我们可以对比需求文档来做。需求文档有的,必须有。要是少了、多了都是bug。    啰唆那么多,上干货!!!

  功能测试的用例编写——人话就是你要怎么去测软件,测哪些

  要素是:编号ID、标题、优先级、预置条件、操作步骤、预期结果、备注

  备注状态一般是:no test 、pass、fail,block(非本用例bug阻碍)、观察中

   一般按只看功能有没有实现、关注接口功能的实现、关注代码的逻辑分为:黑盒测试、灰盒测试、白盒测试。

   黑盒测试的方法:

   1.等价类+边界值:比如输入框支持输入0~100的数字,那取0~100里面的数字去输入就是有效等价类,结果应该是输入成功,可执行接下来操作。0、100、-1、101这些就是边界值,0、100应该成功,-1、101应该得到一个失败的预期结果。要是与预期相反,那就是bug

    2场景法:就是用户使用的正常或异常情景,正常情景好说,异常操作就要凭你的脑洞去设想各种可能的奇葩操作了

    3错误推测法:简而言之,就是凭经验。比如弱网情况下重复快速点击会不会发起多次请求?两个功能间有关联,比如我建立一个分类,再在分类下创建种类。把分类删了,种类会怎样?还在吗?还能正常操作吗?等,这个平常多积累,能找出不少bug

    4判定表,多条件输入时判定。比如要账号密码验证码都正确才能登陆,那怎么设计用例?那就要用到判定表了。

    5花瓣分析法,较多条件输入时判定。判定表的升级版。

    基本上,只要你会黑盒测试,也就是上面1~4,那恭喜你,已经可以成为一名测试愉快地找茬,点点点赚票子了。

    但如果你想赚更多的工资,那灰盒测试(接口)——要会postman或jmeter,建议jmeter,容易上手而且功用更多

    白盒测试(看代码)——一般开发做,但如果你会,薪水低不了。建议学python,场景应用多一些。如果你啃得下Java那也挺好的。

   最后一个必修课,把找到的茬给别人说清楚——提bug单

  bug状态:激活(你发现它的时候,提交激活)、确认(开发收到确认是个bug)、已修复(开发修复bug,给你你补丁程序包)、关闭(你安装补丁包后回归测试下bug还在不在,不在就关闭该bug)

bug要讲清楚需要:bug标题(告诉别人你发现了什么问题)、严重级别(致命、严重、一般、轻微)、影响模块、复现步骤、预期结果、相关日志或截图。

一般bug单会告知影响范围、级别、问题截图。指派哪个开发修复。(一般bug是谁写的就发给谁改)。

所以,只要你喜欢找茬,最好还是一个完美主义者。那没有比测试更适合你的工作了。

 

ps:工具库:

xMind:从需求文档提炼测试点

Excel:写测试用例、写bug单

fiddler:抓包工具(判断前后端问题、mock虚拟接口、查看单个功能相应时间、模拟弱网、拦截篡改请求。。。)

jmeter:构造接口请求,查看响应报文数据。模拟客户端的一个工具。后续添加插件可做性能测试。

python:UI自动化与接口自动化测试

Jenkins:集成工具,一键发布版本,定时跑脚本。。。

CRT或xshell:linux服务器的连接工具

Navicat:连接数据库的可视化工具

adb工具:APP测试的工具

GT、itest:手机性能监控工具

。。。。。

一天学一点点,日积月累,享受一天比一天进步充实,这就是测试工程师的修炼之路。  

   

最新回复(0)