软件测试技术实验指导书2016版.doc_第1页
软件测试技术实验指导书2016版.doc_第2页
软件测试技术实验指导书2016版.doc_第3页
软件测试技术实验指导书2016版.doc_第4页
软件测试技术实验指导书2016版.doc_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试技术软件测试技术 实验指导书实验指导书 吴鸿韬吴鸿韬 河北工业大学计算机科学与软件学院河北工业大学计算机科学与软件学院 20162016 年年 9 9 月月 1 目目 录录 第一章第一章 实验要求实验要求 1 第二章第二章 白盒测试实践白盒测试实践 3 第三章第三章 黑盒测试实践黑盒测试实践 6 第四章第四章 自动化单元测试实践自动化单元测试实践 7 第五章第五章 自动化功能测试实践自动化功能测试实践 35 第六章第六章 自动化性能测试实践自动化性能测试实践 56 附录附录 1 实验报告封皮参考模版实验报告封皮参考模版 71 附录附录 2 小组实验报告封皮参考模版小组实验报告封皮参考模版 72 附录附录 3 软件测试计划参考模版软件测试计划参考模版 73 附录附录 4 测试用例参考模版测试用例参考模版 77 附录附录 5 单元测试检查表参考模版单元测试检查表参考模版 81 附录附录 6 测试报告参考模版测试报告参考模版 82 附录附录 7 软件测试分析报告参考模版软件测试分析报告参考模版 87 1 第一章第一章 实验要求实验要求 一 实验意义和目的 软件测试是软件工程专业的一门重要的专业课 本课程教学目的是通过实际 的测试实验 使学生系统地理解软件测试的基本概念和基本理论 掌握软件测 试和软件测试过程的基本方法和基本工具 熟练掌握软件测试的流程 会设计 测试用例 书写测试报告 为学生将来从事实际软件测试工作和进一步深入研 究打下坚实的理论基础和实践基础 本实验指导书共设计了 2 个设计型 3 个验证型实验和一个综合型实验 如 表 1 所示 设计型实验包括白盒测试实践和黑盒测试实践 验证型实验包括自 动化单元测试实践 自动化功能测试和自动化性能测试实践 主要目标是注重 培养学生软件测试的实际动手能力 增强软件工程项目的质量管理意识 通过 实践教学 使学生掌握软件测试的方法和技术 并能运用测试工具软件进行自 动化测试 综合型实验以 软件设计与编程实践 课程相关实验题目为原型 在开发过程中进行测试设计与分析 实现软件开发过程中的测试管理 完成应 用软件的测试工作 提高软件测试技能 进一步培养综合分析问题和解决问题 的能力 表 1 实验内容安排 实验内容学时实验性质实验要求 实验一 白盒测试实践 4设计 必做 实验二 黑盒测试实践 4 设计必做 实验三 自动化单元测试实践 4 验证必做 实验四 自动化功能测试实践 4 验证必做 实验五 自动化性能测试实践 4 验证必做 实验六 综合测试实践课外综合选做 二 实验环境 NUnit JUnit LoadRunner Quick Test Professional VC6 0 Visual 2 Studio 2010 SQL 数据库 三 实验过程要求 每次实验前详细阅读实验指导书 熟悉实验目的和实验内容 制订测试计划 设计测试用例 实验后整理并提交测试报告 项目结束后要提交测试总结 实验过程中 实验者必须服从指导教师和实验室工作人员的安排 遵守纪律 与实验制度 爱护设备及卫生 在指定的实验时间内 必须到实验室内做实验 四 实验成绩评价 实验课程的总成绩由实验考勤和实验报告成绩组成 主要是三个方面 1 上机实验考勤 每次上机应主动在指导老师处签到 冒签等不诚信行 为一旦被发现 取消本次实验成绩 如果学生需要请假 必须提前出具正式假 条 2 实验过程考核 每次实验课 指导教师根据实验过程情况 随机抽查 进行当次实验的答辩 3 实验报告提交 应根据指导教师要求按时提交每次实验的电子版实验 报告 实验报告中包含软件测试流程中所需要提交的所有相关文档 附件中给 出的相关文档模版的内容和格式仅供参考 如果发现学生抄袭 伪造实验数据 或实验报告和设计报告抄袭 雷同 则涉及的所有学生的该课程实验成绩记为 0 分 各部分所占比例如表 2 所示 表 2 实验成绩分配表 实验内容分值 实验考勤 10 实验过程 10 实验一 白盒测试实践实验报告 10 实验二 黑盒测试实践实验报告 10 实验三 自动化单元测试实践实验报告 20 实验四 自动化功能测试实践实验报告 20 实验五 自动化性能测试实践实验报告 20 3 4 第二章第二章 白盒测试实践白盒测试实践 一 实验目的 1 构建编码规范 依据编码规范进行编码 2 利用代码审查方法进行单元测试实践 3 掌握白盒测试方法 运用白盒测试方法设计测试用例 进行测试实践 二 实验内容 本实验要求采用任一所熟悉的开发语言 依据所构建的编码规则 设计并 实现任一给定题目或自选题目 注意 最后给出的是基于对话框的程序 进而 利用白盒测试技术设计测试用例 结合代码审查方法 进行单元测试 参考题目 1 三角形问题 三角形问题 接受三个整数 a b 和 c 作为输入 用做三角形的边 程序的输出是由这三 条边确定的三角形类型 等边三角形 等腰三角形 不等边三角形 说明 三 边边长小于 200 2 电话号码问题 电话号码问题 某城市电话号码由三部分组成 它们的名称和内容分别是 地区码 空白或三位数字 前 缀 非 0 或 1 的三位数字 后 缀 4 位数字 假定被测程序能接受一切符合上述规定的电话号码 拒绝所有不符合规定 的电话号码 3 保险公司计算保费费率的程序保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为 投保额 保险费率 其中 保险费率依点数不同而有别 10 点及 10 点以上保险费率为 0 6 10 点以下保险费率为 0 1 而点数又是由 投保人的年龄 性别 婚姻 状况和抚养人数来决定 具体规则如表 2 1 所示 5 表 2 1 4 某公司薪水计算程序 某软件的一个模块的需求规格说明书中描述 如图 2 1 所示 1 年薪制员工 严重过失 扣年终风险金的 4 过失 扣年终风险金 的 2 2 非年薪制员工 严重过失 扣当月薪资的 8 过失 扣当月薪资的 4 5 公交一卡通自动充值软件 如图 2 2 所示 年龄 性别婚姻抚养人数 20 39 40 59 其它 M F 已婚 未婚 6 点 4 点 2 点 5 点 3 点 3 点5 点 1 人扣 0 5 点 最多扣 3 点 四舍五入取整 6 图 2 1 图 2 2 6 两位整数加法计算器 7 图 2 3 7 电子商务网站用户注册功能 推荐 参考任意电子商务网站 如京东 当当等 的用户注册功能 以 B S 或 C S 架构实现该功能 并应用白盒测试相关理论对其进行测试 三 实验要求 1 独立完成 2 提交编码规范 根据编码规范进行程序设计和测试 3 提交源代码 源代码中应包含必要的注释 4 提交测试用例说明书及缺陷报告 第三章第三章 黑盒测试实践黑盒测试实践 一 实验目的 1 掌握并运用黑盒测试用例设计方法进行测试用例设计 进行测试实践 二 实验内容 掌握黑盒测试的基本理论 能够利用白盒测试理论设计测试用例 并在所 开发的软件中进行测试 白盒测试技术要求掌握语句覆盖 分支覆盖 路径覆 盖等白盒测试用例设计方法 针对实验二所设计并实现的程序 利用多种黑盒 测试技术设计测试用例 进行单元测试 本实验要求采用任一所熟悉的开发语言 依据所构建的编码规则 设计并 8 实现任一给定题目或自选题目 注意 最后给出的是基于对话框的程序 进而 利用黑盒测试技术设计测试用例 结合代码审查方法 进行单元测试 参考题目 1 三角形问题 三角形问题 接受三个整数 a b 和 c 作为输入 用做三角形的边 程序的输出是由这三 条边确定的三角形类型 等边三角形 等腰三角形 不等边三角形 说明 三 边边长小于 200 2 电话号码问题 电话号码问题 某城市电话号码由三部分组成 它们的名称和内容分别是 地区码 空白或三位数字 前 缀 非 0 或 1 的三位数字 后 缀 4 位数字 假定被测程序能接受一切符合上述规定的电话号码 拒绝所有不符合规定 的电话号码 3 保险公司计算保费费率的程序保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为 投保额 保险费率 其中 保险费率依点数不同而有别 10 点及 10 点以上保险费率为 0 6 10 点以下保险费率为 0 1 而点数又是由 投保人的年龄 性别 婚姻 状况和抚养人数来决定 具体规则如表 2 1 所示 4 某公司薪水计算程序 某软件的一个模块的需求规格说明书中描述 如图 2 1 所示 1 年薪制员工 严重过失 扣年终风险金的 4 过失 扣年终风险金 的 2 2 非年薪制员工 严重过失 扣当月薪资的 8 过失 扣当月薪资的 4 5 公交一卡通自动充值软件 如图 2 2 所示 9 6 两位整数加法计算器 如图 2 3 所示 7 电子商务网站用户注册功能 推荐 参考任意电子商务网站 如京东 当当等 的用户注册功能 以 B S 或 C S 架构实现该功能 并应用黑盒测试相关理论对其进行测试 三 实验要求 1 独立完成 2 提交测试用例说明书及缺陷报告 第四章第四章 自动化单元测试实践自动化单元测试实践 一 实验目的 1 熟悉 NUnit JUnit VS2010 等自动化测试工具 能熟练应用自动化单元测试 工具进行单元测试 二 实验内容 自动化测试是对手工测试的有益补充 可以通过自动化测试工具提高测试 效率 改善软件产品质量 NUnit 是为 Net 开发环境准备的自动化单元测试框 架 JUnit 是针对 Java 语言设计的自动化单元测试工具 它们的作用就是帮助 测试人员方便的完成单元测试工作 Visual Studio 2010 集成开发环境通过集 成 Visual Studio Ultimate 2010 和 VS Test Professional 2010 等工具对软 件测试提供了强有力的支持 可以创建和管理单元测试 UI 测试 web 测试 负载测试等 针对实验二所设计并实现的程序 本项目要求根据所设计测试用 10 例 利用 NUnit JUnit VS2010 等自动化测试工具进行自动化单元测试 并给出 代码覆盖情况 三 实验要求 1 独立完成 2 提交测试脚本 3 提交测试代码及缺陷报告 四 NUnit 概述 1 Nunit 主界面 NUnit 是一个单元测试框架 专门针对于 NET 来写的 图 4 1 NUnit 运行的效果 图 4 2 NUnit 运行的另外一个效果 从中我们可以非常容易发现 右边是个状态条 图 4 1 是红色的 图 4 2 是绿 色的 为什么会这样呢 因为如果所有测试案例运行成功 就为绿色 反之如果有 一个不成功 则为红色 但也有黄色的 左面的工作域内则是我们写的每一个单元 测试 在右边面板的中间 可以看到测试进度条 进度条的颜色反映了测试执行 11 的状态 绿色绿色 描述目前所执行的测试都通过 黄色黄色 意味某些测试忽略 但是这里没有失败 红色红色 表示有失败 底部的状态条表示下面的状态 状态状态 说明了现在运行测试的状态 当所有测试完成时 状态变为 Completed 运行测试中 状态是Running 是正在运行的测试名称 TestTest CasesCases 说明加载的程序集中测试案例的总个数 这也是测试树里叶 子节点的个数 TestsTests RunRun 已经完成的测试个数 FailuresFailures 到目前为止 所有测试中失败的个数 TimeTime 显示运行测试时间 以秒计 File 主菜单有以下内容 NewNew ProjectProject 允许你创建一个新工程 工程是一个测试程序集的集合 这种机制让你组织多个测试程序集 并把他们作为一个组对待 OpenOpen 加载一个新的测试程序集 或一个以前保存的 NUnit 工程文件 CloseClose 关闭现在加载的测试程序集或现在加载的 NUnit 工程 SaveSave 保存现在的 Nunit 工程到一个文件 如果正工作单个程序集 本菜 单项允许你创建一个新的 NUnit 工程 并把它保存在文件里 SaveSave AsAs 允许你将现有 NUnit 工程作为一个文件保存 ReloadReload 强制重载现有测试程序集或 NUnit 工程 NUnit Gui 自动监测现 加载的测试程序集的变化 2 一些常用属性 在 NUnit 里 有以下几种属性 Test Fixture Test TestFixtureAttribute 本属性标记一个类包含测试 当然 setup 和 teardown 方法可有可无 关于 12 setup 和 teardown 方法在后面介绍 做为一个测试的类 这个类还有一些限制 必须是 Public 否则 NUnit 看不到它的存在 它必须有一个缺省的构造函数 否则是 NUnit 不会构造它 构造函数应该没有任何副作用 因为 NUnit 在运行时经常会构造这个类多 次 如果要是构造函数要什么副作用的话 那不是乱了 TestAttribute Test 属性用来标记一个类 已经标记为 TestFixture 的某个方法是可以测 试的 这个测试方法可以定义为 public void MethodName 从上面可以看出 这个方法没有任何参数 其实测试方法必须没有参数测试方法必须没有参数 如果 我们定义方法不对的话 这个方法不会出现在测试方法列表中 也就是说在 NUnit 的界面左边的工作域内 看不到这个方法 还有一点就是这个方法不返回还有一点就是这个方法不返回 任何参数任何参数 并且必须为并且必须为 Public Public 例如 1using System 2using NUnit Framework 3 4namespace MyTest Tests 5 6 TestFixture 7 public class SuccessTests 8 9 Test public void Test1 10 11 12 13 14 在 NUnit 中 用 Assert 断言 进行比较 Assert 是一个类 它包括以 下方法 AreEqual AreSame Equals Fail Ignore IsFalse IsNotNull 具体请参看 NUnit 的文档 3 如何在 NET 中应用 NUnit 第 1 步 增加一个 NUnit 框架引用 13 在 Microsoft Visual Studio NET 里创建这个例子时 你需要增加一个 NUnit framework dll引用 如下 在 Solution Explorer 右击引用 然后选 择增加引用 NUnit framework 组件 在 Add Reference 对话框中按 Select 和 OK 按钮 第 2 步 为工程加一个类 为工程加一个 Cmp 类 作为被测代码 这里是这个例子的代码 using System public class Cmp public static int Largest int list int index max Int32 MaxValue if list Length 0 throw new ArgumentException Empty list for index 0 index max max list index return max 第 3 步 建立测试代码 using NUnit Framework TestFixture public class TestLargest Test public void LargestOf3 Assert AreEqual 9 Cmp Largest new int 8 9 7 Test ExpectedException typeof ArgumentException public void Empty 14 Cmp Largest new int 第 4 步 编译运行测试 现在生成 solution 成功编译后 开始应用程序 NUnit Gui 测试程序集 的结构如图 4 3 所示 图 4 3 测试程序集的测试在 NUnit Gui 中的视图 按 Run 按钮 树的节点变为绿色 而且测试运行器窗口上的进度条变绿 绿色代表成功通过 ExpectedException 这里是一个验证这个假设的测试 有的时候 我们知道某些操作会有异常出 现 例如 在实例中增加除法 某个操作被 0 除 抛出的异常和 NET 文档描述的 一样 参看以下源代码 1 Test 2 ExpectedException typeof DivideByZeroException 3public void DivideByZero 4 5 int zero 0 6 int infinity a zero 7 Assert Fail Should have gotten an exception 8 15 除了 Test 属性之外 DivideByZero方法有另外一个客户属性 ExpectedException 在这个属性里 你可以在执行过程中捕获你期望的异常类 型 例如在本例就是 DivideByZeroException 如果这个方法在没有抛出期望异 常的 情况下完成了 这个测试失败 使用这个属性帮助我们写程序员测试验证边 界条件 Boundary Conditions Ignore 属性 由于种种原因 有一些测试我们不想运行 当然 这些原因可能包括你认为这 个测试还没有完成 这个测试正在重构之中 这个测试的需求不是太明确 但你有 不想破坏测试 不然进度条可是红色的哟 怎么办 使用Ignore属性 你可以保持 测试 但又不运行它们 namespace ClassLibrary1 using NUnit Framework TestFixture public class TestLargest Test public void LargestOf3 1 Assert AreEqual 9 CMP Largest new int 8 9 7 Test public void LargestOf3 2 Assert AreEqual 9 CMP Largest new int 8 7 9 Test Ignore ExpectedException typeof ArgumentException public void Empty CMP Largest new int Ignore属性可以附加到一个独立的测试方法 也可以附加到整个测试类 TestFixture 如果Ignore属性附加到TestFixture 所有在 fixture 的测试 都被忽略 16 Category 属性 对于测试来说 你有的时候需要将之分类 此属性正好就是用来解决这个 问题的 你可以选择你需要运行的测试类目录 也可以选择除了这些目录之外 的测试都可以运行 在命令行环境里 include 和 exclude 来实现 在 GUI 环 境下 就更简单了 选择左边工作域里的 Catagories Tab 选择 Add 和 Remove 既可以了 图 4 4 在一个程序员测试中使用 Ignore 属性 namespace ClassLibrary1 using NUnit Framework TestFixture public class TestLargest Test Category class2 public void LargestOf3 1 Assert AreEqual 9 CMP Largest new int 8 9 7 Test Category class2 public void LargestOf3 2 17 Assert AreEqual 9 CMP Largest new int 8 7 9 Test Category class1 ExpectedException typeof ArgumentException public void Empty CMP Largest new int NUnit GUI 界面 图 4 5 使用 Catagories 属性的界面 四 VS2010 单元测试 1 创建被测代码 public class Cmp public static int Largest int list if list Length 0 throw new ArgumentException Empty list int index max Int32 MinValue for index 0 index max 18 max list index return max 2 创建单元测试 图4 6 TestMethod public void TestMethod1 int list 7 8 9 int expected 9 int actual actual Cmp Largest list Assert AreEqual expected actual TestMethod ExpectedException typeof ArgumentException public void Empty 19 Cmp Largest new int 2 运行测试 通过 调试 菜单 开始执行 测试代码 测试结果显示如图所示 图 4 7 3 查看代码覆盖率 运行测试并查看代码覆盖率 1 在 解决方案资源管理器 的 解决方案项 下 双击运行配置文件 Local testsettings 随即出现 测试设置测试设置 对话框 2 单击 数据和诊断数据和诊断 选中选中 代码覆盖率代码覆盖率 图 4 8 20 3 双击 代码覆盖率代码覆盖率 选中被测程序 保存配置文件修改并退出 选中被测程序 保存配置文件修改并退出 图 4 9 4 运行测试 5 测试 菜单 窗口 选择 代码覆盖率 随即打开 代代 码覆盖率结果码覆盖率结果 窗口 代码覆盖率结果代码覆盖率结果 窗口中的 层次结构层次结构 列将显示 一个节点 该节点包含最新测试运行中得到的所有代码覆盖率数据 展开此节 点 得到如图所示代码覆盖率结果图 此表中的列显示了各个方法 类和整个 命名空间的覆盖率统计数据 图 4 10 6 双击选中的方法 将打开 Class1 cs 源代码文件并定位到 该 方法 所在的位置 在此文件中 可以看到代码突出显示效果 用浅蓝色突出显示的 21 代码行已在测试运行中执行过 用浅褐色突出显示的代码行已部分执行过 而 用红褐色突出显示的代码行则还没有执行过 可以通过滚动查看此文件中其他 方法的覆盖率 图 4 11 五 Junit 框架的使用 1 Junit 使用方法示例 1 1 把 Junit 引入当前项目库中 新建一个 Java 工程 coolJUnit 打开项目 coolJUnit 的属性页 选 择 Java Build Path 子选项 点选 Add Library 按钮 在弹出的 Add Library 对话框中选择 JUnit 图 3 15 并在下一页中选择版本 Junit 4 后点击 Finish 按钮 这样便把 JUnit 引入到当前项目库中了 图 4 12 为项目添加 JUnit 库 22 2 新建单元测试代码目录 单元测试代码是不会出现在最终软件产品中的 所以最好为单元测试代码 与被测试代码创建单独的目录 并保证测试代码和被测试代码使用相同的包名 这样既保证了代码的分离 同时还保证了查找的方便 遵照这条原则 在项目 coolJUnit 根目录下添加一个新目录 testsrc 并把它加入到项目源代码目录 中 见 图 4 13 4 14 图 4 13 新建测试代码目录 图 4 14 添加测试代码目录 3 在工程中添加类 23 添加类 SampleCaculator 类中有两个方法 分别计算加减法 编译代码 4 写单元测试代码 为类SampleCalculator添加测试用例 在资源管理器 SampleCalculator java文件处右击选new 选Junit Test Case 见图4 15 Source foler选择testsrc目录 点击next 选择要测试的方法 这里把add和 subtration方法都选上 最后点finish完成 图4 15 新建测试用例 Junit自动生成测试类SampleCalculatorTest 修改其中的代码 其中 assertEquals断言 用来测试预期目标和实际结果是否相等 assertEquals Sting message expected actual package cn edu gzhu public class SampleCalculator 计算两整数之和 public int add int augend int addend return augend addend 计算两整数之差 public int subtration int minuend int subtrahend return minuend subtrahend 24 expected是期望值 通常都是硬编码的 actual是被测试代码实际产生 的值 message是一个可选的消息 如果提供的话 将会在发生错误时报告这个 消息 如想用断言来比较浮点数 在Java中是类型为float或者double的数 则 需指定一个额外的误差参数 assertEquals Sting message expected actual tolerance 其它断言参见课本和参考书介绍 测试方法需要按照一定的规范书写 1 测试方法必须使用注解 org junit Test 修饰 2 测试方法必须使用 public void 修饰 而且不能带有任何参数 package cn edu gzhu import static org junit Assert import org junit Test public class SampleCalculatorTest SampleCalculator calculator new SampleCalculator Test public void testAdd int result calculator add 50 20 assertEquals 70 result Test public void testSubtration int result calculator subtration 50 20 assertEquals 30 result 5 查看运行结果 在测试类上点击右键 在弹出菜单中选择 Run As JUnit Test 运行结果 如下图 绿色的进度条提示我们 测试运行通过了 25 图4 16 示例1运行结果 2 Junit 使用方法示例 2 1 在工程中添加类 类 WordDealUtil 中的方法 wordFormat4DB 实现的功能见文件注释 2 写单元测试代码 package cn edu gzhu package cn edu gzhu import java util regex Matcher import java util regex Pattern public class WordDealUtil 将Java对象名称 每个单词的头字母大写 按照 数据库命名的习惯进行格式化 格式化后的数据为小写字母 并且使用下划线分割命名单词 例如 employeeInfo 经过格式化之后变为 employee info param name Java对象名称 public static String wordFormat4DB String name Pattern p Ppile A Z Matcher m p matcher name StringBuffer strBuffer new StringBuffer while m find 将当前匹配子串替换为指定字符串 并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加 到一个StringBuffer对象里 m appendReplacement strBuffer m group 将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里 return m appendTail strBuffer toString toLowerCase 26 package cn edu gzhu import static org junit Assert import org junit Test public class WordDealUtilTest Test public void testWordFormat4DB String target employeeInfo String result WordDealUtil wordFormat4DB target assertEquals employee info result 3 进一步完善测试用例 单元测试的范围要全面 如对边界值 正常值 错误值的测试 运用所学 的测试用例的设计方法 如 等价类划分法 边界值分析法 对测试用例进行 进一步完善 继续补充一些对特殊情况的测试 测试 null 时的处理情况 Test publicpublic voidvoid wordFormat4DBNull String target nullnull String result WordDealUtil wordFormat4DB target assertNull result 测试空字符串的处理情况 Test publicpublic voidvoid wordFormat4DBEmpty String target String result WordDealUtil wordFormat4DB target assertEquals result 测试当首字母大写时的情况 Test publicpublic voidvoid wordFormat4DBegin String target EmployeeInfo String result WordDealUtil wordFormat4DB target 27 assertEquals employee info result 测试当尾字母为大写时的情况 Test publicpublic voidvoid wordFormat4DBEnd String target employeeInfoA String result WordDealUtil wordFormat4DB target assertEquals employee info a result 测试多个相连字母大写时的情况 Test publicpublic voidvoid wordFormat4DBTogether String target employeeAInfo String result WordDealUtil wordFormat4DB target assertEquals employee a info result 4 查看分析运行结果 修改错误代码 再次运行测试 JUnit 运行界面提示我们有两个测试情况未通过测试 见 图 6 当首字母大写时得到的处理结果与预期的有偏差 造成测试失败 failure 而当测试对 null 的处理结果时 则直接抛出了异常 测试错 误 error 显然 被测试代码中并没有对首字母大写和 null 这两种特殊情 况进行处理 修改如下 修改后的方法 wordFormat4DB public static String wordFormat4DB String name if name null return null Pattern p Ppile A Z Matcher m p matcher name StringBuffer sb new StringBuffer 28 while m find if m start 0 m appendReplacement sb m group toLowerCase return m appendTail sb toString toLowerCase 图 4 17 示例 2 运行结果 六 Junit eclipse 代码覆盖率工具下载安装 在 eclipse 主界面菜单栏打开 help 然后点击 Software updates 不同版本有的 是 Install New Software 29 图 4 18 点击 Add 按钮 图 4 19 在 Name 一栏中输入 eclemma 在 Location 一栏中输入 update eclemma org 30 图 4 20 点击 OK 按钮 图 4 21 在 Name 一栏中选中 Eclemma 点击 Next 31 图 4 22 图 4 23 继续 Next 32 图 4 24 选择我接受 点击 Finish 图 4 25 安装完成后重启 eclipse 图 4 26 至此代码覆盖率工具安装完成 在 eclipse 中输入你要测试的代码 在 workspace 中右击需要测试的类在 New 菜 单下点击 Junit Test Case 33 图 4 27 点击 Next 34 图 4 28 选中你所要测试的类 点击 Finish 会生成一个测试类 Test java 35 将测试类中的 fail Not yet implemented 全部删除 运行测试类 36 图 4 29 点击代码覆盖率按钮 图 4 30 输入你所要测试的数据 图 4 31 37 图 4 32 代码覆盖率如图图 4 32 所示 第五章第五章 自动化功能测试实践自动化功能测试实践 一 实验目的 1 熟悉 QTP 自动化功能测试流程 2 能够利用 QTP 进行 B S 或者 C S 架构程序的自动化功能测试 二 实验内容 功能测试是针对应用系统进行测试 是基于产品功能说明书 是在已知产 品所应具有的功能 从用户角度来进行功能验证 以确认每个功能是否都能正 常使用 本项目主要使用 QuickTest 对 MercuryTours 网站进行功能测试 要求 录制预订机票的完整过程 然后执行测试脚本并分析结果 三 实验要求 1 独立完成 2 提交测试脚本 3 提交测试用例说明书及缺陷报告 四 QuickTest 简介 Mercury QuickTest Professional 是一款先进的自动化测试解决方案 用 于创建功能和回归测试 它自动捕获 验证和重放用户的交互行为 使用 QuickTest Professional 关键字视图 自动文档 Auto documentation 和活 动屏幕 Active Screen 无需一行代码 就可以创建和修改测试脚本 同时 满足了技术型和非技术型用户的需求 让各个公司有能力部署更高质量的应用 QuickTest 主要应用在回归测试中 QuickTest 针对的是 GUI 应用程序 包 38 括传统的 Windows 应用程序 以及现在越来越流行的 Web 应用 1 1 QuickTestQuickTest 窗口窗口 在开始录制测试脚本之前 先熟悉 QuickTest 的窗口 QuickTest 的主窗 口如图 5 1 所示 图 5 1 QuickTest 的主窗口 QuickTest 的主窗口包含下列的组件 Title bar 显示目前测试脚本的名称 Menu bar 显示 QuickTest 的菜单 File toolbar 管理测试脚本常用的工具列 File toolbar 如图 5 2 所示 图 5 2File toolbar Test toolbar 录制测试脚本常用的工具列 Test toolbar 如图 5 3 所示 39 图 5 3Test toolbar Debug toolbar 对测试脚本除错常用的工具列 Debug toolbar 如 图 5 4 所示 图 5 4 Debug toolbar Action toolbar 包含常用的功能按钮 以及一个显示测试动作 action 的下拉式清单 list 方便你检视整个测试脚本中的 测试动作 Test pane 包含 Keyword View 以及 Expert View Active Screen pane 包含 Active Screen Data Table 当你对测试脚本做参数化时存放参数数据的地方 除 了一个 Global 的数据表外 每一个 action 也会有各自的资料表 Debug Viewer pane 协助你对测试脚本除错 debug Debug Viewer pane 包含 WatchExpressions Variables 以及 Command Status bar 显示测试脚本的状态 2 2 QuickTestQuickTest 测试开发流程测试开发流程 QuickTest 的测试流程包含七大阶段 40 1 1 录制测试脚本前的准备录制测试脚本前的准备 在测试前需要先确认应用程序以及 QuickTest 是符合测试需求 确认你已经知道如何对应用程序进行测试 例如要测那些功能 操作步骤 输入的数据 预期的结果等 同时应该检查一下 QuickTest 的设定 如 Test Settings Test Settings 以及 Options 对话窗口 Tools Options 以确保 QuickTest 会适切的录制并储存信息 例如 你应该确认一下 QuickTest 的 Object Repository 是以什么模式储存信息的 2 2 录制测试脚本录制测试脚本 当浏览网站或是操作应用程序时 QuickTest 会在 Keyword View 中以表 格的方式显示录制的操作步骤 每一个操作步骤都是使用者在录制时的操作 如在网页上点选一个超级链接 link 或是按下窗口上的按钮 3 3 加强测试脚本加强测试脚本 在测试脚本中加入检查点 可以检查网页超级链接 对象属性或是字 符串 以验证应用程序的功能是否正确 将录制的固定值 hard code 参数以取代 使用多组的数据测试应用 程序 使用逻辑 logic 或是条件 conditional 判断式 可以进行更复 杂的测试 4 4 调试脚本 对测试脚本除错 调试脚本 对测试脚本除错 在修改过测试脚本之后 需要调试测试脚本 检查脚本是否存在错误 以 确保测试脚本能正常且流畅的执行 5 5 在应用程序或网站上执行测试脚本在应用程序或网站上执行测试脚本 在对应用程序或网站的回归测试中 通过 QuickTest 回放对应用程序或网 站的操作 检验软件正确性 实现测试的自动化进行 6 6 分析测试结果 分析测试结果 查看 QuickTest 记录的运行结果 分析测试执行的结果 记录问题 找出 应用程序的问题所在 7 7 回报问题 回报问题 defectdefect 41 如果安装了 Quality Center TestDirector 则你可以将发现的问题回 报到 QualityCenter TestDirector 的数据库中 Quality Center TestDirector 是 Mercury 的测试管理工具 3 3 录制脚本过程 录制脚本过程 1 准备 当你浏览网站或使用应用程序时 QuickTest 会纪录你的操作步骤 并产 生测试脚本 当你停止录制测试脚本后 会看到 QuickTest 在 Keyword View 中以表格的方式显示测试脚本的操作步骤 steps 在测试前需要先确认你的应用程序以及 QuickTest 是符合你的测试需求的 在开始时请先确认以下事项 假如你是使用 Internet Explorer 浏览器 请你先取消 自动完成 的功 能 取消 自动完成 的设定 a 开启 Internet Explorer 浏览器 点选 工具 因特网选项 内 容 b 点选 个人信息 中的 自动完成 按钮 开启 自动完成设定 对话 窗口 c 在 使用 自动完成 取消 窗体上的使用者名称和密码 选项 d 关闭所有的浏览器窗口 2 2 录制脚本 录制脚本 录制一个测试脚本 在 Mercury Tours 范例网站上预订一张从纽约 New York 到旧金山 San Francisco 的机票 执行 QuickTest 并开启一个全新的测试脚本 要开启 QuickTest 请点选 开始 程序集 QuickTest Professional QuickTest Professional 在 Add in Manager 勾选 Web Add in 并取消其它的 add ins 然 后点选 OK 按钮关闭 Add in Manager 窗口 进入 QuickTest Professional 主窗口 假如出现 Welcome 窗口 点选 Blank Test 或者 点选 File 42 New 或是按下工具列上的 New 按钮 QuickTest Professional 会开启 全新的测试脚本档案 假如 QuickTest Professional 已经开启 检查 Help About Quick Test Professional 看目前加载了哪些 add ins 开始录制测试脚本 点选 Test Record 或是点选工具列上的 Record 按钮 会开启 Record and Run Settings 对话窗口 在 Web 页签 勾选 Open the following browser when a record or run session begins 从 Type 下拉列表选择使用的浏 览器 并且在 Address 输入 请确认 Do not record and run on browsers that are already open 与 Close the browser when the test is closed 这二个选项都已经勾选了 如图 5 5 所示 图 5 5 Web 选项 在 Windows Applications 页签 勾选 Record and run on these app opened on session start 而且不要选 43 取任何的应用程序 此设定可以避免录制到其它应用程序 如 Outlook 的操 作 如图 5 6 所示 点选 OK QuickTest 会开启浏览器浏览 Mercury Tours 网站 并且开 始录制测试脚本 登入 Mercury Tours Web site 网站 在 User Name 与 Password 输 入你当初注册的账号与密码 点选 Sign In 开启 Flight Finder 网页 输入订票数据 选择飞机航班 点选 CONTINUE 按钮 开启 Book a Flight 页面 输入必要字段 在 Billing Address 勾选 Ticketless Travel 按下网页下方的 SECURE PURCHASE 按钮 开启 Flight Confirmation 网页 检视订票数据 并点选 BACK TO HOME 回 到 Mercury Tours 网站的首页 图 5 6 Windows Application 选项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论