您好, 访客   登录/注册

软件测试学习之我见

来源:用户上传      作者:

  在我国软件业快速发展的最近十年,软件开发工程师的人数和职业水平得到了很大的发展。但是,我们的不足是――软件测试人才严重缺乏,尤其是既懂质量管理,又懂测试技术的软件测试工程师,更是凤毛麟角。像微软这样国际性的大公司,其软件开发工程师与测试工程师的比例是1:1。而在我国,由于软件开发利润大,成本低,造成大量软件公司如雨后春笋般涌现,他们往往不按行业的规格操作,公司没有专门的软件测试人员,开发的软件普遍质量不高,这样的结果就导致软件开发市场长期处于混乱和小作坊作业时代,难以形成规模,大大阻碍了我国软件业的发展。
  随着越来越多的软件质量问题的出现,国人也开始越来越重视软件测试环节,但是,软件测试从业人员的稀缺确是个首要的难题。据电脑报05年6月报道:“05年我国软件测试人才的缺口将超过20万,在未来5到10年中这一数字还将继续增大;”这就需要大量软件测试人员来补充这个不足。
  所以,软件测试工程师这个岗位无疑是一些计算机专业的毕业生们的好选择。但是,有调查显示,在国内高等教育体系,独立开设软件测试课程的高校非常少,除了“以北京大学软件学院为依托,由中、美、印软件测试专家共同开发完成的国内第一套系统软件测试培训课程――BTEST(北大测试)”,及国内少数高职类职业技术学院有专门的软件测试教育外,系统专业的软件测试教育近于空白。
  那么人才凋零的软件测试队伍该如何壮大?
  在这样的严峻形势下,北大青鸟、51testing等一些中短期的培训机构就成了软件测试人才速成的基地。他们一般招收的是有一定的开发经验的企业员工,或大学、高中刚毕业的计算机专业致力于从事软件测试行业的学生,或高中毕业没有升学的学生。近年来,由于其收费颇高,也让很多囊中羞涩的学员望而却步。
  笔者在一所开设软件测试专业的职业技术学院从事软件测试教育近3年,掌握了一些学习软件测试的方法及经验,虽谈不上资深,确想在这里撰文一篇,旨在给那些初学软件测试的莘莘学子们一些软件测试学习方面的指引。不足之处,请见谅。
  前微软亚洲研究院博士、软件测试专家陈宏刚表示,在很多大型的软件开发项目中,软件测试绝对不是开发活动完成后的“收尾”工作,甚至会占据整个项目周期一半以上的时间。所以,软件测试遵循这样的原则:尽早测试、连续测试、自动化测试。围绕这三个原则,如果你在自我学习中,体会了这3句话的真正含义,并能围绕这三个原则畅谈45分钟以上,那么恭喜你,可以投出你的简历了。
  下面准备开始你的测试学习之旅吧!
  打好基础,用理论武装头脑、改变思维。
  软件测试的学习第一步就是基础知识体系的建立。买一本市场上出版年限较近的《软件测试技术》教程,并通过结合网络上的大量资讯。深入了解如下问题:
  什么是软件测试?
  软件测试的目标是什么?
  软件测试的基本原则是什么?
  什么是白盒测试?各种白盒测试用例设计方法是怎样的?
  什么是黑盒测试?各种黑盒测试用例设计方法是怎样的?(这里可以作为你的重点,因为初学者多数可做一些黑盒测试的实践来锻炼自己的测试水平)
  什么是动态测试、静态测试?(重点是学习静态测试中的静态程序分析)
  软件测试过程策略问题:单元测试、集成测试、确认测试、系统测试、验收测试
  至此,你就掌握了软件测试理论体系中的核心问题。接下来,我们的重点要放在对软件测试过程的理解和知识体系的穿线上。
  理清过程,从管理工作过程的角度理解软件测试过程与开发过程的关系。
  作为软件测试的一个初学者,你可能还不具备完成一次测试任务的能力。那么此时建议学员准备二本管理类的教材,一本是软件配置管理,一本是软件测试管理。作为一个合格软件测试人员,对整个项目的开发进程应该是有一定了解的,而且应具备一定的测试过程管理的能力。那么你需要的是了解如下问题:
  什么是测试管理?
  什么是软件配置管理?
  测试的基本流程是什么?(并考虑如何在过程中引入测试理论中学习的分析设计方法来规范软件测试流程)
  测试的过程模型是什么?
  “公欲利其技,必先利其器”
  很多软件测试工作都是烦琐的,耗时的。在实际的软件测试中,会酌情使用一些自动化的测试工具来辅助,以提高工作效率。目前市面上各种测试工具有上百种,那么对于工具的学习,切忌广而不精。在这里笔者推荐初学者学习Mercu―ry公司的系列工具:如Qc、QTP等。这些测试工具,网络上都有其评估版可供学习之用,且有汉化的中文版,可大大减少语言障碍给学习带来的麻烦。那么就以Mercury系列的产品为例,我来说一下,自动化测试工具的学习。
  了解什么是测试自动化,为什么要自动化?
  学习Quality Center(简称Qc,其前身是TestDirect)。这是一款基于WEB平台的测试管理的工具。网络上有关于该工具的《中文版使用指南》、《中文版安装指南》,指南中介绍的内容很详尽,在成功安装的前提下,结合一个小的学习项目(例如:JAVA语言开发的J2EE小项目,如果有朋友正在学习开发,并打算自己做个小项目来练习,你可以同朋友合作帮他测试他的项目),从立体的角度把软件测试整个过程的自动化管理融会贯通。同时,在制定测试计划时还能结合理论学习中的各种测试设计方法,从而把整个测试过程的计划与管理系统化、自动化。
  学习QTP。这是一款web功能测试工具,可以用vbs编脚本。而且从市场份额上看,他已经优先于各个功能测试工具。可以和loadrunner和Qc联合使用。
  学习Loadrunner。这是一个强大有力的压力测试工具。它的脚本可以录制生成、自动关联;测试场景可以面向指标,多方监控;测试结果图表显示,拆分组合。
  “实践出真知”
  目前,有一些软件类的公司会请一些实习生去公司,多数是做一些正式员工觉得繁琐和简单重复的事情,即使没有薪资待遇,这无疑是一个练习实践的绝佳机会。别怕苦、别怕累,不要觉得白受罪,永远记住自己的目的:“为实践所学,不为短期利益”。所以,接下来你的任务就是放弃自己一个人“关门学”的模式,想办法走进一家公司的测试组去做实习生,让我们真刀实枪的来吧!
  一般小公司用的测试工具会是一些像Merqury这样系列的产品。但是资金比较雄厚的大的企业,会选择IBM Ration―a1系列产品,他们管理测试是用Rational testmanager,管理缺陷是用Rational ClearQuest,功能测试是用Rational Function―al Tester,性能测试是用Rational Performance Tester,这一系列产品很全面,能够完美的集成到一个平台之上。因为实习生进入大企业实习的机会不多,所以关于以上工具,不在介绍。
  做实习生虽不能接触主干工作,但是可以了解在企业内部的测试流程是什么样子的,了解测试项目的启动、测试人员的分工、测试用例的编写、测试任务的定制、缺陷报告(SPR)的产生、SPR的分配、SPR的reopen,close,cancel状态转移等背景知识。


转载注明来源:https://www.xzbu.com/1/view-343665.htm