软件测试精要.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第6章 检查代码 内存管理 常见的内存错误 忘记了释放内存,造成内存泄露。 动态内存的申请与释放必须配对,程序中malloc 与free 的使用次数一定要相同,否则肯定有错误。 释放了内存却继续使用它。 程序中的对象调用关系过于复杂,实在难以搞清楚某个对象究竟是否已经释放了内存,此时应该重新设计数据结构,从根本上解决对象管理的混乱局面。 函数的return 语句写错了,注意不要返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。 使用free 或delete 释放了内存后,没有将指针设置为NULL。导致产生“野指针”。 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。 指针 ≠ 数组 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——修改内容 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——内容复制与比较 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——计算内存容量 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——指针参数是如何传递内存的? * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——指针参数是如何传递内存的? * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——指针参数是如何传递内存的? * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——指针参数是如何传递内存的? * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——指针参数是如何传递内存的? * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——free 和delete 把指针怎么啦? * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——动态内存会被自动释放吗? 指针消亡了,并不表示它所指的内存会被自动释放——内存泄露 内存被释放了,并不表示指针会消亡或者成了NULL 指针——野指针 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——有了malloc/free 为什么还要new/delete ? malloc 与free 是C++/C 语言的标准库函数 malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数, 光用maloc/free 无法满足动态对象的要求。 new/delete 是C++的运算符 运算符new能完成动态内存分配和初始化工作;运算符delete能完成清理与释放内存工作 如果用 free 释放“new 创建的动态对象”,那么该对象因无法执行析构函数而可能导致程序出错。 如果用delete 释放“malloc 申请的动态内存”,理论上讲程序不会出错,但是该程序的可读性很差 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——有了malloc/free 为什么还要new/delete ? * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比——malloc/free 的使用要点 void * malloc(size_t size);用 malloc 申请一块长度为length 的整数类型的内存 int *p = (int *) malloc(sizeof(int) * length); malloc 返回值的类型是void *,所以在调用malloc 时要显式地进行类型转换,将void * 转换成所需要的指针类型。 malloc 函数本身并不识别要申请的内存是什么类型,它只关心内存的总字节数,在 malloc 的“()”中使用sizeof 运算符是良好的风格 void free( void * memblock ); 如果p 是NULL 指针,那么free 对p 无论操作多少

