测试工作描述
-
前言:
软件测试一门非常崭新的学科,目前研究的内容还很不深入,仍然
处于婴儿阶段。软
件测试需要什么样的专业基础还没有定论,而且目前还没有一种很好的
标准来衡量测试人
员。
但无可置疑,
软
件测试越来越受到软件公司的重视,
软件测试工程师的作用也逐渐被人
< br>们所认可。
这一点已经在像微软这样的国外大型软件企业中所证实,
在微软,
一个开发人员
相对应着一至两个测试人员。
现在,就让我们走近软件测试工程师,关注他们的成长之路。
从程序员到软件测试工程师
特别策划
/
本刊编辑部
撰文
/
闫辉
国内软件公司对软件测试的态度令人担忧。
< br>软件测试工程师不足,
开发测试人员比例不合理。
据调查
,最好的企业中测试人员和开发人员的比例是
1:8
,有的是<
/p>
1:20
,甚至没有专职的测
试工程师。
曾经参与微软
Windows95
、
Exchange Server4
.0
和
4.5
、
Internet Explorer 4.0
和
5.0
p>
、
SQL Server
2000
开发与测试工作陈宏刚博士尽管已经升任微软亚洲研究院商务及高校关系高级经理,
但仍然对国内软件测试水平的落后深有感触。
国内很多企业还处在探索阶段,
小企业的运作方式造成其主要精
力是要尽快完成初始资本积
累。有些企业也了解软件测试的重要性,
很努力、
很认真的在学,
但因为很多原因而学不到
精髓,
不知道如何去做。
于是只能局限于书本上
学来的简单的黑箱、白箱测试而已。很多人
知道有压力测试和性能测试,但针对产品具体
如何去做就不清楚了。
陈宏刚表示
,
重视测试首先需要有开放性的软件文化,
而在很多公司中,<
/p>
测试工程师只是绝
对服从的听命角色,
没
有开发他们的积极性和创造性。
一些管理人员对软件开发的流程管理
经验不足,
仍然用传统企业的方法进行管理,
再加上对软件
质量的控制理解不对,
认为编完
程序经过简单的程序员自己测试
就可以使用了,
而没有认识到软件测试是控制质量最好的方
法。
不过,国内还是有一些大型公司和
专业公司已经在软件测试方面走上正规。
1994
年开始接
p>
包
IBM
软件测试项目,
< br>1999
年软件测试成为公司主体软件外包业务之一的和腾软件就是其
中之一。因为客户就是
IBM
这样的大型软件公司
,腾软件高级副总裁刘忠表示,它们在软
件测试管理上,经同国外的公司相差不大,同时
也研究和应用了多种软件测试技术。
软件测试工程师
< br>一提到软件测试工程师,
很多人就会想到那些反复使用软件,
试图在频繁操作中寻找到错误
发生的低层次人员或者软件用户。
其实这是一种错误的概念,
软件测试早已超越了用户使用
来
发现
Bug
的基本测试阶段。
陈宏刚介绍说,微软的软件测试工程师分为三种:测试执行者
(
Basic
Software
T
ester
)
、测
试工具软件开发工程
师(
Software
Development
Engineer
in
Test<
/p>
)和高级软件测试工程师
(
Ad_hoc
Tester
)
< br>测试执行者负责理解产品的功能要求,
然后根据测试规范和测试案例对其进行测试
,
检查软
件有没有错误,决定软件是否具有稳定性,属于最低级
的执行角色。
测试工具软件开发工
程师负责写测试工具代码,
并利用测试工具对软件进行测试;
或
者开发
测试工具为软件测试工程师服务。
产品开发后的性能测试
、
提交测试等过程,
都有可能要用
到开
发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。
“
因为不
同产品的特性不一样,对测试工具要求也是不同的,就像
Windows
的测试工具不能用于
Offic
e
,
office
的也不能用于
SQLserver
,微软很多测试工程师就是负责专门为某个产品写
测
试程序的。
”
而
Ad_hoc
< br>Testet
属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具
有很
强的创造性。
刚进入微软时,
老板
也是只给陈宏刚一个操作流程,
每天就按照这个规程去做,
几天
下来,一个
Bug
都没有发现。陈宏刚也很沮丧,觉得这样挺对
不起公司,后来自己问
自己:
为什么非要这样做!于是换了其他
的方法试试,令他吃惊的是,
一下就找到很多严重
的
Bug
,当时也不敢声张。有一天,他找到
10<
/p>
多个非常严重的
Bug
,开发经理一下就
惊呆
了,
怒冲冲的跑到陈宏刚面前问:
“
你是不是改变了测试方式和测试步骤?
”
陈宏刚有些吓住,
说道:
“
可能改
变了一点。
”
对方说:
“
我非常生气,但我不是生你的气,而是因为以前测试
人员水平太差,或者以前
的测试方面有问题,软件中有些
Bug
存在了半年甚至一年,但
直
到现在才发现,现在修补这些错误要困难很多!
”
后来陈宏刚得到了老板的赞许,可以按照
自己的想法去做测试。对此,陈宏
刚感受颇深:
“
一方面我体会到了微软非常鼓励创造的文
化,
同时也感到只遵守教条不是好的测试人员,
就和用户一样了。
做软件测试工程师同样需
要开拓和创造性。
”
在开发
管理上,
测试不应该归属于项目管理,
也不应该归属开发人员。
这三个部门应该是并
驾齐驱,相互协作,测试工程师最终决定产
品是否能够发布。
软件测试工程师的素质
因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,
都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。
软件测试对逻辑思维、
学习能力、
反应要求很高,
是否有严密的思维和逆向思维也非常
重要。
陈宏刚介绍说,在五六个人的测试小组时,一半以上的
B
ug
都是他找到的。他认为这同自
己数学专业的背景关系密切,
数学中有逻辑思维的培训,
要善于找出来各方面的因素。
比如
要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明
;但如果证明其不成立,
最常用的就是找到一个反例,只要有一点证明不成立就可以了,
软件测试也是找这一点。
做测试还
要考虑到所有出错的可能性,
还要做一些不是按常规做的、
非常
奇怪的事。
除了漏
洞检测,测试还应该考虑性能问题,
也就是要保证软件运行得很好,没有内存泄漏,不会出
现运行越来越慢的
情况;
在不同的使用环境下,
考虑软件的兼容性同样重要。
p>
软件测试同产
品的规模也有很大的关系,因为软件的
bug
往往出在大型软件的连接处。
做软件测试工程师需要对软件抱有怀疑态度。
这是因为开发人员喜欢想当然,
总是找一些有
利于自己
程序执行的数据,
有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和