现在的位置: 首页 > 综合 > 正文

也谈软件测试方法

2013年01月17日 ⁄ 综合 ⁄ 共 1396字 ⁄ 字号 评论关闭

今天收工还算早,闲来在网上逛,看到以前的一个同事写的BLOG,感觉自己也有些想法,写在这里以便记录。
也算是想吧现在的思路记录下来吧。
最近公司安排我带一个项目,整体规模在80K,主要是Client端应用程序。公司虽然早就通过了CMM5认证,但在具体项目
操作上却根本不来那一套,现在项目紧急,人力资源不足,项目周期短,居然只有短短三个月时间,人却只有7人完全投入。
公司领导总想拿这套流程来保证质量,就我带的项目情况来看,遗留缺陷却非常之高,殊不知,软件开发不是流水生产线,
完全用流程来控制人的活动,这都是老板的一厢情愿。我认为,人的技能和充足的时间才是保证软件开发质量的关键。
在这种情况下,领导每天开会都拿质量说事,但却没有为质量投入人力,时间。我看这个项目经理也只能随大流了。
无数次反馈人力,时间,答复都再协商,一个月下来还是这个样子。

说了这么多,接下来谈谈再这种情况下,如何保证我们的版本如期交付,而且要保证质量。

刚才说了,80k代码,84天的项目周期,如何交付而且保证质量 ??
我认为只能是采用敏捷开发模式,具体来将是迭代开发。
1 要求每个功能模块都是独立开发,它对系统的依赖以接口的形式定义出来。
  好处是:每个模块都可以独立完成开发,不依赖它人的进度。而且开发完成之后,自己模拟一个接口的实现,立即可以开始
  模块的功能测试。这样每个模块再完成的时候已经是一个功能完整,稳定的模块。
2 Client端涉及大量的UI Interface开发,要求UI写的很薄,完全将业务逻辑从UI中分离。
  UI设计的非常薄的情况下,我们认为它已经很简单,基本不会存在出错的可能。因为具体的业务逻辑都已经剥离出来。
 
3 对逻辑控制部分代码要求采用JUnit进行单元测试覆盖,要求算法逻辑100%覆盖。
 
4 要求每个功能模块在完成之后都能不依赖系统其它模块的情况下完全可以运行,可进行功能测试。
  由于把功能模块对外部的依赖以接口的形式定义,所以它是可测试的。

5 前,后台的数据交互采用模拟后台服务的形式进行测试。
  由于是C/S模式,我负责的又是前台的开发,这样,很多功能都会涉及到前,后台的数据交互。
  而且,前,后台的项目是独立运作,这样,我的项目集成测试就严重依赖后台的开发进度,联调人力等情况。
  对项目的进度根本不可控制。作为Client端所谓的后台交互,无非是获取数据,状态等信息。那么我完全可以将Client端
  对后台返回数据的处理划分为两部分:一部分是将后台原始数据转换城本地对象,然后是针对本地对象进行信息处理。
  这样,让我们写的测试后台完全可以替代真正的后台,而且可以模拟各种后台数据场景,这样在和服务器端进行联调之前,
  我们的系统已经是非常健壮的。
 
上面是我的设想,但是根本不可能在公司实际操作,原因有两点:
1 目前,我们现有的开发人员技术能力参差不齐,如果让大家都理解并且实际操作,困难很大。
2 这里面相对原来的开发流程,多出很多工作量,Unit测试代码,各个模块的功能测试代码,接口虚拟实现对象,模拟的服务器对象。
  这些会多出许多代码量,在目前的人力投入和时间上来将,基本不可行。
3 目前,我们公司的项目经理在流程上已经耗费了全部的精力,无穷的文档,质量要求,对付QA已经不够,根本不能在技术上做过多的主导
  作用,大部分的工作是监控项目的进度。却在真正的质量上投入是非常少的。所以,最后的结果我现在就已经知道了。

抱歉!评论已关闭.