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

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

华为软件编程规范和范例

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

领测软件测试网


〔七〕 =====[ 可测性 ]===== 
¹7-1 :在同一项目组或产品组内,要有一套统一的为集成测试与系统联调准备的调测开关及相应打印函数,并且要有详细的说明 
说明:本规则是针对项目组或产品组的。 
¹7-2 :在同一项目组或产品组内,调测打印出的信息串的格式要有统一的形式。信息串中至少要有所在模块名(或源文件名)及行号 
说明:统一的调测信息格式便于集成测试。 
¹7-3 :编程的同时要为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给出明确的注释说明。测试代码部分应作为(模块中的)一个子模块,以方便测试代码在模块中的安装与拆卸(通过调测开关) 
说明:为单元测试而准备。 
¹7-4 :在进行集成测试/ 系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细分析并优化测试用例,以提高测试效率 
说明:好的测试用例应尽可能模拟出程序所遇到的边界值、各种复杂环境及一些极端情况等。 
¹7-5 :使用断言来发现软件问题,提高代码可测性 
说明:断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。 
示例:下面是C语言中的一个断言,用宏来设计的。(其中NULL为0L)
#ifdef _EXAM_ASSERT_TEST_  // 若使用断言测试
void exam_assert( char * file_name, unsigned int line_no )
{
    printf( "\n[EXAM]Assert failed: %s, line %u\n", 
            file_name, line_no );
    abort( );
}
#define  EXAM_ASSERT( condition )
    if (condition) // 若条件成立,则无动作
        NULL;
    else  // 否则报告
  &, nbsp;     exam_assert( __FILE__, __LINE__ )  
#else  // 若不使用断言测试
#define EXAM_ASSERT(condition)  NULL 
#endif  /* end of ASSERT */
¹7-6 :用断言来检查程序正常运行时不应发生但在调测时有可能发生的非法情况 
¹7-7 :不能用断言来检查最终产品肯定会出现且必须处理的错误情况 
说明:断言是用来处理不应该发生的错误情况的,对于可能会发生的且必须处理的情况要写防错程序,而不是断言。如某模块收到其它模块或链路上的消息后,要对消息的合理性进行检查,此过程为正常的错误检查,不能用断言来实现。 
¹7-8 :对较复杂的断言加上明确的注释 
说明:为复杂的断言加注释,可澄清断言含义并减少不必要的误用。 
¹7-9 :用断言确认函数的参数 
示例:假设某函数参数中有一个指针,那么使用指针前可对它检查,如下。 
int exam_fun( unsigned char *str )
{
    EXAM_ASSERT( str != NULL );  // 用断言检查“假设指针不为空”这个条件
    ... //other program code
}

延伸阅读

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


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

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