- 1、本文档共93页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件单元测试方法 工业通讯技术部 张国亮 提纲 序言 一个单元测试示例 测试内容及方法 边界条件 单元测试工具 Mock对象 好的测试品质 在项目中进行测试 序言(1) 要向客户演示系统的基本功能,且临近最终期限时,两个开发者的两种不同的做法: 第一个开发者:每天着急地写代码,写完一个类又写一个类,写完一个方法又接着写两一个方法,有时不得不停下来做一些调整,使得代码能够编译通过。 第二个模块者:写一个模块的时候,会附带写一个简短的测试程序来测试这个方法。并且在未对刚写的方法做出确认(通过测试确认之前的方法和他所期望的结果一致)之前,是不会接着写新代码的。 序言(2) 两种不同的做法带来的两种不同的结果: 第一个开发者:期限的前一天,集成演示时,一点输出都没有;利用调试器跟踪,经过长时间的琢磨,找到并纠正了这个bug,但是,同时又发现了其他好几个bug。结果,筋疲力尽,而且未能及时完成任务。 第二个开发者:期限的前一天,集成代码到整个系统中,并且能够很好的运行;虽然在其中也出现了一个小问题,但是很对就发现了问题所在,并在几分钟之内就解决了这个问题。 序言(3) 不写测试的借口 编写单元测试太花时间了 运行测试的时间太长了 测试代码并不是我的工作 我并不清楚代码的行为,所以也就无从测试 这些代码都能够编译通过 公司请我来是为了写代码,而不是写测试 如果我让测试员或者QA人员没有工作,那么我会觉得很内疚 我的公司并不会让我在真实系统中运行单元测试 单元测试 什么是单元测试 单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。 通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。 执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致 为什么要使用单元测试 单元测试不但会使你的工作完成的更轻松,而且会令你的设计变得更好,甚至大大减少你花在调试上面的时间。 单元测试可以提高底层代码的正确性,从而提高调用它的高层代码的正确性。 使用单元测试这个简单有效的技术就是为了令代码变得更加完美。 目的与范围 目的 为了提高软件开发效率和质量 统一单元测试风格 保证文档与单元 测试编码的一致性 方便开发人员进行单元测试的开发 使单元测试能够有效正常的自动执行 范围 单元测试属于软件模块开发过程中的活动 提纲 序言 一个单元测试示例 测试内容及方法 边界条件 单元测试工具 Mock对象 好的测试品质 在项目中进行测试 一个单元测试(1) 简单的例子: 查找list[]中的最大值:int Largest(int list[], int length); 首份实现代码如下: int Largest(int list[], int length) { int i,max; for(i = 0; i (length – 1); i ++ ) { if(list[i] max) { max=list[i]; } } return max; } 一个单元测试(2) 计划你的测试 给定一个数组[7,8,9],这个方法返回9。这就构成了一个合理的测试。 你能想出其他一些测试么? 如果list中有两个相等的最大值,将会出现什么情况? [7,9,8,9] → 9 如果list中只有一个元素,结果会是怎么样的呢? [1] → 1 如果list所包含的是负数,结果又会怎么样呢? [-9,-8,-7] → -7 一个单元测试(3) 测试一个简单的方法 编写测试代码 TEST(CheckResult, Max_Int) { int list[] = {7,8,9}; CHECK(Largest(List, 3) == 9); } 编译结果如下 一个单元测试(4) 源程序中被测试方法的错误查找与修改 发现max值没初始化 然后进行修改并且设置max的初始数值:max=0 重新编译并运行测试 测试运行结果如下: 一个单元测试(5) 再次进行源文件被测试方法的bug查找与修改 为什么返回的最大值是8,好像程序根本没有考虑list中的最后一个元素似的。 查看源文件,发现for循环结束得早了。 修改:将for循环中i length-1修改成为i length 编译源文件并运行该测试,程序将没有failure输出。 一个单元测试(6) 其他考虑到的测试方法的尝试 存在重复的最大值的情况 [9,7,9,8] 只有一个元素的情况 [1] 全是负值的情况 [-9,-8,-7] 编译源文件并运行修改后的测试,发现重复最大值和只有一个元素的情况,测试都通过了。但是全是负值的情况出现了
您可能关注的文档
- 跨国公司在华撤资原因和影响分析.doc
- 跨国公司转移价格的对策思考.doc
- 趣味英语竞赛初中.ppt
- 跨国并购案例分析.ppt
- 路由器是计算机网络的桥梁.docx
- 踝肱比值血管无损伤检查的临床意义.doc
- 转AE中英文对照.doc
- 跳频扩频通信技术资料整理.doc
- 软件创意设计文档.doc
- 软件加密技术及实现.doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 螺杆空气压缩机排气含油量高原因分析和解决措施.pptx VIP
- GBT51121-2015 风力发电工程施工与验收规范.doc VIP
- 螺杆压缩机排气温度高原因分析.doc VIP
- 部编版(2024)道德与法治一年级下册道德与法治第二单元《我们一起长大》全单元教学课件.pptx
- 合成氨压缩机温度波动原因分析.docx VIP
- 2024年03月云南省特种设备安全检测研究院人员招考聘用编制外工作人员9人笔试历年高频考点(难、易错点荟萃)附带答案详解.docx VIP
- 学堂在线大国航母与舰载机2025秋答案.docx
- 离心式压缩机轴瓦温度波动原因探析及解决措施.pdf VIP
- TCBDA55-2021住宅室内装饰装修工程质量验收标准.pdf VIP
- T/CSPSTC 41-2019钢结构建筑施工测量及监测技术规范.pdf
文档评论(0)