|
三个方面的影响促成了不少人认为测试的技术不如开发, 这种坏影响直接威胁到了用户的利益.
1) 测试行业本身是更新的行业, 不少人对其认识不够深刻, 对相关从业人员的评价更是用另一个行业的标准来判断. 比如, 不少决策人员都以对编程工具的掌握情况, 对模块内部实现的了解情况来判断人员的水平, 这是不对的. 编程工具发展到今天, 其秘密已经被人们普遍掌握, 免费的编译器如gcc, 免费的IDE如elipse都被广泛的使用, 但你见过免费的捕捉-回放工具吗(web的不算, HTTP协议起作用, 顶多算扩展的协议测试) . 现在捕捉-回放工具之所以如此昂贵, 起本质是因为它需要识别被捕捉到的物件. 用户在使用的时候, 是通过图像/视觉/经验来识别应该按什么地方的, 这是一个非常复杂的过程, 今天的人工智能水平远远无法支撑这样的工具. 目前的捕捉-回放工具仅仅能识别的也是各种控件, 如果有个开发用自编的图形代表所有显示和按钮等, 没有一个工具能够认识. (很不幸, 本人现在就面临这样的情况, 但程序又非这样写不可, 我还要和开发商量留测试接口的问题) 所以, 能够精通一种测试工具已经是非常不容易了, 但一个称职测试人员往往都需要掌握至少如下几种工具:
a) 捕捉-回放工具 , 如winrunner, QTP, QARun/TestPartner系列, SQARobot/ XDE Tester/Functional Tester系列, Silk Test等等
b) 内存泄漏/资源使用调查工具, 如purify, boundschecker等
c) 性能测试工具, 如Jmeter, Loadrunner, 这一类工具数量众多, 特别是专用工具
d) 脚本语言, 如各种Unix Shell, TCL, Python, Ruby, Perl等, 脚本工具是测试人员的好帮手
e) 覆盖率工具, 如TrueCoverage, PureCoverage. 不要以为覆盖率测试仅仅是开发用的, 在某些情况下, 测试也需要用, 具体情况下要抛开书本.
f) 各种build工具, 一个优秀的测试人员应该能自己build被测对象, 这样他/她就能够自由的插桩和分解子系统.
g) 编程工具, 测试人员是需要会编程的, 但需要掌握的方面和开发不同. 开发需要了解各种构架和细节的实现, 测试人员需要了解各种接口的编程. 举个例子, 一个ORACLE数据库开发人员也许对OCI了解很透彻, 每个API的优点缺点和性能都知道; 但如果他负责这个模块, 他知道OCI就可以了. 但测试人员不需要掌握每个API的优点和缺点, 对他用处不大, 知道如何存取数据就可以了, 也许考一段开发的程序过来用. 但是, 这个系统用了OCI, 又用了CORBA, 又用了RMI, 又用SOCKET和另外系统连接, 测试人员就需要知道每种接口如何调用了, 但他每种接口也知道如何用就可以了. 从一个开发经理的角度看, 这个测试人员连OCI有哪些函数都不知道, 水平很低. 而从一个测试经理的角度看, 这个开发人员除了Oracle别的什么都不会, 水平很低. 所以这是不同的工种, 不能对比.
要了解这么多东西并非难事, 偶见此类牛人多了, 主要靠实践和毅力. 但想通过测试实践, 然后转到开发去的人例外, 因为这条路线不对. 偶以前一位哥们想转开发, 是自己辞职在家练习编程3个月再一举面试成功的. 要一个好的测试人员, 首先需要的是自信.
本来想一把写完, LD催促睡觉, 以后再接着聊. |
|