这两天,开始系统集成测试,过程有点纠结,我碰到的这些问题,大家也许,曾经遇到过。
归纳一下,主要分为三大问题:
一、开发环境与测试环境
开发环境:oracle client 11g,vs2008 英文(c++),测试环境:oracle client 10g,vs2008中文(web开发)。问题一:oracle 10跟oracle11版本的oci接口,用法不兼容,比如,oracle 11支持 "select * from table",而oracle 10必须指明列名称,"select col1 col2 from table" 。问题二,同样的工程,在中文版本下,始终连不上数据库,最后不得已,在中文环境下,重新建一个工程。
总结:搭建开发环境的时候,一定要保证正确的配置。
二、业务流程
开发的时候,没有写详细的需求文档,也没有经过评审,导致开发出来的功能,跟客户的需要有所差别。这种情况,等到测试阶段,才发现。最终的结果,代码改动较大。
总结:开发早期的需求准备,可以更充分一些,多一些讨论。
三、代码设计
项目规定,用c#作为开发语言,但是oracle 10版本并不支持c#,这样,要决定是使用DLL还是COM来实现。在C#中调用com和dll,从前都没有经验,于是征求了项目经理的意见,采用dll方案。程序的框架设计,也走过弯路,比如从"多线程+回调机制"到后来的“单线程+轮询机制”,它们各有优缺点,第一种方案在性能和实时性方面,有优势,但增加了编程难度,第二种方案代码实现上比较简单,但是并发性不够好,效率比较低。从时间,开发人员技能和项目功能需求方面因素考虑,我们选择了第二种方案。