客户的反馈只是表象,实测才是硬道理

来源:互联网 发布:office word苹果mac版 编辑:程序博客网 时间:2024/05/02 09:57

最近在做一个项目,该项目主要流程如下:


1、客户应用已有的系统向SQL数据库中的交互数据表插入数据


2、读取交互数据表中的数据到项目的软体上


3、项目的软体通过接口连接公司已有的系统上,实现数据的控制


4、将控制的结果回送到交互数据表中


5、客户的系统读取结果


约摸半个多月后,项目软体就做出来了,然后在公司内部进行了测试,之后交付给客户使用。


本来一切都顺利进行的,可是客户那边却由于种种原因无法按要求安装相应的环境,比如SQL2005或以上的版本,客户却用了SQL2000。


没办法,顾客是上帝,客户非要用SQL2000,那就用吧。幸好,前期对数据库设计的时候,没有用SQL2005或以上版本的特性,所以用SQL2000所是没问题的。


可是问题又来了,客户使用项目软体连接SQL2000的时候,却意外崩溃了。于是客户反馈过来,就说软体出问题了。看了他们发过来的EMAIL,仔细一看,大概是两个问题。


问题1:使用WIN7系统连接时,提示无法修改Config档。


问题2:使用XP系统连接时,软体因异常而崩溃。


问题拿到手后,我进行了分析,初步断定问题1产生的原因是WIN7本身的权限管理进行的,后来我自己在WIN7上建了个标准用户和管理员用户进行测试。使用标准用户操作时,问题重现了。之后再用管理员用户操作,问题消失。这样,这个问题也就得到了解决。


可是,后来又一思考,我们只是设计出满足要求的软体,难道WIN7管理权限的问题也是归我们管的吗?我们可以这么想,但客户不会这么想。客户只是知道使用我们的设计软体出问题了,所以第一反应就是软体的问题。之后我们实际测试重现了结果,发现不是我们的问题,而是客户给的用户权限不够。所以,有的问题虽说不是我们本身的问题,但是因为是使用我们的产品产生的,也一样要我们来解决,至少也要能证明不是我们的问题。幸好之后用WIN7有遇到这样的问题,不然就会去纠结是不是程序设计出问题了。


至于第二个问题,就更加纠结了。首先是客户非要用SQL2000的,环境上达不到我们所要求的。现在出了问题,却又要找我们。我们能怎么办?只得找问题了。于是费了很大的劲下了SQL2000(公司网速慢的一踏糊涂,硬是花了4个小时才下完),然后在XP上安装,折腾了很久,发现SQL2000运行的可以。问题无法重现,这会是什么原因?


后来一想,我XP上本来就是装了SQL2008,会不会是因为这个?一检查的时候,发现果然是SQL2000连接到了SQL2008的实例上。这都怪自己,安装SQL2000的时候没有注意。可是这并不能说明什么,因为问题无法重现。于是想着,要不干脆安装一个干净的环境来测试。


于是又是一翻折腾,最后装了个Win2003 server的虚拟机。装完后,立即就安装SQL2000。本想着,这下测试应该可以知道问题了。可是一用软体测试,发现压根找不到SQL2000的数据库。这又是什么原因?果断谷歌,经过一通的查找资料,终于找到了眉目,是因为是从主机去访问虚拟机里的数据库,是属于远程访问。而远程访问是要在SQL2000上开TCP/IP通道的,于是立即在SQL2000上打开,并设了TCP/IP的默认端口1433。可是依然连不上?


这是又是什么原因?抓头!抓头!
继续谷歌,终于在查了N翻文章后(网上的文章很让人蛋疼,基本都是复制粘贴的),终于找到了眉目。说是要打SP3的补丁,可我下的SQL2000是SQL2000SP4版的呀,不是相当于打了补丁吗?纠结了半天,最后还是决定一试。于是毫不犹豫的下载之。无奈的网速,又是近1小时的等待,终于下完了补丁,装了上去。


呃!!怎么还是不行!!Why!Why!Why!


于是又谷歌查找,翻遍文章大海之后,终于捞到了一枚针。说是server2003要装SP4补丁!抓狂!抓狂!没办法,又是近1小时的下载,安装之。然后按这文章所说的,确认一下版本,于是SELECT @@VERSION,一查,版本相达到了,是8.0.2039。之后进行连接,终于OK了。


经过一翻折腾,项目软体连接SQL2000完全OK。于是问客户是不是SQL2000没有打补丁,客户反应不清楚,于是客户要了SP4的补丁安装之。


本想着,这下总算好了吧。可客户装完后,依旧不行!!


怎么还是不行!不行!不行!


想了又想,思了又思,最后想着会不会是数据库用户给的权限不够?于是问了下客户,说是SQL2000数据库的管理员给的用户。而我测试的时候用的是sa用户,于是进一步确定是权限的问题。于是给客户建议换个高点权限的用户,同时自个也立即按想法实际测试,发现真的是权限的问题。当权限不够时,程序就会崩溃。就在我确认是这个原因时,客户那边也给了反馈,提升了权限后,就OK了。


经过一翻折腾,总是解决了问题。可是想着这两个问题,似乎都不是软体的本身,一个是WIN7的权限管理造成的,一个SQL2000的权限管理造成的。不过仔细想来,也有一定的原因是软体设计的缺陷,比如SQL2000权限不够时,应该给予提示,而应该是程序崩溃。这个是源于我自己设计的一个数据库访问类的缺陷,于是作了调整。


从另一角度来看,客户反馈出来的问题,并不一定是问题的本质,而只是一个表象,必须要实际测试之后,才能确认。所以不要被表象蒙了双眼,实测才是硬道理。

原创粉丝点击