我眼中的软件测试

发表于:2013-6-06 14:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:孙巨    来源:TaoBao QA Team

  此文是我个人对测试的看法,文章内容仅仅代表我个人观点,如有雷同便是共鸣。

  测试工作的目标是质量和效率

  在说测试工作的目标前,先看看软件测试的定义。下面是IEEE对软件测试的定义:

  Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software item.

  从定义可以看出,测试工作是按照需求,发现软件中的缺陷。

  既然是发现软件中的缺陷,那就是说测试工作的首要目标就是质量,使用各种方法保证软件的质量。但是如果为了保证质量,花上100人日的时间来测试一个10人日就开发完成的软件显然是不合理的,所以在保证软件质量的同时也应该保证效率。

  甲方乙方

  在整个软件生命周期里,应该分清甲方和乙方。我们一般的甲方就是客户,或者说是需求方,软件研发是乙方,或者说是需求实现方。那乙方的工作和甲方的工作应该有很明显的区别,甲方定义需求,乙方实现需求。

  可见,需求出现问题并不应该由开发负责,更不应该有测试负责,乙方仅仅算

  那测试显然属于乙方。举个简单的例子,中国电信(甲方)需要一款计费系统,有某软件开发商(乙方)负责开发,那么由中国电信出需求说明书,软件开发商负责需求细化和开发,乙方要做的就是把需求说明书中的需求全部实现,至于这个计费软件的计费策略是否合理,那就是由甲方来决定了,即使错了,也是由甲方承担后果。

  那么,互联行业并没有真正的甲方,由乙方直接面对客户,那么PD这个职位就应该是甲方,需求出了问题也是PD承担后果,如果我们质疑PD的需求并拒绝开发的话,按照上面的例子,软件开发商对中国电信说:你这个需求有问题,我们不开发。好吧,那这个软件开发商离关门不远了。

  也许你要说:“我们是站在整个产品角度思考”。这句话没有错,站在产品角度思考也没有问题,承担甲方工作也没有问题,但是前提是你的乙方工作已经做得足够好了,如果你的乙方工作还一团糟或者还是研发流程中的瓶颈,而你要去做甲方的事情,那我只能说你是“吃地沟油的命,操中南海的心”。

  可能又要说“站在客户角度思考”,站在客户角度思考的前提是有客户的思想,了解客户要什么,而且是了解大部分客户人群普遍要什么,也许你是客户之一,但仅仅是之一,不一定能代表大部分人。所以如果你没经过科学的客户调研就说自己要站在客户角度思考,你Linus大神的一句话来说,你不过是“自慰的猴子”而已。

  解决质量和效率问题的“铜弹”

  先说下高级一点的“银弹”是什么,就是“大招”,绝世武功,一招致命,即使对方不死也能使其半残。那测试里面究竟是否有“银弹”来同时解决质量和效率问题呢,显然没有,如果有“银弹”的话,测试行业已经消失了。

  虽然没有“银弹”,但是“铜弹”还是有的。一套完整的持续交付体系就是“铜弹”,完善从需求评审、软件设计、软件开发、软件测试、软件部署的全过程,使其流程固定、自动化实现、可复用。每个环节都全部打通,建立持续交付的流水线,让机器尽可能代替人工作。

  持续交付流水线可以让从开发到最终部署,甚至是不同环境部署都做到一键式操作,各环节信息自动反馈,包括测试失败、部署失败、配置变更等都可以实时通知到所有相关人员,最终提高发布效率。

  这里肯定会有人质疑说:“我们的系统比较特殊,不适用”,那我想问一下,“你究竟尝试过吗?还只是你拍着脑袋凭空想象的?或者你只是根据自己那些不知深浅的经验而推断的呢?”,另外再说两句,一是“你的系统和业务不是全地球上最特殊的”,二是“如果你不愿尝试是因为害怕失败的话,那就请该行吧”。

  另外,如果你说:“流程改造和完善是SQA的事情”,那我要告诉你:“完善和分析需求还是PD的事情呢,还不是很多人一样在做”,这样看来,SQA和我们工作更贴进,我们更应该去做。

  业务不是救命草,也不是上吊绳

  我们总说“业务测试”、“中间件测试”、“数据库测试”等等,我们自己把测试分为三六九等,并且自己内心深处也认为所谓的“业务测试”是最没技术含量的,那就来说说“业务测试”中的这个“业务”。

  “业务”这个东西其实是比较抽象的,以一个电信计费软件为例,我想所谓的“业务”就是只这个软件是具备哪些计费功能,类似按照时间段计费、按照套餐计费、中间再穿插一些类似费用优惠的功能,这可能就是所谓的“业务”。那“中间件测试”、“数据库测试”就没业务吗?如果这样推理,OracleIBM这些公司就有很多“无业务”的部门了,这推理是不是很可笑?所以这样看来,所谓的“中间件测试”、“数据库测试”也是“业务测试”。

  可见,但凡是个测试都有其业务。那“工具开发”呢?很多人认为“工具开发”是个怪胎,因为有“开发”两个字,那只是我们悲哀的组织架构带来的误区。那“测试工具开发”应该被如何看待,后面我会说到的。

  既然大家都有业务,那谁也不比谁矮一节,但是谁也不比谁的业务更“值钱”,公司层面会重视一些产品,但是并不是重视你的工作,不要做“一人得道,鸡犬升天”的事情,业务是要搞,但是不能过,保证了质量、提高了效率,把“乙方”的工作做到无可改进了,再去做“甲方”,业务不是你的“救命草”,抱住是没用的。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号