• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

华为软件编程规范和范例

发布: 2008-4-23 16:04 | 作者: 不详 | 来源: www.cppblog.com/oosky | 查看: 511次 | 进入软件测试论坛讨论

领测软件测试网


½8-12 :不要一味追求紧凑的代码 
说明:因为紧凑的代码并不代表高效的机器码。 
〔九〕 =====[ 质量保证 ]===== 
¹9-1 :在软件设计过程中构筑软件质量 
¹9-2 :代码质量保证优先原则 
     (1)正确性,指程序要实现设计要求的功能。
     (2)稳定性、安全性,指程序稳定、可靠、安全。
     (3)可测试性,指程序要具有良好的可测试性。
     (4)规范/可读性,指程序书写风格、命名规则等要符合规范。
     (5)全局效率,指软件系统的整体效率。
     (6)局部效率,指某个模块/子模块/函数的本身效率。
     (7)个人表达方式/个人方便性,指个人编程习惯。
¹9-3 :只引用属于自己的存贮空间 
说明:若模块封装的较好,那么一般不会发生非法引用他人的空间。 
¹9-4 :防止引用已经释放的内存空间 
说明:在实际编程过程中,稍不留心就会出现在一个模块中释放了某个内存块(如C语言指针),而另一模块在随后的某个时刻又使用了它。要防止这种情况发生。
¹9-5 :过程/ 函数中分配的内存,在过程/ 函数退出之前要释放 
¹9-6 :过程/ 函数中申请的(为打开文件而使用的)文件句柄,在过程/ 函数退出之前要关闭 
说明:分配的内存不释放以及文件句柄不关闭,是较常见的错误,而且稍不注意就有可能发生。这类错误往往会引起很严重后果,且难以定位。 
示例:下函数在退出之前,没有把分配的内存释放。 
typedef unsigned char BYTE;
int example_fun( BYTE gt_len, BYTE *gt_code )
{
    BYTE *gt_buf;
    gt_buf = (BYTE *) malloc (MAX_GT_LENGTH);
    ...  //program code, include check gt_buf if or not NULL.
    /* global title length error */
    if (gt_len > MAX_GT_LENGTH)
    {
        return GT_LENGTH_ERROR; // 忘了释放gt_buf
    }
    ...  // other program code
}
应改为如下。 
int example_fun( BYTE gt_len, BYTE *gt_code )
{
    BYTE *gt_buf;
    gt_buf = (BYTE * ) malloc ( MAX_GT_LENGTH );
    ...  // program code, include check gt_buf if or not NULL.
    /* global title length error */
    if (gt_len > MAX_GT_LENGTH)
    {
        free( gt_buf  ); // 退出之前释放gt_buf
        return GT_LENGTH_ERROR;  
    }
    ...  // other program code
}
¹9-7 :防止内存操作越界 
说明:内存操作主要是指对数组、指针、内存地址等的操作。内存操作越界是软件系统主要错误之一,后果往往非常严重,所以当我们进行这些操作时一定要仔细小心。 
示例:假设某软件系统最多可由10个用户同时使用,用户号为1-10,那么如下程序存在问题。
#define MAX_USR_NUM 10
unsigned char usr_login_flg[MAX_USR_NUM]= "";
void set_usr_login_flg( unsigned char usr_no )
{
    if (!usr_login_flg[usr_no])
    {
        usr_login_flg[usr_no]= TRUE;
    }
}
当usr_no为10时,将使用usr_login_flg越界。可采用如下方式解决。
void set_usr_login_flg( unsigned char usr_no )
{
    if (!usr_login_flg[usr_no - 1])
    {
        usr_login_flg[usr_no - 1]= TRUE;
    }
}

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网