如何预防软件测试缺陷,结合自己的经验,说一些自己的观点:
首先,我认为最重要的是,根据需求开发一个Demo,让测试人员尤其是用户来确认,因为很多用户不会提出需求,但是等你软件开发方做好了,用户根据你目前所做的软件他们就会提出新需求了,在这方面我深有体会。所以有问题,有不明白的地方让用户早提,否则到最后大家都很被动。
第二:重点评审需求中不明确的功能模块和存在分歧的模块,对于不明白的地方一定要弄懂,因为需求是软件开发的源头。
第三:对于一些重点模块和用户业务常用的模块,要重点评审,比如说我以前做无线POS机的系统,“销售”这个功能当然是重重之重了。
第四:做好单元测试,目前国内很多软件企业根本没有一个单元测试的标准,我见过一家小公司,程序员居然极不负责的书:这个功能可能有问题,让测试人员以后去发现吧。有这样的心态做出的软件按怎么可能没有BUG。
你看看SAP的研发精要中人家是怎么做的:①自我测试,要求开发人员在完成自已负责的模块后,马上进行测试,消除模块内部的错误;②相互测试,要求开发人员之间测试对方的模块,由于不同开发人员的思维、开发方式的不同,对方会很容易找到一些自已很难发现的问题;③代码检查,通常是由资深开发人员及开发经理来进行,从模块功能、性能、可用性、编码规范、模块集成性等角度进行全面检查。这一工作会在系统实现的各个阶段定期进行。SAP还提供了如CATT等辅助测试工具。
第五:测试人员最好能做到交叉测试,因为测试人员毕竟考虑问题产生思维定势,能做到交叉测试,最好了。
第六:要尽可能模拟用户的真实使用环境,进行测试。
第七:在测试阶段要弄到用户的真实数据进行测试,因为有一些Bug,只有用用户的真实数据才能测试出来,测试人员自己造一些数据是测试不出来的。这一点我在测试欧莱雅系统的时候深有体会。
第八:要做好各个阶段的评审,比如代码评审,设计评审,测试用例评审,最后发布产品阶段的评审。因为评审是预防软件缺陷的一个重要的手段了。