如何在需求不明确的情况下测试

软件生命周期中,需求是整个项目的源头。俗话说良好的开端是成功的一半,但是,不是每个项目都能遵从流程,花太多时间在需求分析上,而把精力投入到代码的编写中。这可能导致什么问题呢?开发和测试对需求理解都不充分,开发出来的功能与实际需求不符,测试要么凭自己的经验一步一步发掘潜藏的功能点,把项目往良性的轨道上引,要么就听从开发的脚步,亦步亦趋。那么测试人员要如何在需求不明确或者文档不全的情况下着手测试才能保证软件的质量呢?

  一、参考同类型的网站:一般情况下,我们测的系统总会有原型可参考,比如我目前测的订票系统,就可以参照携程,主要功能基本一样,细节可能有出入,携程上操作一遍,然后再看看它提供的帮助,再有可以网上搜索资料,参考下行业的基础知识,这都是收集需求的方法,这样子下来也基本对订票系统也就有个认识了,然后与开发经理确认,再和开发一起把功能定下来,该改的改,该修的修,BUG一点不含糊。弱弱的吐槽下,这个项目的开发居然都不知道有需求说明书,虽然写的基本没太大的价值。

  二、根据经验和常识判断:做项目多了就知道,万变不离其宗,系统不一样,思路可以套用,所谓的学以致用,举一反三。我上个项目做的银行测试,我照样可以测现在的订票系统,就在一个字:活。有需求照需求测,没有需求找参照,说个例子吧,订票系统中有个功能是积分,需求上就一句话提到有积分功能,怎么测?难道看到有这个功能就算过了?我后来就参照了淘宝的积分抵扣,下单了积分就被临时冻结了,取消订单又释放出来,但开发在做这个功能的时候也没有跟他们的头沟通,直接是要等支付完成后才扣除积分,这导致一个什么问题呢,可以重复使用积分,如果真上线使用了,说不定会造成不小的经济损失的。类似这样的问题太多太多,你总可以从一些地方获得参照,或者说是灵感,项目测的怎么样,跟测试人员的素养有很大的关系,尤其是在没有规范的流程下。

  三、沟通:毋庸置疑,这太重要了,需求不一定在文档中写出来,但道理上开发肯定知道需求的,但一般不会主动和测试沟通,因此,我们作为测试就要主动和开发人员沟通,不仅可以对系统有更深的了解,还可以对项目进度有把握。

  四、多和同事讨论



最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-26 16:22:10

如何在需求不明确的情况下测试的相关文章

紧急情况下压缩了测试周期应该怎么办?

提问:紧急情况下压缩了测试周期应该怎么办? 回答:本期话题分几个要素点,我将根据命题划分的几个关键词:紧急情况,压缩,测试周期,来一起分析探讨. 项目中难免会碰到很多"紧急情况",如: 1.需求变更 客户是善变的,我们必须伺候好客户,不是么?没有任何理由,他们要变更需求,一般情况下,最为乙方.丙方只有服从. 2.项目外包 很少有人碰到过吧?不过的确存在!项目进行到一半时由于自身团队或者高层决策.成本等方面上的要求,直接将项目外包出去,或者重新让一个项目团队接手. 3.开发设计架构存在明

如何在虚拟环境下测试数据分析?

IT安全的发展是围绕数据,生成.收集.收集.存储和分析数据是安全日志的重要部分,但这些大型数据集给存储和处理资源带来巨大压力. 在专业生产环境中,应该部署着良好的数据收集和分析基础设施,并有足够的资源进行可靠和稳定的设置. 然而,现实情况是,由于预算限制以及对更大灵活性的需求,安全专家通常需要在更小的环境中实施和测试数据分析及处理.幸运的是,即使预算低且时间有限,我们仍然有办法可以测试数据分析.本文中,让我们看看在小环境中有限预算情况下测试数据分析的方法.并且,让我们看看在小型环境有效运行数据分

memcached分布测试(一致性哈希情况下的散列函数选择)

   memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现.memcached的分布算法一般有两种选择: 1.根据hash(key)的结果,模连接数的余数决定存储到哪个节点,也就是hash(key)% sessions.size(),这个算法简单快速,表现良好.然而这个算法有个缺点,就是在memcached节点增加或者删除的时候,原有的缓存数据将大规模失效,命中率大受影响,如果节点数多,缓存数据多,重建缓存的代价太高,因此有了第二个算法. 2.Consistent Has

软件测试 软件测试 在不影响原有需求的情况下如何添加新的需求

问题描述 软件测试 软件测试 在不影响原有需求的情况下如何添加新的需求 软件测试 在不影响原有需求的情况下如何添加新的需求. 软件测试 在不影响原有需求的情况下如何添加新的需求 解决方案 你要做的无非就是回归测试,保证在添加新的功能的时候,不会导致代码退化.http://blog.csdn.net/bluebulesky/article/details/2692664

[收藏整理]linux下测试磁盘性能

参考:http://blog.sina.com.cn/s/blog_63ac8a6c0100g21d.html 1.DD 底层测试:从linux安装盘启动,鼠标和键盘启动后按Ctrl+Alt+F1,进入Sh模式 dd读测试 time dd if=/dev/sd* of=/dev/null bs=64k count=64k dd写测试 time dd if=/dev/zero of=/dev/sd* bs=64K count=64k 注:1)参数为bs=64K count=64k时,测试文件大小为

只有在能保证服务质量的情况下才进行服务的扩张

摘要: 他们准备的文章既讲故事,又向创业者提供可操作的建议,以助力打造优秀的公司.对于很多初创公司而言,如何拓展自己的服务都是一个不小的问题.在将服务拓展到一个新的城市时 他们准备的文章既讲故事,又向创业者提供可操作的建议,以助力打造优秀的公司.对于很多初创公司而言,如何拓展自己的服务都是一个不小的问题.在将服务拓展到一个新的城市时,是重头来过,还是复制模式?Homejoy成功的服务拓展经验或许能带给你一点启发. 两年前,Aaron和Adora Cheung(下图)推出了钟点工服务Homejoy

在什么情况下“100-1=0”?

在什么情况下"100-1=0"? 这不是脑筋急转弯,不要告诉我"在算错的情况下等于零". 这是一个经典的产品质量的等式,源自日本经营之神松下幸之助所曾说过的一句名言:"对于产品质量来说,不是100分就是0分". 其含义在于,在100件产品中,如果有1件不合格,那么产品的质量并不会成为99,而是之前所有的努力都有可能化为泡影,即"100-1=0". 对于一些无伤大雅的消费品,我们通常都不会表现得太过苛刻,"差不多&qu

什么情况下会用EJB?

问题描述 可能是比较老的问题了.我目前的水平还理解,用过EJB的,能不能结合你的项目说说使用EJB后,和不用EJB相比,都带来了哪些好处?在网上查,很多说为了分布式,集群,问题又来了,什么情况下需要分布式呢?Apache+Tomcat也可以做集群啊?(我也没做过,网上看的).知道的来说说吧,好长时间都没弄清楚的问题.. 解决方案 在设计J2EE应用时,最重要的设计决策之一是用不用EJB,EJB常常被理解为J2EE的核心,但这是不正确的说法,其实EJB只是J2EE提供给我们的选择之一.它在某个领域

PHP通过加锁实现并发情况下抢码功能_php实例

需求:抢码功能 要求: 1.特定时间段才开放抢码: 2.每个时间段放开的码是有限的: 3.每个码不允许重复: 实现: 1.在不考虑并发的情况下实现: function get_code($len){ $CHAR_ARR = array('1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','X','Y','Z','W','S','R','T')