[转]软件测试

转]软件测试
现状篇 
这两年来国内软件测试人员的需求不断增大,越来越多的IT企业认识到了软件测试的重要性,这种可喜的现状与发展趋势让笔者对我国软件业的发展重新抱有较大的希望,尽管这是一门崭新的学科,目前在国内的发展仍处于“婴儿”阶段,但看到越来越多的软件公司为软件测试招兵买马,看到越来越多的技术人员投入到软件测试中,我就情不自禁地感叹:机会来了!这机会不仅仅是某一个人的,而是所有人的,它对每个人都是公平的,学的领域需要新的理论新的工具新的方法,由于国内的软件测试还处在一个比较初级的阶段,没有人确切地知道它需要什么样的基础,也没有人确切地知道它应该怎样发展,因此这个领域需要大家来共同革命,以促进它的深入发展。
前些年我曾在一家民营软件企业混饭吃,我们技术部十几个开发人员,整个公司竟然没有一个测试人员,软件测试的工作胡乱地交给市场部的销售员们去瞎折腾,尽管偶尔也能找出几个低级BUG,但整个过程是可笑的混乱的,公司的老板是个超恶心的人,通常,国内公司认为测试不重要,重要的是开发人员,开发人员的工资比测试人员高出很多。但此老板例外,他连开发人员都觉得不重要,狂扁我们是工人阶级,至于软件测试他压根儿从来没有这种概念,就是这样一个公司,就是这样漏洞百出的软件产品,竟然也能每年几千万地卖出,令我等百思不得其解,整整痛苦了几个月,才悟出这个市场的混乱不堪以及人情关系的重要性,在那些没有测试人的日子里,我们开发人员过得异常地郁闷,每天都紧张兮兮的,BUG不断地从客户那里反馈,我们不断地加班加点,最夸张的时候一个月内竟然给同一个客户提交了十几个版本的产品,想起这些都觉得无地自容。
也许就在几年前,国内象这样的IT公司多如牛毛,象我这种身受其害的程序员也多如牛毛,历史是尴尬的,随着市场经济与改革开发的不断深入,这种公司要么改变观念解放思想,要么去死,事实上我原来所在的那家公司现在举步为艰不再春风得意,技术人员的流失率极高,能呆上一年的就算是老员工了,象我这样能呆上两年的,不小心就成了一些员工的偶像,我的忍辱负重逆来顺受得到了一定程度的提高。
微软公司是软件行业的老大,他们对软件测试的重视程度是许多同行无法比拟的。在微软内部,软件测试人员与软件开发人员的比率一般为1.5--2.5左右,微软软件开发的实践过程已经证明了这种人员结构的合理性与正确性。但国内公司显然很难达到这种比率,没关系我们刚刚起步,人多人少不是问题所在,关键在于观念与态度,国内软件业和国外相比,最大的差异也许就在于产品质量和质量控制。我们并不缺乏聪明好学的程序员,也不缺乏富有创意的设计人员,你没有看到国际数学奥林匹克的金牌经常是属于中国人吗?呵呵,这真让我们骄傲。但国内很多产品的质量确实很人不敢恭维,我家去年买了个抽油烟机,使用还不到一年,就已经维修过两次,上个星期它老人家压根儿就不闹,后来发现是电机OVER了,MY GOD,真是烦躁透了,干脆换个新的,可不再有勇气选择国产的,支持民族产品的口号响了很久了,但我依然找不到信得过的理由,民族产品,您拿什么来让我感动?有关质量方面,我们有必要虚心地向小日本学习学习,当然还要依赖于政府的力量,连产品的质量掌控体系和标准都是模糊的,产品的质量承诺既没有相应机构的监督,质量水平也没有第三方来认证,这些冠冕堂皇的狗屁承诺显得极其苍白而无力,单凭我们个人的努力是无法改变面貌的,我们所做的力求问心无愧就OK了。

