在计算机信息系统专业毕业后,我出人意料地接受了一份QA测试员的工作。人们说我在自贬身价,认为我做测试人员没有体现学历的价值,更应该去做编程工作。但我喜欢这份工作,因为QA测试结合了商业和技术知识,确保软件改进能很好地为最终用户服务。虽然QA测试不像编程那样被视为一个光鲜亮丽的职位,但它也有晋升的机会,而且会对项目产生巨大的影响。如果您觉得作为测试人员的价值被低估了,请记住以下几点。
软件测试人员可以发现所有错误答案
当人们暗示编程比测试 “更难 “时,我想他们并不了解我整天都在做什么。他们是否设想过,我点击几个按钮,看到一切完美运行,标记一个项目完成,然后提前两小时离开?
实际上,软件测试人员要做的是制定一份测试计划,其中包含他们可以设想到的所有情况。假设你正在测试一个新的生日输入框。这是很简单的,对吧?只需要输入出生日期,并确保保存即可。
当然,如果你知道系统所需要的准确输入,并且程序编码正确的话,这是很简单的。但是下面的情况呢?下面是我可能会对 1982 年 2 月 1 日出生、姓Smith的用户进行测试的内容。
- 用户是否可以输入 2/1/1982,而不输入两位数的月份?
- 日期是保存为 2 月 1 日还是 1 月 2 日?
- 02/01/82 是保存为 1982 还是 2082?
- 如果用户输入的是今天的日期怎么办?
- 如果用户键入的是 Smith是因为他们的标签页选错了字段呢?
软件测试人员知道 “错误答案 “并不总是错的
也许你能够想到所有的生日例子,或者你以前见过所有的例子。但你需要跳出自己的经验,学习如何找到程序员可能没有考虑到的有效输入。您已经测试了出生日期,现在要测试的是姓名字段。请考虑以下姓名字段:
- E.E. cummings(全部为小写字母,姓名中有标点符号,无中间名)
- Michael D’Angelo(省略号,多个大写字母,按字母顺序排列)
- ‘Alim Ruhi Shil Chaira(名字开头有撇号、可能有两个中间名或姓有两个字)
- Madonna(单字名)
- 岸田 文雄(非拉丁字符集)
测试人员还可以充当不同的用户。有些用户可能对某个页面只有查看权限,有些用户可以编辑某个页面,但需要其他人的发布批准,有些用户可以删除某个页面,还有些用户甚至可能无法查看某个页面。而这些都只是一个网页一些基本的操作选项;如果要给出一个大型项目需要的所有测试场景,我需要写一整本书。
软件测试人员可以同时处理多个项目
一名优秀的软件测试员需要在压力下很好地工作,并同时处理多个项目。在准备发布时,测试人员要测试多个项目,这些项目在QA和编程之间来回进行,因为需要在这过程中进行修复。许多项目在接近发布时间时才进入QA阶段,测试人员需要决定先从哪个项目开始,以便按时完成所有工作。
除了测试,测试人员还需要与技术文档团队合作,以获取项目文档所需的信息,回答程序员提出的修复问题,并与最终用户协调用户验收测试。这比你想象的结构化要少得多,而且需要很大的灵活性。
软件测试人员需要极大的耐心
我曾听人说过,程序员必须非常有耐心,因为他们需要花时间调试一些东西,比如区分大小写的错别字,以防程序无法编译。事实确实如此。
现在想象一下,QA测试人员需要多大的耐心。
测试人员会遇到一些程序员,他们送来的项目有很多bug,有时候每个项目都有相同的bug。我经常遇到的一个问题是程序员没有初始化变量。在我的职业生涯中,有好几次我都在想,如果我再看到一个项目中,我运行的搜索本应没有结果,但却因为变量没有被清除而返回了我之前的结果,那我就会在这一天离开去吃午饭,再也不回来了。
但是,测试人员不仅要对人有耐心,还要对项目的性质有耐心。你永远不知道一个bug的修复何时会破坏其他已经正常工作的东西,所以你必须做好准备,一遍又一遍地测试同样的东西,知道每次都可能发现新的问题。
软件测试人员需要具备良好的沟通能力
如果程序员已经是第 17 次没有初始化变量了,我可以建议他们在电脑上贴一张便条提醒自己。但除此之外,测试人员在反馈时还需要有技巧—没有人愿意听到自己辛辛苦苦完成的项目出现问题。
在报告中详细、透彻地说明问题可以帮助测试人员解决问题。举例说明:
- 良好的反馈:“在会员申请表 2.3 版注册页面的出生日期字段中输入两位数的年份,会出现一个提示 “输入无效 “的对话框,并删除页面上的所有数据。
- 不良反馈:“出生日期功能仍然是坏的”。
不过说真的,如果一个项目运行得非常好,只需要一些小修小补,也可以在反馈中附上一张纸条,告诉程序员一切顺利。如果你非常喜欢他们设计网页的方式或方便用户的地方,请告诉他们!不要只传达坏消息。
编程背景会有所帮助
要想成为一名QA测试人员,您并不需要深耕编程技能,但这对你的工作确实有所帮助。例如:
- 查询数据库。生成的报告与系统中的数据是否匹配?搜索结果是否有效?
- 创建脚本。自动化测试产品确实允许用户记录测试脚本,但如果你能自己编写或编辑脚本代码,就可以根据自己的情况定制脚本。
软件测试不是编程的 “精简版”——它是一个完全不同的角色,需要完全不同的技能。对我来说,QA是一个有价值的职业选择,如果你具备了我在这里谈到的技能(并且你喜欢你所做的!),就值得坚持下去。