问一个系统稳定性的问题

tt919 2009-03-05 09:13:36
问题是这样的,项目前期由于各种原因,写出的代码有很多bug,经过N久测试之后,在我们自己电脑上跑系统基本上还是很稳定了,但是一到客户那里就经常可能有这样那样的问题,尽管捕获了未处理的异常,但弹出自己的异常窗口后系统还是会退出。

网上找了些方法:
1.代码检测工具。 不行,很明显的可能为空引用的地方都找不出来,如果大家有更好的工具也可以推荐。
2.单元测试。 也感觉行不通,因为其一,方法太多,工作量大,其二,很多是跟界面或控件有关的,构造测试环境麻烦。

现在能想到的问题就是一行一行的看代码了,特别是核心代码,但这样感觉也不能完全解决问题,况且还得看人员情况。
请问这种情况下大家都是怎么解决的?请各位提点解决方案呢。
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liumj2001 2009-03-05
  • 打赏
  • 举报
回复
呵呵。有用就好。
tt919 2009-03-05
  • 打赏
  • 举报
回复
这个方案再详细不过了,非常感谢。
liumj2001 2009-03-05
  • 打赏
  • 举报
回复
你要留意最后一条。
liumj2001 2009-03-05
  • 打赏
  • 举报
回复
不是工具的问题。

你们需要一个好项目经理或测试工程师。

首先,最重要的是做好程序员的自测。给你一部门我在做项目管理时写的规定.

以下是自测项目
测试项目
1. 必添数据必须在保存前做是否有无检查.
2. 可选添数据必须做任意可为空检查。
3. 所有数据必须做长度及格试检查。
4. 所有数字类数据必须做是否为0检查.
5. 是否可正常添加,删除,修改查询报表。
6. 是否所有关联字段都有添写检查和约束。
7. 图标是否和项目要求统一。
8. 在审核时自动把当前时间写入数据库中的审核时间中(格式xxxx-xx-xx xx:xx:xx)。当前使用者姓名(格式 真名(登陆名))写入到审核人中。
9. 在单据无明细的时,不允许审核。
10. 在单据无明细时,不允许明细修改。
11. 在改单时不允许同时改行。
12. 在数据库无数据时,报表和模块,显示内容,为空不应报错。
13. 在数据库无数据时。不应可添加修改删除明细。
14. 在数据库无数据时。应可查寻。
15. 审核通过后。应不可多次审核,审核按钮必须灰化。
16. 审核通过后。应不可再添加修改删除明细,应不可再修改删除主单。
17. 在删除主单据时应同时删除明细单据。
18. 在做取消,保存,刷新时应把当前记录指针回返到原用户操作记录指针。
19. 在做编辑明细.主单完成时应把当前记录指针回返到当前用户操作记录指针。
20. 在模块打开时只罗列当前财务期间数据,应以时间降序排列数据。把最接近于当前时间的数据提前。
21. 在添加新的明细,主单时所有需要填写时间的控件均默认为当前时间。
22. 在未进入编辑状态的情况下,取消和保存按扭应不可用。
23. 不允许在表格中直接编辑数据。
24. 查询范围为所有数据。
25. 查询后第一次点击明细应能转到相应主单。
26. 查询后双击单据在单据没有审核的情况下,可进行修改审核作废。不在当前财务期间时应不能移动记录。
27. 未审核不能作废
28. 向上移动记录时应把小于当前记录时间的记录列出。
29. 主单号如果重复则自动加一,保存时必须重新检测。
30. 新单时财务期间默认为系统时间所在的财务期间。
31. 财务期间已结帐后不允许审核所在财务期间的单据。
32. 当编辑完成非当前财务期间单据数据时,做保存取消审核作废改单操作应返回当前单据,新单,刷新后回到当前财务期间的首记录。
33. 在以结帐的财务期间内的数据,不允许作废。
34. 已发生出库业务的入库单不允许修改。
编码
所有变量控件明名都必须按照《匈牙利命名法》变量名=属性+类型+对象描述
所有FROM都以变量名=对象描述+类型 进行描述。
补充.
1. 当某一功能实现代码在项目中使用超过三次(含三次)。必须编写成函数。其作用域根据使用范围而定.
2. 当某一模块功能实现代码在整体或其它项目中使用超过三次(含三次)必须(在经项目负责人认同后)编写成类。
3. 所有SELECT CASE中和控件数组的index使用时必须加注释用以功能说明。
4. 所有类及函数在定义前必须加注注释用以功能说明,函数功能及参数做用
5. 所有IF和DO,TRY嵌套必须缩进。
6. 在向项目中添加新的OCX或ACTIVEX DLL时或使用非系统API时必须要向项目负责人事先声明,并在经过同意后,添加。
7. 在向项目添加新的数据表或修改字段视图、存储过程、备份机制等所有服务器内容之前必须向项目负责人声明,在经过同意后,进行相应操作。
8. 所有代码不允许加入TRY错误处理,在最终测试后由测试人员在代码加入异常处理语句。
tt919 2009-03-05
  • 打赏
  • 举报
回复
呵呵,肯定不是私活。谢谢各位的回复,看得只有review了。
贫僧又回来了 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 tt919 的帖子:]
问题是这样的,项目前期由于各种原因,写出的代码有很多bug,经过N久测试之后,在我们自己电脑上跑系统基本上还是很稳定了,但是一到客户那里就经常可能有这样那样的问题,尽管捕获了未处理的异常,但弹出自己的异常窗口后系统还是会退出。

网上找了些方法:
1.代码检测工具。 不行,很明显的可能为空引用的地方都找不出来,如果大家有更好的工具也可以推荐。
2.单元测试。 也感觉行不通,因为其一,方法太多,工作量大,…
[/Quote]
估计自己接的私活
chufuya 2009-03-05
  • 打赏
  • 举报
回复
先给你的组员上堂代码规约之类的课,统一写法,把容易出错的地方罗列出来,然后各自回去改自己的代码,最后抽样review,bug率还是很高的话重复此动作
  • 打赏
  • 举报
回复
看来你们team里的程序员的素质实在有问题,写出来的代码质量太差了,还都不是业务逻辑上的bug,竟然是最基本的一些低级的程序bug,难以想象客户会相信你们~~~
  • 打赏
  • 举报
回复
做代码review是比较好的方法了,特别像这些“未将对象引用到实例”这种错误,都是因为程序员写程序没好习惯,不喜欢去判断从外界或者从数据库去到的数据的null值导致的,单凭测试这是测不出来的,因为只有确实那个值为null 的时候才会发生,但做代码review就比较容易发现,找你的team里几个核心人员,专门找几天时间,大家坐在办公室里,投影仪下,一段一段的看。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