技术篇 
上一篇我罗嗦的是有关软件测试的现状,现状这玩意是可以观察得到的,哪怕俺从没亲自做过软件测试,也能看得到它的情况,这是吃猪肉与看猪跑的问题,现在的new new people们也许每天都在吃猪肉,但不一定见过猪跑,我不知这是好事还是坏事,我小时候在吃饭时,总会经常地由米饭想到挥汗如雨的种田农民,于是就特别地珍惜每一粒米饭,将若大个碗舔得能当镜子来照,现在我变了,经常拿饭碗一边狼吞虎咽一边看着电视,电视里或灯红酒绿锣鼓喧天载歌载舞或红男绿女花前月下卿卿我我,似乎大伙都过上了小康。而技术这东东,是瞎扯不来的,不懂不能装懂,因此我感觉自已没有资格来对测试技术作什么归纳与总结,我是爱技术的,但我的精力是有限的,所以在近期我无法成为软件测试高手,以下所述只是我目前水平的一个体现,有贻笑大方之处还望包涵。
我读了很多软件公司管理方面的书,象IBM,Microsoft,Sun,SAP等等,惊叹别人的组织能力与管理能力,而反观国内,痛苦连绵不绝,研究了一下海尔,还行,可海尔主要生产的是一些毫无情感的家用电器,什么时候张瑞敏能象生产电器一样来生产软件的话,那中国软件产业就大有希望了,国内很多公司在软件测试管理上随意、简单,没有建立有效、规范的软件测试管理体系,往往哪里着火就灭哪里,作为消防员的测试人员被弄得疲惫不堪,大把大把的青春好时光被耗费在单调无聊的灭火运动上,而自身的技术与素质并没有得到提高,这是管理体系带来的问题,体系无论在软件开发还是在软件测试都显得特别的重要,建立有规划的,可行的软件测试管理体系是保证软件产品质量的关键所在,好的管理体系,能使用测试人员事半功倍,提高工作效率,至于如何建立?我想除了参照国际著名软件公司的做法,另外还需结合公司自已的特点,软件开发的管理体系,测试人员的技术特点与行为习惯等等。
软件产品越来越庞大,功能越来越多,也越来越复杂,因而可能出现的问题也就不可避免地越来越多,并且越来越多的问题变得越来越不容易被发现,我一共用了六个“越来越”,晕了,不过没关系,因为我有文档,我一数就数出来了,呵呵,文档的重要性不必多说,我一直敬佩那些能写出漂亮文档的同行,看他们的文档就会进入到美妙的思维世界里,我也一直在努力学习,目前也就“horse horse tiger tiger”了,所以革命尚未成功,阿蒙仍然需努力!通常测试文档包括:测试计划,测试规范,测试用例,测试报告,BUG报告等,至于这些文档的概念,模板等等,网上书里都有详细描述,我的意图只是强调文档的重要性。
测试工具在软件测试中也起了非常重要的作用,所谓工欲善其事,必先利其器,有了优秀的测试工具,自然能提高测试工作的效率,并对整个测试过程进行有效地管理。笔者主要用过MI公司的产品,所以以下就作个简单的介绍,希望对你有所帮助:

MI(Mercury Interactive)
MI公司是一家世界领先的企业测试和性能管理解决方案的供应商。MI公司的自动测试软件和网络管理在线服务帮助客户提供和维护高性能的应用系统。MI公司为行业提供一整套综合自动软件测试解决方案。

测试管理系统 TestDirector
TD是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。 笔者的公司或部门一直以来都是用TD来作测试的管理工作,感觉很方便,它能消除部门间、地域间的障碍,能让测试人员、开发人员或市场人员通过一个中央数据仓库,在不同地方就能交互测试信息,大大地改善部门间的沟通,加速测试的成功。

自动化测试工具 WinRunner

WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

负载测试工具 LoadRunner
LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。它能预测系统行为并优化系统性能。
LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。 
以上主要是从测试管理体系,测试文档以及测试工具三个方面来描述了一下软件测试,相信还有很多别的方面,但水平有限,也只能如此,我会一直关注这门新学科的发展,并做一些力所能及的CASE!

素质篇 
无论做什么事情,要做得更快更好,是要求具备一些素质的,有些素质是天生的,比如性格、偏好等等,而有些素质是后天可以培养的,比如技术、语言、思维、道德等等,人们常说:性格决定命运。这话让我倍感郁闷,如果真是这样,我想我们大多程序员还真是苦命一条,遥想漫漫前程,如果有一天写出来的代码比万里长城还长,而我们还在为生活或爱情而忙碌奔波焦头烂额,那还真是一个不理想的下场,或许我们有必要反思一下我们的性格,看能不能往更好的方向发展,让我们的技术与思想我们带来一个更加美好的未来。
还是回到软件测试。在测试工作中人是最重要也是最有价值的资源(其实在别的工作中也是的,一个优秀的、积极的测试小组是保证软件质量的关键所在,然而在国内我们经常看到一些令人担忧的现象,很多公司喜欢让那些经验最少的新手、效率低下的开发者或不适合干其他工作的人去做测试工作,这是一种目光短浅的行为,这种行为往往会带来更严重的后果,傻瓜都知道产品质量对于一个企业的重要性,就如同我买的那个抽油烟机,我想这辈子再也不会去买那个企业所研发的任何产品了,让客户有这种心理是企业很大的失败,所以笔者认为软件企业需要端正态度,将软件产品的质量问题放在第一位,让中国软件早日腾飞!
阿蒙研究软件测试有一些日子了,对测试人员的管理也有一定的经验,现在就来谈一谈一个好的测试工程师所应具备的素质。

(1)技术能力
这一点不必多说,作为一名测试工程师,不能仅仅从使用者的角度来测试软件产品,而且还要从技术的角度来设计测试用例,这里所说的技术包括基础的与专业的,基础方面我想应需要学习过以下的课程:软件技术基础、C语言、面向对象设计、C++、数据库理论、计算机网络技术、软件工程、数据结构与算法、离散数学等;专业方面应掌握:软件测试技术概论、测试管理、测试工具、软件质量管理、CMM、RUP等等。看看,你还缺少什么,赶快学习吧。

(2)具有一定的编程经验
测试工程师有时候需要对源码进行检查,有时候也会从程序结构的角度来测试软件,有时候需要写一些自动测试的工具软件,有时候需要写测试脚本,显而易见,会写简单代码,能读懂源码对测试人员来说是必须的,而且如果有一定的编程经验,可以帮助你对软件开发过程有较深入的理解,从编程人员的角度来正确地评价;但这一点在国内大部分公司里面是很难实现的,因为这意味着测试人员的salary要高于开发人员,很多BOSS会想不通的,而且也没那么高的觉悟。

(3)沟通能力
测试人员需要与很多人员进行沟通,项目经理、开发人员、客户、市场人员等都是测试人员经常吵架的对象,而且在面对不同人员,你需要不同的语气、不同的态度,与客户要谈得来,处处为客户着想,客户就是上帝,与上帝说话要和颜悦色,与开发人员交往就需要技巧了,测试人员与开发人员往往是不共戴天的,双方在心理上经常较劲,因此在说话的语气或讲述一个问题的出发点时特别要注意了。

(4)要有严谨、敢于承担责任、稳重的做事风格
其实学数学的人最适合做测试作,他们思惟严密,什么问题都被他们考虑到,当然除了做事认真仔细,也要有承担责任的勇气,在漫长的项目实施过程中,或大或小的错误在所难免,我们可以原谅错误,但不喜欢狡辩,要敢于承认错误。
(5)具有怀疑与破坏的精神
测试人员不能总是以常规的思路来测试软件,要设计一些非常规的、相反的测试用例来不断地折磨软件产品,要破坏性地测试,并且不要停止你的怀疑。

(6)善于自我总结、自我督促
应该说软件测试是一种即繁琐又枯燥无味的工作,做多了你会觉得似乎一成不变,对自已的能力没有提高,这时候就需要你作自我督促,并经常作一些阶段性的总结,新的技术新的方法新的工具层出不穷,要让自已跟上技术发展的脚步,善于将新技术新方法新工具应用到测试工作当中。
暂时想到这么多了,其实也已经够多了,其中有些东东可能对做任何事都适合,笔者经验有限,有想不到的地方,希望朋友们多多指教,最后用培根老人家的话来收个尾:注意你的思想,它会变成你的行动;注意你的行动,它会变成你的习惯;注意你的习惯,它会变成你的性格,而性格将决定你的命运。
 
发展篇
明天是不可预知的未来,而生命的精彩就在于它的不可预知性,所以我们周围的许多人都喜欢在一些特定的日子去展望一下未来,我乃俗人一个,茶余饭后也喜欢给自已的明天描绘一下蓝图,以丰富的想象力将自已推向很高的位置,以抵抗现实生活中的平凡与平淡,就如同国内某报纸的宣言:以有趣对抗无趣。
在国内软件测试作为一个崭新的行业发展还是很快的,大家对其发展也都抱着一个十分乐观的态度,毋庸讳疑,从事软件测试工作的人员会有一个非常光明的明天,在看到美好前景的同时我们也应该冷静地思考一些问题:比如软件测试行业如何发展,将会发展成怎样,制约它发展的因素将是有哪些,它的发展将对每个从事软件测试工作的人产生什么影响等等。
在现状篇中我详细地描述了目前国内测试行业的一些丑陋表现,面对这些表现,我们的心是沉重的是痛苦的,但也看到了希望,痛苦往往意味着解决问题的时间到了,痛苦就是出路,由于笔者知识有限经验有限能力有限,叹息之余也只能浅薄地阐述一下自已的观点,谈不上指点江山激扬文字。
我认为,要提高我国的软件测试行业的发展水平,首当其冲的就是人的问题。一方面要提高国内企业对软件测试的重视程度,另一方面要壮大软件测试队伍,提高测试人员的素质。国内很多软件企业对软件测试的重要性事解不够,重开发轻测试的现象过于严重,很多公司没有专门的测试部门,测试工程师太少,开发人员兼作测试工作的现象十分普遍,要改变这种现状,需要一个漫长的过程,不过随着中国加入WTO,市场的透明度得到提高,产品质量问题将成为软件企业能否继续发展壮大的关键所在,相信越来越多的企业管理者意识到产品测试的重要性,也相信越来越多的技术人员投入到测试工作中。
其次是要善于学习与吸收。我们中国人具有很强的学习能力,自从小平同志提倡解放思想改革开放之后,中国大地在短短的二十年时间就涌现了许许多多的现代化都市,我们用十年的时间造就一个崭新的深圳,而美国佬要用五十年才行。但在软件测试这一块,我不知要用多少年才能赶上别人?国外有完善的测试机制,有丰富的软件测试经验,有强大的测试工具,有优秀的测试管理水平,这些我们都应好好地学习,确立与国外先进水平相同的技术指标和质量标准,解决测试手段落后、测试方法单一和测试工具欠缺的问题,在企业内部形成一个严密有效的纠错系统,使国内的测试工作流程、技术水平接近国外先进水平,这样才能提高国内软件开发与测试的整体管理水平,增加软件产品的竞争力。
第三,大力发展第三方的专业测试公司,重视利用第三方的测试力量进行测试。目前国内很多地方都有了软件产品检测中心,可这好象是政府行为,我对诸如此类的中心是不怀好感的,你千万别对他们有太高的期望,很关类似机关单位的办事效率与质量虽然在这些年得到了一定的提高,但显然还无法让很多人满意,相反企业性质的第三方专业测试公司更让人信赖,此类企业是依靠技术与服务来征服客户的,他们更加注重测试方法与质量,国外在这一方面发展得很好,国内在北京、上海、深圳也有了类似的公司,听说业绩还不错。企业从头去建立测试部门,并完善测试体系,需要较大的资金投入,将研发出来的软件产品交给实力强劲的第三方专业测试公司,不仅仅能大大地提高软件产品的质量问题,而且还节约了产品测试成本。笔者认为,在不久的将来,第三方专业测试公司将越来越多,规模也将越来越大。这对从事测试工作的人来说无疑是大好事,不仅就业机会大大增多,而且待遇方面也会水涨船高。
当然,随着软件测试行业的发展、提高和完善,也会象软件开发行业一样出现分工上的细化,测试人员等级的划分,比如初级测试员,测试工程师,高级测试工程师,测试设计师,测试经理等,同时也会出现各种各样的国家认证、企业认证、国际认证等,所以我们需要不断地学习,不断地提高测试水平,不管未来怎样,我们都能从容面对。(完) 引用地址: http://blog.programfan.com/trackback.asp?id=16322

转载于:https://www.cnblogs.com/lyss/archive/2006/07/07/445407.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值