测试员,敢问路在何方(七)

时间:2021-08-03 16:58:07

2.4 编码,编码,编码

今天,我想讨论一个最重要的技能,我们的软件测试员应该在自己的职业生涯中所掌握,这就是编码。

  • 为什么编码这么重要?

因为你是软件测试员(SDET),软件测试开发工程师(Software Development Engineer in Test),你是软件工程师。作为一个软件工程师,编码就是每一天你应该做的任务,这是你应该掌握的技能。你可能会问是否编写测试用例没有编码更重要。这里的原因是,编写测试用例可以帮助提高产品的质量,但有时它并没有促进你的职业生涯发展。我可以举我的一个例子。当我刚参加到SQL Server团队之中,我们编写以T-SQL脚本为基础的测试,我很少有机会写编码。因此,我的编码技巧并没有提高。幸运的是,SQL Server的测试团队转移到以编程的方式编写测试,今天,我们的软件测试员的编码时间增加了不少。这是相当不错。当然,有时我们花费太多的时间在编写代码和类库上,而花费较少的时间来写真正的测试用例。这是另一个很大的话题,在这里我就不打算讨论了。

由于今天我们当中大部分人在编写自动化测试,这意味着我们有很大的机会来提高我们的编码技能吗?答案是不一定。今天我们的测试员做了太多的任务:我们编写测试库,我们验证测试结果,验收产品,我们配置机器和安装新版本进行测试,我们修正我们脆弱的测试,我们创建和关闭缺陷。有时我们花费大量的时间在下载和编译源代码。我们也有其他的任务,如会议,项目跟踪/缺陷报告。上述所有任务将需要花费我们每天中的大量时间,而时间提醒着我们,做实实在在编码真得很少,我们的技能提高也非常小。我记得有一天,我曾对我们的测试经理提到过我的梦想——我可以花50%的时间在编码上,他很惊讶,他认为这个数字理应还要大很多。然而,现实是这个数字理应小得多。

所以,我们该怎么处理这种情况呢?我们应该尽力尝试,改善我们的工程系统,以减少不必要的时间开销,让系统能够安装配置环境,安装测试版本,运行测试,创建/关闭的缺陷和退出测试。所有这些应该是自动化的。我们应给自己承诺每天尽可能多得编码。由于你的工作性质,如果你不能做到这一点,你应该考虑换到其他工作。

小结,请记住编码是一个重要的技能,你应该去提高它。

2.5 花时间去思考

在最近几天,我试图去理解,我们应该如何去教导和学生如何去学习。我的Ph.D研究经验和最近戴尔·卡耐基培训,为我提供一些想法:

  • 教给他人或分享经验给他人最佳的办法是让他们思考。在你的谈话中不管他们思考了什么,他们至少学到些东西。一个好的实践是鼓励他们说话,与你互动。

  • 思考自身有时可能并不够,我们可能需要实践和应用我们的思考到我们的工作中。

就研究论文而言,我们的论文大部分沿用了经典的格式,它必须有简介,相关的研究,实验结果和结论。没有实验结果的论文几乎是不可能被发布的。另一方面,论文的本质观点,似乎是不知为何地被隐藏起来或不是那么容易得找出来。我认为这是做研究里一个的问题。

当我们想要向人们做演示展现点东西时,或者我们想要写点东西教给别人时,同样也有上面的问题。首先,你会花很多时间在研究我应该思考些什么。之后,你头脑中就有些想法了,你会渴望通过写些东西与他人分享,这是一个很棒的方式来概括你的想法。

最后,我相信资深测试员的价值,是他可以给团队带来的观点/技能,而不是他在过去的工作经验。对我们的软件测试员来说,能够努力思考问题,并找出解决方案是一个重要的技能,我希望我们的资深员工应有的最最重要的技能就是思考,一个优秀的领导必须首先是一个出色的思考者。

2.6 了解产品

我相信作为一个资深软件测试员,我们应该充分了解我们正在测试的产品。知道产品的方向/未来是创建更好的测试的第一步。换句话说,如果我们不理解为什么我们应该构建这个产品和我们将构建怎样的产品,那么我们将不能编写出优秀的测试。

我们应该更多地参与项目/产品的规划,并影响产品的的策略(不仅是测试策略)。请注意,这是我们可以提高产品质量的重要途径之一。如果我们可以发现设计时的缺陷,我们可以节省下很多的时间和金钱,而且甚至比发现大量功能上的缺陷要有价值得多。有趣的是,我相信一个优秀的产品设计和一个正确的方向,会带来更少功能缺陷。过去我参与了大量的改进,我发现,如果是精心设计的功能,我们在实现功能的过程中将看到更少的产品问题/缺陷/后顾之忧。无论如何,如果该功能没有得到很好的设计,我们不应该去实现这个功能,否则你在执行的功能时会看到很多问题。

参与产品的设计,也可以帮助我们提高管理/构建项目的技能。并提高我们的技术技能,对测试架构师和领域专家的职业道路都是至关重要的。

了解产品,可以帮助团队成员讲同一种语言,更顺畅地交流。假设有一天,你想加入另一家公司做云计算,当你和你的面试官谈论时,他们可能会问你很多关于云计算的问题。如果我们只知道在服务中如何测试单个组件,你会发现你是缺乏知识/思考的,这将影响你未来的职业生涯。然而,如果你知道并思考过IASS,PASS,亚马逊AWS等云计算技术,我敢打赌,你将有更大的机会得到这个职位。对于一家初创公司来说,有一个除测试以外的技能是至关重要的。这始终是一条金科玉律。

最后,我想分享下Erwin Engelsma的观点:

“测试能够提高顾客的满意度,前提是你真的知道客户认为什么是真正重要的,并测试了相关的内容。在你的客户几乎不感兴趣的领域,做出很大的改进,虽然是一个值得称道的努力,但是这不会改变他们对产品好坏的看法!”

- 改进测试时的关键问题 —— Erwin Engelsma。

(未完待续)