软件测试指南-如何学习软件测试
测试……在我的理解是优化的前半部分,也就是优化策划,一个东西让你去测试,无非就是说要去根据客户的要求完善它,测试占的就是要把这个东西还没有符合的或者是和客户要求不一样的,或者是客户要求还没有完全达到要求的部分找出来,那要怎么去修练呢,这里我说一下我的方法:
1.首先要锻炼自己的能力(包括需求的分析能力,提取能力,逻辑化思想能力,通俗一点来说,就是给你一个系统的时候,你要先看客户在哪方面有要求,能够把系统中表现出来的提取出来校对,能够把整个业务流程很清晰的理出来)
2.学习测试理论知识并与你锻炼的能力相结合(学习理论的时候其实公式不需要管的,其中一部份的原因是目前测试方面还没有一套真正标准的公式能用得,大部分都是前人提出的想法,实用性不高。)
3.想和做(想就是说你看到任何的系统都要有习惯性的思考;做就是把实际去做练习,然后提取经验)
这些是我做了一年测试总结出来的,是我的个人见解,或者很多人在看了以后会问,测试用例,计划啊之类的那些那些怎么都没有提到?其实,那些东西不是说不重要,而是和你的测试能力和思想并没有太大的关联,能力和思想一旦到位了,你在写相关文档的时候也就基本知道需要表示哪些内容了……
希望我的这段话能够给大家带来启发。
最近收到一封邮件这样写道:
陈工:
您好,冒昧给您发邮件,没有不良的目的。我叫小范,计算机系毕业的,现在从事检索数据库的服务工作,现在想学一门技术,所以选择了“软件测试”这个行。
对于一个计算机专业,不懂代码编写、只懂数据库的简单语言的我,只能请求你教我,拜师学艺了,希望你能成为我的良师益友。
对软件测试工程,我要从最简单开始学起,希望您能指点。等待你的回复!
我想这是很多软件测试初学者共性的问题,因此决定把邮件的回复POST出来: 软件开发网
哈哈,“为师”则不敢当了,但是感谢你称我为陈工,我想“工”代表的是“工程师”,我为自己是一名工程师而感到骄傲,我甚至想到将来我的女儿在学校被人问起“你爸爸是干什么的啊?”的时候,她可以很骄傲地说“我爸爸是一名工程师”。
而且,作为软件测试工程师,我更加感到骄傲,因为软件测试作为IT业中新兴的职业(虽然早就有测试这个角色),近年来得到了大家的认可和重视,各企业纷纷招聘优秀的软件测试人才,组建软件测试队伍。我在这几年也亲身经历了软件测试由“无人问津”到目前“身价百倍”的过程。
其实,这不仅仅是软件测试从业人员本身的进步和提高,而且是中国的整个软件行业对软件测试和软件质量的认识的提高。
另外,你把软件测试称之为一门“技术”,我想未免过于单纯,软件测试不是一门单纯的技术,它是一门融合了软件开发技术,软件设计和建模,业务和领域知识分析,用户模型分析等各方面知识的学科,它是一门讲求全面知识综合利用的学科,这也是为什么有经验的测试工程师那么地“值钱”,为什么有经验的测试工程师能轻易地发现很多别人不能发现的BUG的原因。
我喜欢你把软件测试的学习称之为“拜师学艺”。确实,软件测试需要掌握的知识很广泛和丰富(虽然有些知识看起来与软件测试没有什么直接的关联,或者暂时用不上),软件测试的学习就想修炼武工,需要坚持不懈,博采众家之长,融汇贯通,为我所用。
我说上面的这些,目的都是想你明白,软件测试目前在国内非常地“炙手可热”(我也面试过很多人是希望从软件的其它角色转换过来的人,例如开发转测试,技术支持转测试等,我在我的新书《软件测试技术全书》中对这个问题有一些阐述),但是其实很多人没有真正把它作为一个“工程师”的职业来看待,而是看到它目前很“HOT”,前景很可观,所以“趋之若鹜”。我希望更多的人能把软件测试作为终身的职业,正确地认识软件测试和质量管理,找到其中的乐趣,若干年后可以 “无愧”而“骄傲”地对自己的儿子或女儿说“我是一名软件测试工程师”。
软件测试之素质篇
无论做什么事情,要做得更快更好,是要求具备一些素质的,有些素质是天生的,比如性格、偏好等等,而有些素质是后天可以培养的,比如技术、语言、思维、道德等等,人们常说:性格决定命运。这话让我倍感郁闷,如果真是这样,我想我们大多程序员还真是苦命一条,遥想漫漫前程,如果有一天写出来的代码比万里长城还长,而我们还在为生活或爱情而忙碌奔波焦头烂额,那还真是一个不理想的下场,或许我们有必要反思一下我们的性格,看能不能往更好的方向发展,让我们的技术与思想我们带来一个更加美好的未来。
还是回到软件测试。在测试工作中人是最重要也是最有价值的资源(其实在别的工作中也是的,一个优秀的、积极的测试小组是保证软件质量的关键所在,然而在国内我们经常看到一些令人担忧的现象,很多公司喜欢让那些经验最少的新手、效率低下的开发者或不适合干其他工作的人去做测试工作,这是一种目光短浅的行为,这种行为往往会带来更严重的后果,傻瓜都知道产品质量对于一个企业的重要性,就如同我买的那个抽油烟机,我想这辈子再也不会去买那个企业所研发的任何产品了,让客户有这种心理是企业很大的失败,所以笔者认为软件企业需要端正态度,将软件产品的质量问题放在第一位,让中国软件早日腾飞!
简单谈一谈一个好的测试工程师所应具备的素质。
(1)技术能力
这一点不必多说,作为一名测试工程师,不能仅仅从使用者的角度来测试软件产品,而且还要从技术的角度来设计测试用例,这里所说的技术包括基础的与专业的,基础方面我想应需要学习过以下的课程:软件技术基础、 C 语言、面向对象设计、 C ++、数据库理论、计算机网络技术、软件工程、数据结构与算法、离散数学等;专业方面应掌握:软件测试技术概论、测试管理、测试工具、软件质量管理、 CMM 、 RUP 等等。看看,你还缺少什么,赶快学习吧。
(2)具有一定的编程经验
测试工程师有时候需要对源码进行检查,有时候也会从程序结构的角度来测试软件,有时候需要写一些自动测试的工具软件,有时候需要写测试脚本,显而易见,会写简单代码,能读懂源码对测试人员来说是必须的,而且如果有一定的编程经验,可以帮助你对软件开发过程有较深入的理解,从编程人员的角度来正确地评价;但这一点在国内大部分公司里面是很难实现的,因为这意味着测试人员的 salary 要高于开发人员,很多 BOSS 会想不通的,而且也没那么高的觉悟。
(3)沟通能力
测试人员需要与很多人员进行沟通,项目经理、开发人员、客户、市场人员等都是测试人员经常吵架的对象,而且在面对不同人员,你需要不同的语气、不同的态度,与客户要谈得来,处处为客户着想,客户就是上帝,与上帝说话要和颜悦色,与开发人员交往就需要技巧了,测试人员与开发人员往往是不共戴天的,双方在心理上经常较劲,因此在说话的语气或讲述一个问题的出发点时特别要注意了。
(4)要有严谨、敢于承担责任、稳重的做事风格
其实学数学的人最适合做测试作,他们思惟严密,什么问题都被他们考虑到,当然除了做事认真仔细,也要有承担责任的勇气,在漫长的项目实施过程中,或大或小的错误在所难免,我们可以原谅错误,但不喜欢狡辩,要敢于承
认错误。
(5)具有怀疑与破坏的精神
测试人员不能总是以常规的思路来测试软件,要设计一些非常规的、相反的测试用例来不断地折磨软件产品,要破坏性地测试,并且不要停止你的怀疑。
(6)善于自我总结、自我督促
应该说软件测试是一种即繁琐又枯燥无味的工作,做多了你会觉得似乎一成不变,对自已的能力没有提高,这时候就需要你作自我督促,并经常作一些阶段性的总结,新的技术新的方法新的工具层出不穷,要让自已跟上技术发展的脚步,善于将新技术新方法新工具应用到测试工作当中。
暂时想到这么多了,其实也已经够多了,其中有些东东可能对做任何事都适合,笔者经验有限,有想不到的地方,希望朋友们多多指教,最后用培根老人家的话来收个尾:注意你的思想,它会变成你的行动;注意你的行动,它会变成你的习惯;注意你的习惯,它会变成你的性格,而性格将决定你的命运。
|