软件测试的那些事儿——软件测试行业探秘
我曾经历过这样一个项目,当时所在的公司急需上线一套新的系统来替代现有的系统,以满足日益增长的需求,解决现有系统性能、功能瓶颈问题。由于需求时间非常紧,所以领导也来不急前期考察、调研,直接找了一家国内名气比较大的软件公司,细节也没有沟通,直接说了粗线条的需求,然后软件公司报了价,经过一番讨价还价之后,合同就签订了。由于决定过于草率,前期细节也没做到位,合同中也没有太多的约束条件,项目结果可想而知,原本急需解决现有系统不足的,但新系统项目拖了两年多,虽然功能上基本上都实现了,但实际应用效果还不如现有系统。整个过程中,公司里参与项目的同事怨声载道,软件公司的开发人员也一肚子火,为什么项目会如此呢?这里面的软件测试环节也费了很多时间,也可以说因为软件测试工作,让本就不顺的工作雪上加霜,部分细节在后续分部我会再加以说明。
先回到上面说的那个项目上来,这个项目之所以非常失败,我想还有一个重大的原因在于,虽然项目的合同是国内非常有名气的公司签订的,但事后通过其他渠道侧面了解到,原来这家公司认为我们的项目太小了,于是就转包给了另一家规模不大的小软件公司,给来了一次二转手。
软件测试本来是需要利用软件测试工具按照软件测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的软件测试工具,设计和维护测试系统,对软件测试方案可能出现的问题进行分析和评估。这也就决定了,在一个合格的项目组里,必须有软件测试人员。但实际的情况往往要悲观得多,我见到过一些软件项目根本就没有软件测试人员,或者是就算有,也是开发者测试自己的程序,如同让自己检查自己写的作文一样,自己测自己显然效果不会太明显。
据我所知,目前很多中、小型的软件公司都不会安排专职的软件测试人员,在他们的职位表中,或许本来就没了软件测试这一项。开发人员既要编写程序,又要负责测试,其测试效果往往有限。
前面提到,软件测试本来是需要利用软件测试工具按照测试方案和流程地产品进行功能和性能测试。但实际的项目中,真正编写软件测试方案的非常少,而软件测试过程顶多也就是安排几个人按照软件功能需求上的要求,针对功能点逐一进行测试,保证常规流程能够正常执行就行了。
除了功能测试外,性能测试同样重要,但却很少有人会意识到这一点,认为软件能用就行了。我曾遇到过一个系统,在系统中拉取一个大概有二十万条记录的报表时,竟然花了三十多分钟的时间,当然数据再多一点时,客户端干脆就直接宕掉了,幸运的是,服务器还没有宕掉。
在一些BOSS的眼中,软件测试不重要,重要的是美工、开发。因为美工可以给软件一个非常绚丽的界面,开发可以保证系统功能的实现,至于系统的稳定性、性能等,他们往往不太关心。
软件测试谁都能做?
从现阶段来看,目前应用最广泛的还是一些中小企业里的中小型应用,而为这些中小企业客户服务的往往也是一些中、小型软件公司,在这种情形之下就会有两个问题。一是中小企业里很难聘请完整的IT团队,并且在这些企业中,最具话语权的也是领导层,也许他们对软件系统本身并不了解,但他们总认为这些事得他们管;还有一个问题就是前面也提到的中小型软件公司里基本上不会设置专门的软件测试岗位。
一方面是需求方对软件测试本身的不了解,也不知道软件测试这回事,就更不知道软件测试的重要性了;另一方面产品提供方虽然可能知道软件测试非常重要,但他们往往会忽略这一点,拿不重要的说,或是淡化软件测试的重要性。
比如一开始提到的项目,当时的情况就是系统框架出来后,软件公司直接将软件打包发布,然后让我们需求方安排人员进行软件测试工作,寻找Bug。这就明显的轻视了软件测试的作用,作为需求方,软件使用人员大多数为非IT专业人士,试想连非软件测试专业相关的IT人士都不太清楚软件测试的方法、工具等,让一些非IT人士来测试系统,最终的效果也是可想而知。
由“软件测试谁都能做”这一怪理论就诞生了当下的软件测试行业怪圈,一边是人才缺口几十万,测试工程师招聘、培训红红火火;一边是看不清职业发展、“成功没我份,失败全我错”的测试岗位从业者。而在这里面我想还有一部分原因在于,很多人都认为软件测试谁都能做,从一定程度上降低了软件测试行业的含金量,另一方面是当前的软件测试行业没有形成一定的规模效应,缺少既定的显性标准,缺少凝聚真正的软件测试从业者的平台、圈子。
软件测试工程师何去何从?
“成功没我份,失败全我错”虽然这是目前很多软件测试岗位的现状,但我想随着软件测试行业的规范化,以及各方对软件测试本身的重视,这种局面会被改变。而作为软件测试工程师需要做的是什么呢?需要何去何从?个人觉得有几点理应值得重视。
1.对软件测试充满激情
我不知道现在做的工作或测试是不是你喜欢的,但我想告诉你,如果你正在做着软件测试或者打算要从事软件测试这一行,你就需要对软件测试充满激情。你需要学会享受,从找到的Bug中得到一种满足,在哪怕是给系统带来性能上1%提升,你也要为此感到骄傲,要从软件测试之中发现自己的价值。
2.学会并善于思考
在工作中为什么要学会思考,做软件测试不止是简单的执行,你要想想你同事做的软件测试用例有没有到位,是不是已经是最好的,如果让你来做是不是可以更简单就可以达到目标等等。
3.找到一个好的平台、建立自己的圈子
现在社交应用非常发达了,但在社交平台上显得过于“娱乐”,不太专业。如果你想专于软件测试行业,找到一个好的平台,建立自己的圈子则非常重要。在圈子中有一定的影响力之后,相信你需要换工作也会容易得多,行业中的猎头岗位相信也会离你更近一步。
我想对于一些软件测试人员来说,头痛的事可能正在此处。网上各类技术论坛比比皆是,但软件测试行业,相样的平台却没见过。现在要告诉你的是,313782132群内以软件测试专业技术为核心,关注软件测试领域的前沿技术和管理思想,定期举办各种在线活动以推动软件测试相关领域的交流,力求为中国广大软件厂商、系统集成商、IT渠道,以及IT专家、测评专业人士、热心网友等提供一个软件测试、专家问询、交流沟通的在线互动平台。
有了313782132软件测试技术交流社群这一平台,相信我们的软件测试行业会进步得更快,当整个产业链都对软件测试有了非常深的认识时,相信我们的软件项目质量也会跟着上一个台阶。如果你还在困顿于找不到好的平台时,不妨去群内看看,有了这支正规军队伍,相信你也能很快找到自己的归属。
生活中谁都有遭受挫折、情绪低落的时候,在别人信心不足时安慰别人是我们应该做的。在下方评论区交流你的困惑吧!