单元八:元件软件测试 报告人:谢兆贤 2015/9/X.

Slides:



Advertisements
Similar presentations
办公室保健指南. 减少辐射篇 ❤显示器散发出的辐射多数不是来自它的正面,而是侧面和后面。因此,不要 把自己显示器的后面对着同事的后脑或者身体的侧面。 ❤常喝绿茶。茶叶中含有的茶多酚等活性物质,有助吸收放射性物质。 ❤尽量使用液晶显示器。
Advertisements

魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
一、老师申请题目,以下指导老 师操作。 1. 登录教务系统 web 端. 2. 点击 “ 毕业设计 ” 工具栏下拉菜单中的 “ 论文 _ 教师申请题目 ”
一、真愛密碼 二、尋求真愛 三、有自尊的愛. 。如果雙方對愛情產生 質疑、困惑時,則表示 彼此之間的愛情關係仍 有 待加強或釐清,千萬別 急著為自己的人生大事 下決定。 我是一個 16 歲的未婚媽媽,發現自 己懷孕時,已經五個月大了,我知 道自己沒能力照顧孩子,在驚訝之 於,大人們只好坦然接受,幫我找.
大地遊戲王 課程實錄.
会计学Ⅰ 上海财经大学会计学院 谢少敏.
加強水銀體溫計稽查管制及回收 回收作業須知及緊急應變措施
硕士论文开题报告 煤炭企业物流信息系统的 研究与设计 指导老师: 学生姓名: 学 号:
第4章 分錄及日記簿 4-1 借貸法則 4-2 日記簿的格式及記錄方法 4-3 分錄的意義及記錄方法 4-4 常見分錄題型分析
34 府学胡同的文天祥祠,相传是南宋民族英雄文天祥当年遭囚禁和就义的地方,1376年明洪武九年建祠 。
我的青春檔案.
说网络技术专业 江苏联合职业技术学院徐州财经分院 王 磊.
高一年级过渡性学习 活动汇报 高一年级组 教科研室 汉滨高中.
励步英语授权流程.
第十三屆 Step.1 我們的目標 Step.2 我們的角色 Step.4 權利與義務 義務 權利 年繳會費五百元整
單元名稱: 愛的十字路口.
散文選及習作 [墨池記] 曾鞏 國二甲 S 洪國勛 指導教授:胡翰平 老師.
主讲人:王燕超 时间:2013年12月11日 地点:310 (报告厅)
高考文言文的整体阅读.
基于“贪吃蛇”游戏的C#大案例剖析 邓锐.
102學年度 第1學期 第十二屆 學生自治會期初大會.
先進觀念 • 輕鬆掌握 商周數位學院 《當圓形遇上三角形》 建議最佳閱讀版本:powerpoint 2000.
财务管理.
第八章 网络课程的设计与开发.
感知学习 ——可视化学习平台.
大学生就业指导 第二讲 求职信息收集和自荐材料的准备.
对实验教学工作的认识与思考 西北工业大学 万小朋 2014年11月.
植物保护 课程整体设计 汇报 申报省级精品资源共享课建设 植物保护课程组.
2011年全国中等职业学校医药卫生类专业 “创新杯”教师说课比赛
在线考试系统 答辩人: 朱允昌、朱碧云、张海燕 汇报时间: 指导老师: 任艳、徐怡 软件应用与开发类
迈出青春第一步 初二(4)班 主题班会.
政府扶持资金通览 技术改造篇.
互联网时代班主任的挑战 万玮 2014年9月20日.
2048 第14組 謝子健 4a 陳啟霖 4a 畢順傑 4a
初级财务 会计学 王永梅.
認識資源班.
第八章 编码和测试 编码概述 编码语言与编码工具 编码示例 测试的基本概念 黑盒测试和白盒测试 测试用例设计 多模块程序的测试策略
本科生医保资料的提交.
網路點名系統 致遠管理學院網路通訊學系 張逸中 2007/6/22.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
.NET 簡介.
.NET 簡介.
鄉村尋根-農具篇.
統計圖表的製作.
第一章 Visual Studio、SQL Server介紹與開發環境
ASP.NET 90分钟入门 第二课 王 翔.
第 13 章 體驗Web Service.
疾病预防控制绩效考核管理软件 开发思路 & 使用说明
資料結構與C++程式設計進階班 課程大綱 講師:洪安.
《结构力学认知实验》(授课形式)的上课时间改为: 5月5日(周二)晚上18:00~19:30和19:30~21:00,
《结构力学认知实验》(授课形式)的上课时间改为: 5月7日(周四)晚上18:30~20:00和20:00~21:30,
健康體育網路護照操作 STEP1 於教育部體適能網站進入「健康體育網路護照」.
第5章 其他数据库对象.
兒少保護通報處理流程介紹 臺中市家庭暴力及性侵害防治中心 陳秀婷/張美慧 社工督導員 2012/10/19.
第1章 ASP.NET基础.
畢業資格審查系統 操作步驟說明.
狀態 愛 擁有 個別差異 平均準則 主觀意欲 非 物質 生活 客觀標準 物質生活. 狀態 愛 擁有 個別差異 平均準則 主觀意欲 非 物質 生活 客觀標準 物質生活.
新制退休實務計算說明- 現職人員退休範例說明
中国农业科学院博士后学术论坛 博士后基金申请的经验及体会 中国农业科学院生物技术研究所 秦 华 博士
“修身成材” 班级干部培训班 黑龙江大学党委学工部.
99-2如何撰寫求職履歷表和自傳 國立宜蘭大學 楊淳皓老師.
106 學年度新生入學說明會 國立臺灣海洋大學 教務處簡介
批次請(休)假單 功能路徑:[請假作業專區]→[批次請(休)假單] 功能說明:提供使用者線上申請/維護 多天、不連續請(休)假
學士學位畢業論文說明 逢 學 大 甲 土 理 管 地 2009/10/05.
高雄市97年度國民小學閱讀計畫創新教學-教案達人創新教學方案
第七章 软件测试 Software Testing
有理数的乘方(二).
104 四技二專甄選入學 簡章解析 輔導室 何乙娟.
7 年份 黃雅婷 個人 全端開發人員 任務聲明 在紐約居住 專長 簡歷 軟體 學歷 遠端專案 資料庫 前端 後端 電子郵件: Skype
7 年 康霓 个人 完整堆栈开发人员 使命宣言 居住地: 纽约(自 2015 年起) 专长 个人简介 软件 教育背景 远程项目 数据库 前端
Presentation transcript:

