|
微软软件测试启示录
微软软件测试的原则
全球技术中心的郑子颖先生就微软的测试和自己的实际工作经验,提出了微软软件测试六个基本原则:
1、 明确测试目的。一句话讲,测试的目的就是尽量找出更多的Bug,就像“测试是产品质量的一面镜子”所言,通过测试找到开发中的错误。
2、 测试的职责是在测试中需要把问题越早发现越好,发现越多越好。微软在测试中的一个共识是:在软件发布之前发现很多Bug是开发中的问题,在发布之后再出现很多Bug就是测试的责任。
3、 测试的内容必须要有区别,不同类型的软件要有不同的测试要求和测试范围。比如:对Excel的测试对性能要求不是很高;对SQL Server而言,磁盘的效率、I/O的效率等等都是很关键的东西;IIS需要注意安全性的检测等。
4、 测试用例(Test Case)是非常重要的。他能够让测试有条不紊,按部就班的进行。Test Case是测试的行动指南。“如果说Test Plan是电影剧本,Test Case就是分镜头脚本。”
5、 测试手段需要灵活多样。一个实际案例,某公司性能测试的时候,把测试代码写在单元城市中,然后用Nunit这类单元测试框架(引擎)来驱动运行。结果非常好,达到了性能测试的目的。这说明测试不一定要用很商业性很复杂的工具,无论是自己写脚本、组合现有工具、定制工具还是直接买工具,只要能够达到目的就可以。
6、 对于一般商业应用系统的开发,测试主要关注三个方面:功能、性能和界面。其他的方面如稳定性、内存泄漏、数据恢复等都需要测试,但是前面这三个方面却是最关键的。如果在测试方面刚刚起步,可以从这三个方面着手。
人工测试和自动化测试的区别
微软很注重自动化测试,但是在测试过程中,如何判断一个测试是运用人工测试,还是自动化测试呢?
在微软的经验中,首先是需要分清需要测试的类别。有些测试类别非常适合于自动化测试,例如有些性能测试,大量多次的回归大呢感就需要自动化测试;但是有些地方就必须要人工测试了,例如易用性,第一轮的功能测试等。举例说:MS Office的开发是连贯的,就非常适合使用于自动化测试,后边版本的测试有前面版本的经验和工具使用,测试系统从第一版到Office 2003是一步一步逐渐进化来的,经过多年的积累才形成一个很复杂的针对某个产品册自动测试系统。
采用自动化测试需要考虑到资金的投入和产出。在国内,有些产品只是刚刚出来,有些项目只做一年半载,没有时间和资金去一步一步建立测试工具和自动化测试体系,就需要舍弃一些自动测试,多用人工测试。
测试人员的素质
郑子颖认为,要了解测试人员,首先需要区分开发人员和测试人员之间的区别。有一个形象的比喻:卡法人员面前有很多门;测试人员则是手里有很多钥匙,每遇到一扇门,都要挑一把适合的钥匙去开。那么测试人员如何条呢?就是让自己手里的钥匙越来越多,掌握很多的技巧、很多的工具,如:Excel的运用,写VB和VBScript、WMI等,这些都可以很好的用在软件测试中。
其次测试人员要会“吵架”,发现了Bug,一般开发人员总是觉得自己的程序没有问题,因此测试人员一定要“逼迫”开发人员修复,如果不会“吵架”,牺牲的就是产品的质量。当然测试人员还应该是一个有限度的悲观主义者,不能总是争吵,要有分寸,不然不能和开发人员保持和谐的关系,就不能很好的协作。
最后在微软,每个员工都要求非常聪明,当然测试人员也不例外。
|
|