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

写稳定性测试程序的一些经验

2018年01月10日 ⁄ 综合 ⁄ 共 924字 ⁄ 字号 评论关闭
写稳定性测试程序是一个很繁琐的工程。程序要经得起摧残,要经得起岁月。
下面是经过风吹雨打的经验。
1.错误信息要规范
不能打印一串数据,或者return -1,或者打印“……失败”。要一看到错误信息就能明确的知道哪里出错了。
例如:
 printf("打开GPRS设备失败!\n");    没有指出哪个阶段出错。
return -1;    -1只是给了我们一个错误的信息,比如return xxxx,那么前两位表示哪种产品,或者寄存器,后两位表示运行的哪个阶段出错。
如果可以的话,最好建立一个错误规范的库。
2.打印信息
在运行中,能不打印信息最好就不要打印,特别是测试串口的时候。(没信息表示运行正常)
不方便打印的,可以写入一个出错信息文本中。
例如:
printf("Get GPS date timeout!\n");    return 一个错误代码就行了。
3.修改注释
修改一定要加注释,谁,什么时间。不管是一个人,还是团队合作,对于代码,人的记忆力是不可靠的。
不加注释,会造成很大的混乱。不好恢复文件,也容易增加新的问题。
最好加个文档,标注修改了哪些文件。
例如:
#include <sys/ioctl.h>        //add by william in 2013/04/17
4.版本控制
一个是测试版本,一个是稳定版本,一定要有一个版本号,特别是要去机子上测试的。
5.开关不能太频繁
对于节点和文件的打开和关闭不能太频繁。
正确的做法是,打开一次,操作或者不操作,程序或者进程关闭的时候,在close。
例如:
system("du -sh /mnt/disk2 > /tmp/sd_volume.txt");    这个调用一次就要打开关闭文件,一段时间一定会出错
ret = system("du -sh /mnt/disk2 | grep '1.0K'");    这个当时就判断了
6.出错处理
a.尽可能的简化操作
b.多打印信息
c.一个一个排除法(范围由大到小,由外到内)
7.计数与sleep的区别
特别是线程多的时候,计数就一直在运行,sleep就进程切换。
8.buf缓存问题
要注意及时刷新tcflush管道,清空buf。
9.标志位
设置标志位,要考虑是全局还是某个文件,还是某个函数就可以了。
作用于哪个范围就定义于哪个范围

抱歉!评论已关闭.