- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件测试技术 主讲人:刘 伟 缺陷模式 缺陷模式是和语言本身相关的,不同的语言有着不同的缺陷模式。 故障模式 漏洞模式 缺陷模式 规则模式 故障模式 此类缺陷是故障,一经产生,会导致系统出错。 内存泄露模式 资源泄漏模式 指针使用错误模式 数组越界模式 非法计算模式 使用未初始化变量模式 死循环结构模式 死锁模式 故障模式 故障模式中给出的故障描述,是程序中可能存在的故障,这些故障一旦被激活,就会使系统发生错误。包括以下几种故障模式: 故障模式 1、内存泄漏的故障模式(Memory Leak Fault, MLF) 定义:设在程序的某处申请了大小为MB的空间,凡在程序结束时MB或者MB的一部分没被释放、多次释放MB或MB的一部分都是内存泄漏故障。 MLF有三种形式: 遗漏故障:是指申请的内存没有被释放。 不匹配故障:是指申请函数和释放函数不匹配。 不相等的释放错误:是指释放的空间和申请的空间大小不一样。 例题 例4-1:申请的内存没有被释放 listrec *add_list_entry(listrec *entry,int value){ listrec *new_entry=(listrec *)malloc(sizeof(listrec)); if(!new_entry) return NULL; if(!entry) return NULL; … …} 例4-2/3:申请函数和释放函数不匹配 str=malloc(10) ; … ; delete(str) ; … str=new(10);... ; free(str);... malloc与free匹配;new与delete匹配 例4-6:申请内存的pointer发生了变化 char *p=malloc(10); ++p; free(p); 例:“=”指针赋值,不能重复删除。 char *str=new char[100]; char *p; str=abc; p=str; delete str; delete p; 文件检索系统中关于内存错误 D0005(D0012、D0013、D0018同): 报错行:delete l_Link-m_node.m_dirname; 原因:l_Link-m_node.m_dirname = (char*) new char(strlen(l_Buf1)+1); D0017: while(l_DirSearch){ l_Link1 = l_DirSearch; l_DirSearch = l_Link1-m_next; if(l_DirSearch == NULL) { l_DirSearch = l_DirSet; //l_DirSet = NULL;} delete l_Link1; } 故障模式 2、数组越界故障的故障模式(Out of Bounds Array Access Fault OBAF) 定义:设某数组定义为Array[min?max],若引用Array[i]且imin或imax都是数组越界故障。 故障模式 (1)对程序中任何出现Array[i]的地方,都要判断i的范围,可能有三种情况: 若i是在数组定义的范围内,则是正确的; 若i是在数组定义的范围外,则是OBAF; 若i是不确定的,则Array[i]是否是OBAF则不确定 例4-10:数组越界 int data[10]; for(i=0; i=10; i++){data[i]=...}; (2)字符串拷贝过程中存在的数组越界故障 。 例(文件检索系统,集成测试): #define MAXPATTERN 3 #define MAXFILELEN 12 char l_Pat[MAXPATTERN+1][MAXFILELEN+1]; …… memset(l_Pat, 0, 20*(MAXFILELEN+1)); (3)在结构类型中,由于结构体中的成员变量是连续存放的,在数组的拷贝过程中,多余的数据会自动的存放在后面所定义的成员变量中,这种情况数组并不产生越界错误。 故障模式 3.使用未初始化变量故障模式(Uninitialized Variable Fault,UVF) 定义:使用未初始化变量故障:存在一个路径,在该路径上使用前面没有被赋初值的变量是使用未初始化变量故障。 例4-13 使用未初始化变量 char c; while(c!=EOF (c=getchar())!=‘\n’) ...; 文件检索系统中使用未初始化变量错误 D0001(D0002同): DirSettingLink *l_Link ; while(l_Link) { g_DirRoot =
您可能关注的文档
- 第五章--心理效应2011.ppt
- 学前儿童的合理膳食.ppt
- 法律常识—禁赌.ppt
- 法律顾问开拓说.ppt
- 法医学发展简史..ppt
- 法制教育第一课课件.ppt
- 常见滥用食品添加剂的速测技术.ppt
- 优质高效焊接及切割技术.ppt
- 第五章有理数复习.ppt
- 帆船运动第五讲.ppt
- DBJ43_T397-2022:现浇混凝土复合板保温系统应用技术规程.pdf
- DBJ43-T367-2020:湖南省居住住宅小区供配电设施建设技术标准.pdf
- DBJ43_T513-2020:湖南省房屋结构综合安全性鉴定标准.pdf
- DBJ_T15-239-2021:蒸压加气混凝土砌块现场检测技术规程.pdf
- DBJ_T15-237-2021:预应力带肋混凝土叠合楼板技术规程.pdf
- DBJ43_T366-2020:湖南省太阳能热水系统工程技术标准.pdf
- DBJ43_T543-2022:再生骨料透水和干硬性混凝土应用技术规程.pdf
- DBJ_T15-228-2022:轨道交通工程地下混凝土结构渗漏水治理技术规范.pdf
- 《动画的喜剧化研究》.docx
- 《我国民事诉讼庭前会议制度完善研究》.docx
文档评论(0)