问题描述:
作为一名软件测试工程师,需要具备哪些能力?
精彩回答:
会员 星尘:
触类旁通。你不是产品,但你知道产品是怎么工作的;你不是运营,但你知道用户关心什么;你不是开发,但你知道开发同事怎么工作;你不是设计,但你有你对交互逻辑的理解;你不是销售和编辑,但你熟悉产品业务。
常识知识。常识好的人产品逻辑好(概述)。
沟通能力。基本地,把一个问题表述清楚。能说服开发把bug改掉,不改掉的得要求明确回复原因。维护测试工作的尊严,坚决抵制欺负测试人员的行为。
计算机知识。和你目前工作最相关的知识,你最应该先掌握。
心态好。测试有时候比较枯燥,重复性强。遇上一茬新来的开发同学,你会感到测试工作回到很久以前了。综和各种情况,说明测试需要好心态。
会员 天顺:
通用技能上:
1、基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言)
2、基本软件测试知识(各种测试理论,测试方法论,测试用例编写,缺陷界定标准,软件质量评估)
3、简单项目管理知识
产品、系统认知:
1、熟悉所测产品功能,能够将产品文档内描述的UC转化成TC,这个最最基本
2、熟悉所测产品的一些隐藏需求或者功能(业务上的进阶能力)
打个比方,支付公司上一种新的支付渠道,熟悉业务的测试人员应当可以预见到这次升级可能会对前段界面、系统账务、各类报表等各个模块造成影响,从而一并纳入测试范畴。
要知道,很多时候,即便是接入这些渠道的产品经理,也不一定会在Prd或者UC中对这些可见影响项一一列出,这需要经验和责任心。
性格上:
1、有牛皮糖属性的为佳,越“不要脸”越好
测试工程师,在很多公司,和研发是有业务上对立属性的(虽然从宏观角度上来说,都是为了提高软件质量服务)。测试工程师提交的BUG越多,意味着研发工程师工作质量越差,需要返工的工作量也越大,甚至会影响绩效,所以测试工程师有时候很容易得罪研发部门。
一个可以相对坚持原则(比如3级BUG以上一定要改),又能拉下脸和不愉快的研发工程师保持较好关系的测试工程师,会对项目质量起到很关键作 用。说到底,又能做事(发现BUG并督促修改),又会做人(该进的不让,该退的绝对给面子,最大化消除部门间矛盾)的测试工程师,是十分难得的。
2、有异想天开属性的为佳
这个只可意会,不好言传的。在我带过的团队里,的确有那种奇葩……经常会用令人匪夷所思的方式找出BUG,这是天赋。
3、会“偷懒”的为佳
这里的偷懒不是指上班发微博聊天混日子,而是能够利用已知资源对枯燥乏味的测试工作进行优化的同学。
说个实例:
我以前公司曾经上过一个“授信”项目,做过金融类项目的同学大家都知道。授信项目的测试用例真可以说是相当变态,随着账期、滞纳金率、手续费 率、利息率、本金、还款情况的不同,可以衍生出无比多的用例,同时每个用例进行编写时,都要仔细根据规则计算预期结果的资金状况,非常费力。
咱部门一个小伙子,头一天晚上拿了PRD,第二天晚上就利用Excel写了一个固定某些账期下不同情况下的各项资金计算工具(有一些小BUG,无伤大雅)……大大减少了兄弟们按计算器的工作时间。这种“懒”员工,你是领导你喜欢不?
事情没完,在实际测试的过程中,我们发现一旦研发修改了BUG,会引发其他用例的大崩溃(这类项目真悲剧,牵一发动全身),每次版本升级我们都不得不进行全面的回归测试。
太坑爹了,这不是要命么?
聪明的测试同事们又想偷懒了,他们在数据库端写了一个数据匹配工具,每次新跑用例就拿正确的(已保存)数据文件自动去比对新产生的文件,自动返回比对结果。兄弟们再也不用每次回归都一行行打SQL去查数据了,棒极了。
在研发修改BUG之余,他们自己写了一套存储过程,可以实现数据的自动回归和增量备份,再也不用每次把所有数据擦光从第一个交易日跑起了,棒极了!
说了那么多,其实就一句话:干一行,爱一行。