单元八:元件软件测试 报告人:谢兆贤 2015/9/X

纲要 单元测试介绍 单元测试的内容 单元测试的环境 单元测试的实施步骤 单元测试结论 单元测试范例 课后练习 参考资料

单元测试是最早期的测试,保证该单元的功能与设计文件中的描述一致。 单元测试介绍 单元测试是最早期的测试,保证该单元的功能与设计文件中的描述一致。 对软件的可分离的、独立的、最小的功能部分进行测试。 将类别中的方法视为细小的个体,并且针对这些个体做测试。

单元测试是一种设计,通常视为附属物编码步骤。 单元测试介绍 单元测试是一种设计,通常视为附属物编码步骤。 单元测试除了可以检测我们程序代码的质量,同时是一张安全网,在整个开发过程当中当我们对程序代码作任何新增或变动时保护我们的程序代码不至于受到破坏。 单元测试用来提升开发速度及质量。

所谓的单元指的是: 单元测试介绍 软件里面最小的、并且可以独立执行编码的单位。 采用流程语言程序设计软件,而单元可有一个或多个接近函数组成。 采用面向对象语言设计软件,而单元可有一个或多个类别跟方法组成。

单元测试都是有各部分的程序设计师完成,所以必须订立一套统一标准,维护测试质量。 单元测试介绍 单元测试都是有各部分的程序设计师完成,所以必须订立一套统一标准,维护测试质量。 注意的项目就有: 列出单元测试过程、每项内容和判断准则 所有参考文件与实例 安排的测试时间与目标 列出测试的方法种类 重复测试结果是否相同…等

單元測試的內容 單元測試內容

单元测试针对以下五个内容去进行检查: 單元測試的內容 模块界面(interface) 主要是为了检查输入与输出的数据是否正确。 区域数据结构(local data structures) 检查区域数据结构是否能保持完整性。 边界测试(boundary conditions) 检查临界数据是否正确处理 模块独立执行路径(independent paths) 检查由于计算错误、判定错误、控制流错误导致产生的程序错误。 错误处理测试(error-handling paths) 检查内部错误处理设施是否有用。

