|
首先说说单元测试,任何工作都要遵循投入产出比最大化,单元测试是一项距离开发最近的测试工作,开发人员做单元测试无疑效率最高,因为设计单元测试案例要理解代码的功能,单元模块之间的调用,继承关系,把这些搞清楚,相当于重新开发一次代码。但这也不绝对,如果是一些标准规范化的功能,测试人员也可以介入单元测试的,比如涉及到编码,解码,文档MIME规范等等,这些功能input和output都比较简单和固定,测试人员如果有一定代码水平,做起来完全没有问题。但无论哪一种实现,都需要人工投入。有的小公司小项目,测试就几个人,忙手工测试还手忙脚乱,谈单元测试那无疑是纸上画饼。从我个人来看,我倾向于将来单元测试会成为开发必做的工作,当然也可以指导测试人员去做这项工作,最关键的是需要一个透明的流程机制来定时运行,维护,更新这些单元测试案例,hudson是一个比较不错的框架,就是太偏重开发。
UI自动化测试就像一个梦中情人,听说过,但从来没真正地享受过。UI自动化测试的关键之处不在工具,也不在技术,而在于产品的管理,流程给UI自动化测试添加了非常多的干扰因子。比如吧,花了一周开发的测试脚本,可能在产品版本的升级后,就跑不起来了,花了半天才定位出是因为页面上的某个labe属性变化了,好吧,修改脚本,再运行,下个版本又出错,再修改,最后算算,自动化上花费的时间可能比手工测试还要多。要避免这种风险,需要谨慎考虑自动化测试介入的时机,和自动化测试案例的功能范围。凭个人经验,介入不宜过早,可以选择在稳定的回归测试开始之后;自动化覆盖率不宜过高,能达到20%就是一个不错的比率了。如果各项条件都不成熟,可以暂时不做,把自动化测试计划得更远一些。至于QTP,Winrunner,Selenium等等工具,不比做太多的伯仲之争,我一向的观点是,工具就是工具,用的爽了就用,用的不爽就换,自动化测试人员随着经验增长,应该把更多的精力转移到自动化的整体方案上来,能不能用,用什么,怎么用,怎么和开发流程整合,怎么生成报告的问题上来。而对于测试经理来说,UI自动化测试可能是一个毒丸,需要根据实际对自动化测试实施做恰当的决策,软件产品周期长功能稳定,自动化测试必须考虑在测试计划里,软件项目周期短变化快,自动化测试可以考虑适时而为,虚虚实实结合,对上既有政绩,对下又有业绩。
性能测试呢,是一个技术性较强的工作,开发能做,之所以是测试人员来做,因为它是性能测试。但尴尬的是对于测试人员来说,性能测试的要求又太高了,几乎要囊括了体系设计,系统平台,中间件,数据库等各方面的知识专家,当然可以说这些知识测试人员应该有,但是到了那个层次后,他恐怕就不叫测试人员了,可以叫DBA,叫System administrator。所以,性能测试人员的最大作用是将性能测试推动起来,能够将这些不同的知识专家们集结到一个性能问题上,当然,如果能够对性能问题做一些定量的分析,判断问题范围,那就更完美了。在性能测试里,沟通也是一个重要的本领,谦虚是必须的,因为你面对的是专家,随意下结论很显然是自取其辱的最快捷方式。
在测试过程里,不少产品都有一个安装测试,负责部署环境。安装包括server端的安装和客户端安装,安装测试是典型的简单高重复工作,因此也是自动化测试实施的重点领域。如果是web页面,需要和不同的浏览器不同的版本进行兼容,如果是桌面客户端就更麻烦了,windows,linux,还有mac,现在智能终端的兴起又有iphone, ipad, android。另外,插件也是客户端的一种方式,插在浏览器上,outlook上,这又牵出一堆的版本矩阵。安装测试工作的关键点在于测试场景的整理,优先级的规划,测试计划安排。首先可以整理出一个测试场景矩阵,估算工作量,测试机器资源等等,然后进行计划安排,自动化测试的规划等等。如果自动化测试做得不错,安装测试会是一个比较稳定有序的工作。 |
|