2.2 测试的知己知彼
众所周知,“知己知彼”的思想在军事中和商业活动中已得到了广泛应用,但却很少有人会想到“知己知彼”在软件测试的工作中也同样可以得到广泛应用。在军事中无论是解放战争,还是抗日战争,共产党所领导的人民军队总能在装备落后的情况下胜多败少,其中情报工作做得比对手好,是一个非常重要的因素。
在测试活动中,当我们还在争论是否应该让黑盒测试人员了解和学习产品的设计原理、实现机制和实现方式时,我们是否考虑过是今天产品的质量重要还是未来的安全保密重要。如果没有今天的高质量,公司的产品就会没有销路,公司今天的生存都会有问题,何谈未来的发展,安全保密就更无从谈起了。
测试活动本身的找bug工作就可以理解为找目标的弱点。对于测试而言,有两个领域需要测试人员去知彼:
● 第一个领域:测试目标的设计原理、实现方式。
● 第二个领域:测试目标的实际应用环境。
当然不是所有的测试人员都要求对这两个方面去全面知彼,如同只有军事策略和军事计划的制定者才需要全面了解整个战局的情报,而非所有级别的军官和士兵都需要知道全部情报一样。在我们的测试组织中,只需要制定测试策略、测试计划的测试技术骨干能够对这两个方面的情况进行全面地了解即可。技术骨干对这两个领域了解得越准确、越全面,越利于我们设计出成功的测试策略和测试计划,并有利于提高后续测试方案开发的质量和测试执行生产力效率,从而让产品的质量更上一层楼,提高产品销量和品牌价值。
在了解这两个领域相关重要信息的过程中,有如下方法可帮助测试人员用最少的时间和成本达到尽量了解情报的效果。
1.了解测试目标的设计原理和实现方式
可以让系统设计人员和开发人员定期给测试设计人员进行培训和讲解。在他们的帮助下,测试设计人员可以少走不少弯路,集中精力、尽早、全面、准确地了解测试目标的内部情况。
案例:某即时通信软件服务器和客户端通信测试
首先,通过与开发人员交流、沟通了解到,服务器端是在UNIX平台上用C语言来实现的,而C语言在UNIX上较难调试,因此服务器端的软件在程序员的内测中会做得不够充分,服务器端软件出现bug的概率要高,所以在服务器端的软件模块要投入大部分的测试资源。同时了解到客户端软件的实现工具是用Delphi实现的,考虑到Pascal语言与C语言在字符串处理上的区别,因此针对客户端软件需要多在字符串转换上进行测试。
其次,通过阅读软件设计文档,了解到客户端与服务器之间自定义的通信协议中各数据结构元素大小,针对这些数据结构元素的大小可以进行溢出测试。假设所定义的传送数据块的字符数组大小为char Data[500],那么在传送数据块时,就一定要测试数据块大小为500个字符和501个字符大小的情况。同时,通过了解服务器端的并发处理方式,是异步方式还是同步方式,是多线程还是多进程来处理多个用户的并发连接,就可以针对本产品实现的同步处理方式来制定不同的有针对性的测试策略。
最后,了解到后台存储数据的数据库是哪种数据库后,可通过上网去了解该种数据库已发现的缺陷和性能短板在哪里,然后针对数据库的这些问题结合所测试的项目特点进行测试,保证服务器端实现的软件代码能够很好地屏蔽数据库的短板。
本文选自《51Testing软件测试作品系列》之四的《软件测试精要》。
本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关阅读: