授之以鱼,不如授之以渔。这是我来北航校区学习一个月后的最大感受,如果说授课老师的乐观向上是给我的第一好印象,那么教给我们好的学习方法,则是我收获的最大财富!记得老师常说:“基础不好没有关系,谁都是从头一点一点开始学起的……大家要对所选择的行业有信心,更要对自己有信心……希望大家在这里除了学好知识本身,还学会如何学习知识……”。
通过这一段的学习,再加上我曾在软件公司工作过,虽然干的不是,却经常和软件人员打交道,对于软件测试这个职位和工作内容有一些认识,想和大家分享我的感受,不正确的地方请大家指正。
没有bug的软件是不存在的。
曾在一本软件测试书上读到了这句话。这让我想起每次体检照X光时,总会见红戳上着: “未见明显异常”,而不会写作:“没有异常”。(说明医生对结论很谨慎:未见异常。不是:没有异常。或:完全健康。)同样测试报告的结论有时会写作:“本轮测试没有发现bug”,但不会说:“该软件没有bug、完全正常”。(没有bug的软件是不存在的。)或许用人和软件作对比不太恰当,只是想要说明两个‘结论’背后有某些相似性,希望能帮助大家理解。软件公司的工作经历让我明白:软件的bug有时是找不完的,甚至越测越多!因为很多赢利目的的公司都必须,尽快将产品投入市场或提交给客户,以抢占市场份额或从客户处得到回款(个别科研教育机构不计较时间和成本除外)。所以在有限的时间内bug总也找不完,我以前的公司经验是将每轮测试出的bug,按严重和修改优先级排序,从高到低改掉其中的80%~90%就提交给客户,默认为客户的bug容忍程度。为什么会说‘甚至越测越多’呢?因为某些开发人员为修正bug而修改代码后,常常又引入更多新的bug也是屡见不鲜的。
基于以上的结论,我感觉有不少的bug需要我们在有限的时间和条件下,尽早尽多地去发现,真是一个很有挑战的工作,选择这个职业只要踏实地干下去失业率会很低。
我所了解的测试人员的职责是:在有限的时间和条件下,尽早尽多地发现软件缺陷,并保证其被修正。
有限的时间和条件——时间:有时测试任务很紧,需要我们在‘基础’上少花时间(比如最基础的搭建测试环境、并根据测试要求配置好这个环境),而把主要时间和精力放在被测软件上;条件:有时公司的测试机器不太充足,需要我们利用有限的设备想尽办法完成任务,好的工具和软件将助我们一臂之力(比如虚拟机等)。当学习压力过大时,身边的同学偶尔会怀疑课程中的某些知识学了以后用处不大,其实越把基础掌握好,就能越专注于被测软件本身,而少受其他来源于基础环境的“不必要”的干扰。
另外,我感觉大家都比较认同做白盒测试比做黒盒测试工资高,且更体现自己的能力。而对功能测试和性能测试的认识不太多,其中功能测试对于自己掌握‘业务流程’(下文详述)很有帮助;而做性能测试也是公司很重视的一部分!比如:现在市场上的导航软件还真不少,那为什么有的公司还在继续研发呢?因为只要我公司的产品算法好,效率高,还是会有不少市场的。可见软件公司对性能的要求和重视。做性能测试除了看代码本身的编写质量,也需要我们对代码运行的软件、硬件、网络基础环境和设置的熟练掌握,因为说不定以上某个环节的设置没有做好,才造成了软件运行的瓶颈,可能跟代码本身关系不是很大。我曾经听说测试QQ时,进行了一项压力测试,即:模拟同时几千、几万个用户同时登录,看QQ软件能否承受住如此大的压力……我不懂测试的具体专业技术,所以在这里和大家一起学习,但我感觉如果不懂网络知识,很难把这个测试做好。
看来一个专业、优秀的测试人员需要精通软件,硬件,网络,数据库知识一点也不夸张。
一个优秀的专业测试人员除了需要精通软件,硬件,网络,数据库以外,还需要掌握被测程序的‘业务流程’知识。
[1]
【责编:Luzi】
--------------------next---------------------