单元测试的环境 单元测试的环境构成

对于每一组输入,都应该会有预期的正常结果。 如果模块不是独立的程序,就会需要辅助测试模块。有两种: 单元测试的环境 对于每一组输入,都应该会有预期的正常结果。 如果模块不是独立的程序,就会需要辅助测试模块。有两种: 驱动模块(Driver):所测模块的主程序。 残根模块(Stub):用来代替所测模块呼叫的子模块。

为了使测试方法化和流程化,所以我们制定了四个实施步骤: 单元测试的实施步骤 为了使测试方法化和流程化,所以我们制定了四个实施步骤: 制定测试计划:测试计划由单元开发人员依据具体现况去设计和制定。 测试计划评审:由测试人员进行,开发人员配合对测试计划进行评改与修改,以完成最终的测试计划。 测试计划的执行:由测试操作人员按照制定的测试计划流程化的进行,并且及时回馈。 测试结果分析与提交报告:由测试人员与开发人员共同对结果去进行分析、归纳,在提交测试文件报告。

單元測試的實施步驟 單元測試管理流程 測試計畫 測試設計 測試執行 測試紀錄 分析 缺陷追蹤 完畢 測試總結

同时软件的弹性也可以允许客户随时变更他们的需求,而不至于因新功能的修改或新增而导致程序的不稳定甚至破坏。因此可以提供客户更好的服务及信赖度。 单元测试结论 单元测试不是只有测试,它同时提供了一个安全观点给程序设计师设计,更进一步提供程序设计师信心。增加软件的弹性,可以让项目团队随时重整以便让程序变的更干净。 同时软件的弹性也可以允许客户随时变更他们的需求,而不至于因新功能的修改或新增而导致程序的不稳定甚至破坏。因此可以提供客户更好的服务及信赖度。

单元测试范例 范例 Step 1 显示 [建立单元测试] 对话框。以鼠标右键单击包含方法的程序代码档,然后单击 [建立单元测试],该对话框就会出现。单元测试会针对您在对话框的[类型]清单中选取的所有方法产生。 下图显示,此范例将针对 Credit 和 Debit 方法产生单元测试。

單元測試範例 範例

单元测试范例 范例 Step 2 产生单元测试之后,会建立程序代码档并且在您的方案总管中显示变更。 下图显示建立单元测试的结果。

单元测试范例 范例 Step 3 产生单元测试之后,会建立程序代码档并且在您的方案总管中显示变更。 下图显示建立单元测试的结果。

单元测试范例 范例 一般流程说明 在[建立单元测试] 对话框中选取的每一个方法会建立个别的单元测试。此范例针对 Credit和Debit方法产生单元测试 每一个产生的单元测试都有空的变量和占位符 Assert 陈述式 要让测试有意义,必须初始化变数并以适当的Assert陈述式取代占位符。此范例Credit 单元测试会保留产生时的原状,Debit 测试方法中的变量则会初始化,Assert 语句也会加以取代 初次产生单元测试时,方案会建立测试专案

单元测试范例 范例 一般流程说明 测试项目会针对您要测试的每一个类别建立个别的单元测试文件。此范例要测试的这两个方法属于同一类别。因此,只会有一个单元测试文件 BankAccountTest.cs。 执行测试后,结果会出现在 [测试结果] 窗口。

建立单元测试分成两个阶段 为单元测试产生基本架构 单元测试范例 建立单元测试 单元测试范例 建立单元测试 建立单元测试分成两个阶段 第一阶段是产生单元测试文件,其中包含测试的程序代码中每一个方法的测试方法基本架构版本。每一个基本架构测试方法,都是使用空变量和预留位置Assert陈述式所产生的 第二阶段是初始化变数,并以适当的语句取代占位符 Assert 语句 为单元测试产生基本架构 使用[建立单元测试]对话方块针对您要测试的程序代码中任何或所有方法产生单元测试

若要为单元测试产生基本架构 单元测试范例 建立单元测试 在 [Visual Studio 程序代码编辑器] 窗口中开启您要测试的程序代码 单元测试范例 建立单元测试 若要为单元测试产生基本架构 在 [Visual Studio 程序代码编辑器] 窗口中开启您要测试的程序代码 (仅适用 ASP.NET 服务) 如果您要测试 ASP.NET Web 服务,务必确定项目包含 .aspx 网页。 如果您在未包含 .aspx 网页的专案中为 Web 服务建立单元测试,在尝试执行测试时将会收到错误。 如需详细信息,请参阅 ASP.NET Web 服务的单元测试 以鼠标右键单击要测试的命名空间、类别或方法,然后单击 [建立单元测试] 在 [建立单元测试] 对话框中,选取要加入至单元测试文件之所有方法的复选框

若要为单元测试产生基本架构 单元测试范例 建立单元测试 单元测试范例 建立单元测试 若要为单元测试产生基本架构 (选择性) 单击 [设定],变更您要建立之单元测试的默认设定。 这些是 Visual Studio 设定,并且会套用至您建立的任何单元测试,直到您再次变更设定为止 命名设定:这些选项可让您在产生单元测试时,自定义测试档案、测试类别和测试方法的命名方式 预设将所有测试结果标示为结果不明:选取此复选框为每一个测试方法提供 Assert.Inconclusive() 语句做为占位符 Assert。 清除此复选框则会消除占位符 Assert 启用文件批注:选取此复选框为每一个测试方法提供占位符批注。 清除此复选框则会消除占位符批注

若要为单元测试产生基本架构 单元测试范例 建立单元测试 单元测试范例 建立单元测试 若要为单元测试产生基本架构 允许 InternalsVisibleTo 属性:选取此复选框可将标记为 Friend 或 Internal 的方法视为公用方法 (建议使用)。 清除此复选框则会使用私用存取子测试这些方法。 如需私用存取子的详细信息,请参阅 Private、Internal 和 Friend 方法的单元测试 (选择性) 若要针对组件中没有源代码的方法加入测试,请单击 [加入组件]。 如需详细信息,请参阅 HOW TO:在不使用源代码的情况下建立单元测试

若要为单元测试产生基本架构 单元测试范例 建立单元测试 在 [输出专案] 方块中,执行下列其中一项: 单元测试范例 建立单元测试 若要为单元测试产生基本架构 在 [输出专案] 方块中,执行下列其中一项: 若要建立新的测试项目,请选取新项目的语言,然后单击 [确定]。 [新增测试项目] 对话框随即出现。 您可以为项目命名,或是接受预设名称,然后单击 [建立] 若要将 [建立单元测试] 对话框中选取的方法附加到现有测试项目中的单元测试文件,请选取下拉式清单中的项目,然后单击 [确定]

若要将验证加入至单元测试 单元测试范例 将验证加入至单元测试 开启单元测试档案,然后找出您要将其变量初始化的单元测试 单元测试范例 将验证加入至单元测试 若要将验证加入至单元测试 开启单元测试档案,然后找出您要将其变量初始化的单元测试 找出单元测试中的变量指派。在新产生的测试中,变量指派会以 "TODO" 语句标示出来,提醒您自定义指派。 例如,以下即为需要编辑的典型指派: string target.owner = null; // TODO: Initialize to an appropriate value 指派适当的值给每个变数。 如需指派适当变量的范例,请参阅逐步解说:建立和执行单元测试中的<执行和编辑单元测试>程序 找出并编辑单元测试中的 Assert 语句。 如需可用的 Assert 语句的详细信息,请参阅使用 Assert 类别

若要将验证加入至单元测试 单元测试范例 将验证加入至单元测试 单元测试范例 将验证加入至单元测试 若要将验证加入至单元测试 (选择性) 使用 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间的 [TestInitialize()] 和 [TestCleanup()] 方法,为您的单元测试新增安装和清除程序代码。 当您产生单元测试时,「其他测试属性」区段会新增至您的单元测试档案中。 展开这个区段可以显示加了批注的方法,可用来包含初始化和清除

课后练习 解释所谓的单元为何? 单元测试针的五个内容为何? 单元测试的实施步骤为何?

參考資料 https://msdn.microsoft.com/zh-tw/library/vstudio/dd286656(v=vs.100).aspx