软件测试精要,软件测试精要.ppt相关推荐

  1. 软件测试用例分享ppt,软件测试技巧与用例编写ppt课件.ppt

    <软件测试技巧与用例编写ppt课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<软件测试技巧与用例编写ppt课件.ppt>文档请在天天文库搜索 ...

  2. (转)软件测试的分类软件测试生命周期

    软件测试的分类&软件测试生命周期 软件测试的分类: 按测试执行阶段:单元测试.集成测试.系统测试.验收测试.(正式验收测试,Alpha 测试-内侧,Beta 测试-公测) 按测试技术分类:黑盒 ...

  3. 南柯服务器压力,性能测试的数据解释及分析 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    顾名思义,测试服务(服务,服务,其他网络应用服务,本地服务)的性能如何?如何衡量性能?最表面的无非就是看能支撑多少个用户同时使用该服务.且关注用户使用过程中的用户体验. U.^*A+Mb6{*z@0T ...

  4. 测试工程师在软件测试阶段依据,北京软件测试工程师建立软件测试管理与评判体系...

    北京软件测试工程师聂会敬,软件测试过程模型或软件测试生命周期模型为我们提供了软件测试的流程和方法,为测试过程管理提供了依据.由于测试过程管理牵涉的范围非常广泛,包括过程定义.人力资源管理.风险管理等, ...

  5. 软件测试 | 期末复习——软件测试综述

    [软件缺陷概述] 1 软件缺陷是什么 1.1 软件出错机理 软件出错机理可描述为: (1)软件错误(error) 是指软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生. (2)软件 ...

  6. 软件测试bug日志信息,软件测试bug收集策略 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    51Testing软件测试网$Bu6gaT_ Error = 0 的程序是不存在的,怎样收集和处理程序中的错误?怎样更好地利用错误信息的收集和反馈来协助程序的调试?怎样让产品发布后,用户能够反馈出更有 ...

  7. 软件测试影响与分析,软件测试效率影响因素分析 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    方法是影响测试效率的主要因素之一.此外,人为因素.软件类型.缺陷数量.测试充分度等都会对测试效率产生影响.下面对这些因素作一个简要分析.51Testing软件测试网@&WMh,K#qdoq$~ ...

  8. 视频教程-软件测试入门视频教程-软件测试

    软件测试入门视频教程 河北师大软件学院测试教室主任.项目基地测试经理;尚大学.金牌讲师.擅长技术: 项目模块化流程设计.软件测试流程设计及优化.项目管理平台的整合与应用.功能性自动化测试工具.性能测试 ...

  9. 杂项-职位-软件测试工程师:软件测试工程师

    ylbtech-杂项-职位-软件测试工程师:软件测试工程师 软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试 ...

  10. 【软件测试】什么软件测试,软件测试和研发的区别

    目录 一.软件测试 二.软件测试与研发的区别 1,软件测试与调试的区别 2,难易程度 三.第一个测试 一.软件测试 验证软件是否满足用户的需求(不是以软件测试人员的主观意愿去判断软件质量的,它是有标准 ...

最新文章

  1. linux进程服务,Linux服务及进程
  2. 如何使用eclipse打开已有工程
  3. wxWidgets:wxRichTextEvent类用法
  4. mybatis里的日志动态代理
  5. 【地理信息系统GIS】教案(七章全)第一章:地理信息系统概述
  6. 电脑手写板_点到之处妙笔生花,实用平板电脑手写电容笔推荐
  7. node ajax validator,node/express 4:在ajax post上使用express-validator显示错误
  8. 从2018百度前端技术学院看代码究竟应该怎么写(2)
  9. Linux 命令(3)—— sed 命令
  10. 我的十年创作之路(三)——书稿创作经验谈
  11. php 回调cache 方案,基于PHP的一种Cache回调与自动触发技术
  12. c语言程序设计一至六章测验,c语言程序设计1-6章.ppt
  13. c++实现八大排序算法
  14. 2022研究生电子设计竞赛总结(东北赛区一等奖、国家二等奖)
  15. 如何在新系统下重玩老游戏
  16. 【详解】P问题、NP问题和NPC问题详解(千禧年问题之首)
  17. 《Python知识手册》V2.1版,高清PDF免费获取
  18. Java集合--------16
  19. Java //PP2.14 按照以下要求修改程序Snowman: ·在其身上添加两个红色按钮。·将雪人的表情由笑脸变成皱眉。·把太阳移动到图片的右上角。·在图片左上角显示你的名字。。。
  20. 街头篮球服务器未响应,我的生涯我做主 《街头篮球》生涯联赛FAQ

热门文章

  1. java去除网页中的广告和导航等信息_**css+html纯css怎样去除导航子菜单中的默认背景?**...
  2. mysql language sql immutable_sql - PostgreSQL是否支持“不区分重音”排序规则?
  3. mysql多实例my.cnf_mysql多实例,my.cnf 4G conf配置安装配置
  4. python 窗体k线图_在GUI窗口中绘制一个茅台股票K线图
  5. mybatis中的mapper代理的应用
  6. 使用html的a标签,无法转跳到servlet页面中的解决办法,适用于servlet的初学者,不与框架相兼容
  7. 坦克大战python_基于Python的坦克大战小游戏
  8. python difflib 编辑距离_LeetCode--072--编辑距离(python)
  9. 电脑用电量_诡异!北山一空置房子用电量噌噌上涨,工作人员打开门一看……_媒体_澎湃新闻...
  10. JS中使用MD5进行字符串加密