请选择行业
请选择职位
请选择省份
请选择城市

怎样做好一个软件测试工程师

时间: 2015-05-27 11:57   作者: 51Testing软件测试网采编   点击次数: 
 
  二十五年前,我刚刚成为一名年轻的软件工程师,那时候专业的测试员还很少。只有大型的重要项目才会有测试团队。对于多数项目,有首席分析师的软件测试只在发布前检查系统。偶尔,会在接受阶段与顾客一起进行测试,这会导致不可预测的结果。在经历了尤其痛苦的顾客接受阶段后,经理会召开会议,宣告:“下一个项目,我们一定要在发布前进行测试。”“但是谁来测试呢?”项目负责人问道。“Bob和Jackie不是很忙,他们可以在发布前两周进行测试。让他们尽可能多地找出bug。”“好的,那就试试吧。”于是下一个项目中,所有测试成员都在最后两周都埋头苦干。我们新晋的测试员Bob和Jackie尽管经验不足但仍是竭尽全力。但是Bob并不想以测试为职业。Bob对整天测试没兴趣,他终会离开这个项目。Jackie找到的bug比Bob多,她坚信该过程,她会将她所学都贡献到以后的项目之中。这是一个十分典型的场景,让我想起了2010年3月出版的Dilbert漫画,Dilbert的老板在一个新的软件版本的质量测试中寻求他的帮助。Dilbert找了一堆的蠢借口不想当质量测试员,还用binder打老板的脸,总结了他对老板的不满。这件事中,很明显Dilbert对测试不感兴趣,更何况他很可能根本就不具备一名优秀测试员的技能。当然,这只是讽刺,但它和现实很接近。近几世纪,开发方法和测试过程都明显地发展了。但是IT界仍有人相信任何人都可以成为优秀的测试员——但是真的每个人都能正确地测试吗?想当然地认为任何人都可以做好测试是不正确的。我个人认为要想成为一名优秀的测试员你需要一些遗传特性,在这里我们讲的是什么特质呢?
  一个天生的测试员:
  1.需要技术知识和深奥的分析能力创建极其复杂的测试。这些特点,伴随着一个将事物分解的本质特点,增加了终端产品的力量和可靠性。简单的测试可以找出最明显的bug,比如格式错误或丢失边界验证。但是需要更具体的测试场景来揭开逻辑错误或级联效应。比如,将一个状态图的所有例子都过一遍,尤其是从一个状态到一个禁止状态,常常会有令人惊讶的结果。对于复杂的例子,将要执行的测试记录下来很重要。使用过时的Excel表总比什么都没有好。
  2.拥有学习能力。测试员可能会被要求在很短的周期内从有限认识产品到掌控该产品。他们必须能够在总体概述产品时记下细节并了解每个模块的概念。测试员必须要愿意通过学习技术资料并把时间花在重要分析师上来检查并学习预期系统行为。我记得一个十分复杂的用于铝冶炼厂的应用程序。管理层不太确定测试团队是否能充分测试。但是通过读了所有资料并提问我们,我们干的不错。想要了解应用程序的细节,尤其是说明不够明确的时候,绝不要因为害羞而不提问题。
  3.你能打破常规,并将假设与具体事实考虑在内吗?并不是所有状态都一定在功能说明中。这就像你买一辆车的时候,你下意识就知道很容易打开引擎罩检查汽车。汽车功能中并没有提到这条准则,但是每个人都这么希望的。测试员应该试着测试未写的功能。一些未写的特点可能对终端产品有重要影响。因此需要体会言外之意。比如,系统可以支持一些要求的功能,但是如果我尝试一些不同的东西会发生什么呢?系统支持吗?会崩溃吗?会破坏数据吗?
  4.培养敏锐的洞察力并留心小细节。很不幸他们的完美主义可能惹恼编程员和开发员,但是优秀的测试员可以在最不可能的情况中找到最大的bug。如果用户知道系统操作的顺序,为什么他们不能操作呢?为什么屏幕上用不同的字体标注?没有正确对齐或大小写不一致的报告是对产品质量产生不利影响的小细节的其他例子。一些人更多地注意到这种错误。它们很有可能在他们的日常生活中。
  5.深切关注终端产品。他们坚信他们的任务:保护公司的声誉。他们喜爱测试并以找到bug为荣。找到一个bug很令人满意,找到一个特别棘手的bug尤其使人开心。
  6.有组织且灵活。他们很注意说明并系统地构建测试。这对重现bug很重要。为了重现而不能详述的bug是无法被修复的。他们也能适应项目中的变化且如果必要的话愿意一遍遍重复测试。一个bug修复后,或许需要改善测试用例并重新执行以验证系统的质量。
  即使有了这些特质,如果一个人无法给开发团队带去积极的影响的话,他们仍不算是优秀的测试员。测试员必须提供积极的反馈,能够激励团队成员改善他们的工作质量,且在一般情况下管理每个成员的自尊。
  测试员的角色在不断地变化。为了在如今的市场上占有一席之地,公司必须以更少的成本更快的速度生产更复杂的软件解决方案。测试管理工具,系统仿真以及自动化测试用例执行如今势在必行。我们必须通过开发我们的编程能力或与开发员紧密合作来适应这些变化。和开发员一起尽可能快地推动更完整的单元测试并进行测试可以大大地帮助在测试早期减少错误。即使是高效的测试员也不能保证一个产品完全没有bug。但是选择正确的人担任测试员将通过减少遗漏bug的影响而带来最佳结果。
  总之,你的下一个项目不要选择一个Dilbert去进行质量测试。选择一个测试开发员时,你是在试着选择正确的人来做你的项目。你想要最好的一个。只需在选择一个质量测试员时使用同样的原则。一个高效的软件测试员将帮助你收获最大的投资收入。

打印本页 | 加入收藏

上一篇:看看十二星座求职之优缺点     下一篇:仅两年半时间, 从零到阿里,他是这么做到

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: