用动态的眼光看测试
软件测试工程师到底是做什么的?很多书籍都会这样告诉你:黑盒测试工程师测试程序,白盒测试工程师测试代码。这样说的确没错,初学者可以这样理解,如果作为资深的软件测试工程师还是这样想的话,只能说是这几年的时间里你并没有任何进步。
简单点说资深软件测试工程师仅需要掌握测试技术和行业技术就足够了。但细品起来好像也不完全像上面说得那样简单,怎样做才能掌握高超的测试技术,怎样做又才能成为行业技术专家,怎样做才能将这两者结合在一起呢?
举个例子要求测试报表的工程师去检测一次性水杯,针对这个题目写出可行的测试用例。看了这个题目,很多测试工程师都会感觉头疼,这样的测试用例怎么写啊?先别急,让我们来考虑一个小问题“什么叫测试,测试应该从什么地方开始着手?”如果能将这个问题想明白,测试水杯的思路也就逐渐清晰了。比如,首先要考虑杯子是用来盛水的,那就要求它不会漏水。如果有人喜欢喝热开水,作为盛水的工具它应该满足沸点水温的要求,如果有人喜欢喝冰水,零度以下的要求也应该能够实现。然后再考虑一下杯子的软硬程度,如果太软拿不住,持杯子的人还会喝到水吗?如果杯子太硬是不是造价又会太高呢?接着再考虑在多长时间内杯子不会被水泡开,如果一个装了水的杯子,在两分钟后就被泡开了,那肯定是不合格的产品了,消费者是不会为如此短命的水杯买单的。沿着这个思路走下去,你会发现需要检测的内容太多了,杯子是不是会散发异味,是否满足食用器皿的卫生标准,杯壁上是否有异物,装满一杯水后杯子是否会损坏,杯子表面的图案会不会掉色,花样是否美观,装一些固体物体时杯子的可用性等等,基本功能测试、稳定性测试、压力测试、关联性测试就这样逐一而出。很神奇是吗?继续这个题目完成它,测试用例也就出来了。
上面的小例子是灵活运用测试理念的一个典型,从这个例子中不难看出测试的广博,一个好的测试工程师能够像万金油那样,运用到方方面面的测试中,对事物的认知都可以从测试的角度来分析。尝试从身边的一些小事物开始,培养测试的兴趣和眼光,慢慢的就能从中体会到测试的意义了。比如对钢笔、桌椅板凳等做做测试,你会不会发现自己正逐渐的像质检员那样专业?在测试取得成功的同时,想想测试的过程,对测试对象高度认知不就是测试成功的基础吗?也就是说在测试之前你已经掌握了测试对象的特征,并且这些信息以不可察觉的速度在头脑中建立了测试的方向,所以才会得心应手。这个对特性认知并建立起测试方向的过程就是测试理念日趋成熟的过程。
再举个例子,让手机软件的测试工程师来测试网络软件,结果通常是以失败而告终。有些人就不明白了,为什么测试桌椅都能成功,同样也是测试软件却失败了呢?那是因为在进行这个题目的时候我们忽略了非常重要的一点“行业技术”,桌椅等日常用品因为太过熟悉所以很容易掌握其特性,但是网络软件却因为其高度的领域性不被普遍认知。测试手机软件的工程师也许对各类型的手机操作系统非常熟悉,但是对网络知识的了解却很少。所以这种盲目的使用软件的过程,并不能构成系统的测试过程,最终导致题目执行的失败。
解决这种问题最好的方法就是培养广泛的兴趣,学习一些行业知识,从当前项目所需要的行业技术开始,适当的增加对其他领域的了解,比如游戏软件、杀毒软件、文字编辑软件等等。艺多不压身,如果哪天你所在的项目组改变了业务方向,你还会紧张吗?
不要将眼光局限在一小块地方,从另一种角度用动态的眼光去看待软件测试,当你发现测试无处不在的时候,才能说是真正深入到了这个领域。