软件测试技术实验指导书2016版.doc

上传人:jian****018 文档编号:8342404 上传时间:2020-03-28 格式:DOC 页数:95 大小:3.66MB
返回 下载 相关 举报
软件测试技术实验指导书2016版.doc_第1页
第1页 / 共95页
软件测试技术实验指导书2016版.doc_第2页
第2页 / 共95页
软件测试技术实验指导书2016版.doc_第3页
第3页 / 共95页
点击查看更多>>
资源描述
软件测试技术 实验指导书 吴鸿韬 河北工业大学计算机科学与软件学院 2016年 9月 目 录 第一章 实验要求 1 第二章 白盒测试实践 3 第三章 黑盒测试实践 6 第四章 自动化单元测试实践 7 第五章 自动化功能测试实践 35 第六章 自动化性能测试实践 56 附录 1 实验报告封皮参考模版 71 附录 2 小组实验报告封皮参考模版 72 附录 3 软件测试计划参考模版 73 附录 4 测试用例参考模版 77 附录 5 单元测试检查表参考模版 81 附录 6 测试报告参考模版 82 附录 7 软件测试分析报告参考模版 87 第一章 实验要求 一 实验意义和目的 软件测试是软件工程专业的一门重要的专业课 本课程教学目的是通过实际 的测试实验 使学生系统地理解软件测试的基本概念和基本理论 掌握软件测 试和软件测试过程的基本方法和基本工具 熟练掌握软件测试的流程 会设计 测试用例 书写测试报告 为学生将来从事实际软件测试工作和进一步深入研 究打下坚实的理论基础和实践基础 本实验指导书共设计了 2 个设计型 3 个验证型实验和一个综合型实验 如 表 1 所示 设计型实验包括白盒测试实践和黑盒测试实践 验证型实验包括自 动化单元测试实践 自动化功能测试和自动化性能测试实践 主要目标是注重 培养学生软件测试的实际动手能力 增强软件工程项目的质量管理意识 通过 实践教学 使学生掌握软件测试的方法和技术 并能运用测试工具软件进行自 动化测试 综合型实验以 软件设计与编程实践 课程相关实验题目为原型 在开发过程中进行测试设计与分析 实现软件开发过程中的测试管理 完成应 用软件的测试工作 提高软件测试技能 进一步培养综合分析问题和解决问题 的能力 表 1 实验内容安排 实验内容 学时 实验性质 实验要求 实验一 白盒测试实践 4 设计 必做 实验二 黑盒测试实践 4 设计 必做 实验三 自动化单元测试实践 4 验证 必做 实验四 自动化功能测试实践 4 验证 必做 实验五 自动化性能测试实践 4 验证 必做 实验六 综合测试实践 课外 综合 选做 二 实验环境 NUnit JUnit LoadRunner Quick Test Professional VC6 0 Visual Studio 2010 SQL 数据库 三 实验过程要求 每次实验前详细阅读实验指导书 熟悉实验目的和实验内容 制订测试计划 设计测试用例 实验后整理并提交测试报告 项目结束后要提交测试总结 实验过程中 实验者必须服从指导教师和实验室工作人员的安排 遵守纪律 与实验制度 爱护设备及卫生 在指定的实验时间内 必须到实验室内做实验 四 实验成绩评价 实验课程的总成绩由实验考勤和实验报告成绩组成 主要是三个方面 1 上机实验考勤 每次上机应主动在指导老师处签到 冒签等不诚信行 为一旦被发现 取消本次实验成绩 如果学生需要请假 必须提前出具正式假 条 2 实验过程考核 每次实验课 指导教师根据实验过程情况 随机抽查 进行当次实验的答辩 3 实验报告提交 应根据指导教师要求按时提交每次实验的电子版实验 报告 实验报告中包含软件测试流程中所需要提交的所有相关文档 附件中给 出的相关文档模版的内容和格式仅供参考 如果发现学生抄袭 伪造实验数据 或实验报告和设计报告抄袭 雷同 则涉及的所有学生的该课程实验成绩记为 0 分 各部分所占比例如表 2 所示 表 2 实验成绩分配表 实验内容 分值 实验考勤 10 实验过程 10 实验一 白盒测试实践实验报告 10 实验二 黑盒测试实践实验报告 10 实验三 自动化单元测试实践实验报告 20 实验四 自动化功能测试实践实验报告 20 实验五 自动化性能测试实践实验报告 20 第二章 白盒测试实践 一 实验目的 1 构建编码规范 依据编码规范进行编码 2 利用代码审查方法进行单元测试实践 3 掌握白盒测试方法 运用白盒测试方法设计测试用例 进行测试实践 二 实验内容 本实验要求采用任一所熟悉的开发语言 依据所构建的编码规则 设计并 实现任一给定题目或自选题目 注意 最后给出的是基于对话框的程序 进而 利用白盒测试技术设计测试用例 结合代码审查方法 进行单元测试 参考题目 1 三角形问题 接受三个整数 a b 和 c 作为输入 用做三角形的边 程序的输出是由这三 条边确定的三角形类型 等边三角形 等腰三角形 不等边三角形 说明 三 边边长小于 200 2 电话号码问题 某城市电话号码由三部分组成 它们的名称和内容分别是 地区码 空白或三位数字 前 缀 非 0 或 1 的三位数字 后 缀 4 位数字 假定被测程序能接受一切符合上述规定的电话号码 拒绝所有不符合规定 的电话号码 3 保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为 投保额 保险费率 其中 保险费率依点数不同而有别 10 点及 10 点以上保险费率为 0 6 10 点以下保险费率为 0 1 而点数又是由 投保人的年龄 性别 婚姻 状况和抚养人数来决定 具体规则如表 2 1 所示 表 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 点 四舍五入取整 图 2 1 图 2 2 6 两位整数加法计算器 图 2 3 7 电子商务网站用户注册功能 推荐 参考任意电子商务网站 如京东 当当等 的用户注册功能 以 B S 或 C S 架构实现该功能 并应用白盒测试相关理论对其进行测试 三 实验要求 1 独立完成 2 提交编码规范 根据编码规范进行程序设计和测试 3 提交源代码 源代码中应包含必要的注释 4 提交测试用例说明书及缺陷报告 第三章 黑盒测试实践 一 实验目的 1 掌握并运用黑盒测试用例设计方法进行测试用例设计 进行测试实践 二 实验内容 掌握黑盒测试的基本理论 能够利用白盒测试理论设计测试用例 并在所 开发的软件中进行测试 白盒测试技术要求掌握语句覆盖 分支覆盖 路径覆 盖等白盒测试用例设计方法 针对实验二所设计并实现的程序 利用多种黑盒 测试技术设计测试用例 进行单元测试 本实验要求采用任一所熟悉的开发语言 依据所构建的编码规则 设计并 实现任一给定题目或自选题目 注意 最后给出的是基于对话框的程序 进而 利用黑盒测试技术设计测试用例 结合代码审查方法 进行单元测试 参考题目 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 所示 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 测试 负载测试等 针对实验二所设计并实现的程序 本项目要求根据所设计测试用 例 利用 NUnit JUnit VS2010 等自动化测试工具进行自动化单元测试 并给出 代码覆盖情况 三 实验要求 1 独立完成 2 提交测试脚本 3 提交测试代码及缺陷报告 四 NUnit 概述 1 Nunit 主界面 NUnit 是一个单元测试框架 专门针对于 NET 来写的 图 4 1 NUnit 运行的效果 图 4 2 NUnit 运行的另外一个效果 从中我们可以非常容易发现 右边是个状态条 图 4 1 是红色的 图 4 2 是绿 色的 为什么会这样呢 因为如果所有测试案例运行成功 就为绿色 反之如果有 一个不成功 则为红色 但也有黄色的 左面的工作域内则是我们写的每一个单元 测试 在右边面板的中间 可以看到测试进度条 进度条的颜色反映了测试执行 的状态 绿色 描述目前所执行的测试都通过 黄色 意味某些测试忽略 但是这里没有失败 红色 表示有失败 底部的状态条表示下面的状态 状态 说明了现在运行测试的状态 当所有测试完成时 状态变为 Completed 运行测试中 状态是 Running 是正在运行的测试名称 Test Cases 说明加载的程序集中测试案例的总个数 这也是测试树里叶 子节点的个数 Tests Run 已经完成的测试个数 Failures 到目前为止 所有测试中失败的个数 Time 显示运行测试时间 以秒计 File 主菜单有以下内容 New Project 允许你创建一个新工程 工程是一个测试程序集的集合 这种机制让你组织多个测试程序集 并把他们作为一个组对待 Open 加载一个新的测试程序集 或一个以前保存的 NUnit 工程文件 Close 关闭现在加载的测试程序集或现在加载的 NUnit 工程 Save 保存现在的 Nunit 工程到一个文件 如果正工作单个程序集 本菜 单项允许你创建一个新的 NUnit 工程 并把它保存在文件里 Save As 允许你将现有 NUnit 工程作为一个文件保存 Reload 强制重载现有测试程序集或 NUnit 工程 NUnit Gui 自动监测现 加载的测试程序集的变化 2 一些常用属性 在 NUnit 里 有以下几种属性 Test Fixture Test TestFixtureAttribute 本属性标记一个类包含测试 当然 setup 和 teardown 方法可有可无 关于 setup 和 teardown 方法在后面介绍 做为一个测试的类 这个类还有一些限制 必须是 Public 否则 NUnit 看不到它的存在 它必须有一个缺省的构造函数 否则是 NUnit 不会构造它 构造函数应该没有任何副作用 因为 NUnit 在运行时经常会构造这个类多 次 如果要是构造函数要什么副作用的话 那不是乱了 TestAttribute Test 属性用来标记一个类 已经标记为 TestFixture 的某个方法是可以测 试的 这个测试方法可以定义为 public void MethodName 从上面可以看出 这个方法没有任何参数 其实测试方法必须没有参数 如果 我们定义方法不对的话 这个方法不会出现在测试方法列表中 也就是说在 NUnit 的界面左边的工作域内 看不到这个方法 还有一点就是这个方法不返回 任何参数 并且必须为 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 框架引用 在 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 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 除了 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 的测试 都被忽略 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 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 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 Cmp Largest new int 2 运行测试 通过 调试 菜单 开始执行 测试代码 测试结果显示如图所示 图 4 7 3 查看代码覆盖率 运行测试并查看代码覆盖率 1 在 解决方案资源管理器 的 解决方案项 下 双击运行配置文件 Local testsettings 随即出现 测试设置 对话框 2 单击 数据和诊断 选中 代码覆盖率 图 4 8 3 双击 代码覆盖率 选中被测程序 保存配置文件修改并退出 图 4 9 4 运行测试 5 测试 菜单 窗口 选择 代码覆盖率 随即打开 代 码覆盖率结果 窗口 代码覆盖率结果 窗口中的 层次结构 列将显示 一个节点 该节点包含最新测试运行中得到的所有代码覆盖率数据 展开此节 点 得到如图所示代码覆盖率结果图 此表中的列显示了各个方法 类和整个 命名空间的覆盖率统计数据 图 4 10 6 双击选中的方法 将打开 Class1 cs 源代码文件并定位到 该 方法 所在的位置 在此文件中 可以看到代码突出显示效果 用浅蓝色突出显示的 代码行已在测试运行中执行过 用浅褐色突出显示的代码行已部分执行过 而 用红褐色突出显示的代码行则还没有执行过 可以通过滚动查看此文件中其他 方法的覆盖率 图 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 库 2 新建单元测试代码目录 单元测试代码是不会出现在最终软件产品中的 所以最好为单元测试代码 与被测试代码创建单独的目录 并保证测试代码和被测试代码使用相同的包名 这样既保证了代码的分离 同时还保证了查找的方便 遵照这条原则 在项目 coolJUnit 根目录下添加一个新目录 testsrc 并把它加入到项目源代码目录 中 见 图 4 13 4 14 图 4 13 新建测试代码目录 图 4 14 添加测试代码目录 3 在工程中添加类 添加类 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 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 运行结果 如下图 绿色的进度条提示我们 测试运行通过了 图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 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 public void wordFormat4DBNull String target null String result WordDealUtil wordFormat4DB target assertNull result 测试空字符串的处理情况 Test public void wordFormat4DBEmpty String target String result WordDealUtil wordFormat4DB target assertEquals result 测试当首字母大写时的情况 Test public void wordFormat4DBegin String target EmployeeInfo String result WordDealUtil wordFormat4DB target assertEquals employee info result 测试当尾字母为大写时的情况 Test public void wordFormat4DBEnd String target employeeInfoA String result WordDealUtil wordFormat4DB target assertEquals employee info a result 测试多个相连字母大写时的情况 Test public void 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 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 图 4 18 点击 Add 按钮 图 4 19 在 Name 一栏中输入 eclemma 在 Location 一栏中输入 update eclemma org 图 4 20 点击 OK 按钮 图 4 21 在 Name 一栏中选中 Eclemma 点击 Next 图 4 22 图 4 23 继续 Next 图 4 24 选择我接受 点击 Finish 图 4 25 安装完成后重启 eclipse 图 4 26 至此代码覆盖率工具安装完成 在 eclipse 中输入你要测试的代码 在 workspace 中右击需要测试的类在 New 菜 单下点击 Junit Test Case 图 4 27 点击 Next 图 4 28 选中你所要测试的类 点击 Finish 会生成一个测试类 Test java 将测试类中的 fail Not yet implemented 全部删除 运行测试类 图 4 29 点击代码覆盖率按钮 图 4 30 输入你所要测试的数据 图 4 31 图 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 应用程序 包 括传统的 Windows 应用程序 以及现在越来越流行的 Web 应用 1 QuickTest 窗口 在开始录制测试脚本之前 先熟悉 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 所示 图 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 QuickTest 测试开发流程 QuickTest 的测试流程包含七大阶段 1 录制测试脚本前的准备 在测试前需要先确认应用程序以及 QuickTest 是符合测试需求 确认你已经知道如何对应用程序进行测试 例如要测那些功能 操作步骤 输入的数据 预期的结果等 同时应该检查一下 QuickTest 的设定 如 Test Settings Test Settings 以及 Options 对话窗口 Tools Options 以确保 QuickTest 会适切的录制并储存信息 例如 你应该确认一下 QuickTest 的 Object Repository 是以什么模式储存信息的 2 录制测试脚本 当浏览网站或是操作应用程序时 QuickTest 会在 Keyword View 中以表 格的方式显示录制的操作步骤 每一个操作步骤都是使用者在录制时的操作 如在网页上点选一个超级链接 link 或是按下窗口上的按钮 3 加强测试脚本 在测试脚本中加入检查点 可以检查网页超级链接 对象属性或是字 符串 以验证应用程序的功能是否正确 将录制的固定值 hard code 参数以取代 使用多组的数据测试应用 程序 使用逻辑 logic 或是条件 conditional 判断式 可以进行更复 杂的测试 4 调试脚本 对测试脚本除错 在修改过测试脚本之后 需要调试测试脚本 检查脚本是否存在错误 以 确保测试脚本能正常且流畅的执行 5 在应用程序或网站上执行测试脚本 在对应用程序或网站的回归测试中 通过 QuickTest 回放对应用程序或网 站的操作 检验软件正确性 实现测试的自动化进行 6 分析测试结果 查看 QuickTest 记录的运行结果 分析测试执行的结果 记录问题 找出 应用程序的问题所在 7 回报问题 defect 如果安装了 Quality Center TestDirector 则你可以将发现的问题回 报到 QualityCenter TestDirector 的数据库中 Quality Center TestDirector 是 Mercury 的测试管理工具 3 录制脚本过程 1 准备 当你浏览网站或使用应用程序时 QuickTest 会纪录你的操作步骤 并产 生测试脚本 当你停止录制测试脚本后 会看到 QuickTest 在 Keyword View 中以表格的方式显示测试脚本的操作步骤 steps 在测试前需要先确认你的应用程序以及 QuickTest 是符合你的测试需求的 在开始时请先确认以下事项 假如你是使用 Internet Explorer 浏览器 请你先取消 自动完成 的功 能 取消 自动完成 的设定 a 开启 Internet Explorer 浏览器 点选 工具 因特网选项 内 容 b 点选 个人信息 中的 自动完成 按钮 开启 自动完成设定 对话 窗口 c 在 使用 自动完成 取消 窗体上的使用者名称和密码 选项 d 关闭所有的浏览器窗口 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 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 而且不要选 取任何的应用程序 此设定可以避免录制到其它应用程序 如 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 选项 停止录制 在 QuickTest 点选工具列上的 Stop 按钮 停止录制 现已经完成了 预定 纽约 旧金山 机票的动作 QuickTest 已经录制了从按下 Record 按 钮后 到按下 Stop 按钮之间所有的操作 储存测试脚本 选取 File Save 或是点选工具列上的 Save 按钮 开启 Save 对话窗口 建立一个 Tutorial 目录 将测试脚本命名为 Recording 勾 选 Save Active Screen files 按下 存盘 按钮 测试脚本名称 Recording 会出现在 QuickTest 窗口的标 题列 3 分析 Keyword View 中的测试脚本 录制测试脚本时 QuickTest 会将每一个操作录制下来 并在 Keyword View 类似 Excel 工作表的方式显示所录制的测试步骤 可以点选 View Expend All 检视测试脚本的每一个步骤 如图 5 7 所示 在 Keyword View 的中每个字段都有其意义 Item 以阶层式的图标显示这个操作步骤所作用到的组件 测试对象 test object 工具对象 utility object 函数呼叫 function call 或脚本 statement Operation 要在这个作用到的组件上执行的动作 如点选 Click 选取 Select Value 执行动作的参数 argument 例如当鼠标点选一张图片时是 用左键还是右键 Assignment 使用到的变量 Comment 你在测试脚本中加入的批注 Documentation 自动产生用来描述此操作步骤的英文说明 脚本中的每一个步骤在 Keyword View 中都会以一列来显示 其中包含用来 表示此组件类别的图标以及此步骤的详细数据 图 5 7 Keyword View 视图 4 创建检查点 1 检查点类型 QuickTest Professional 提供的检查点如表 5 1 所示 大多数检查点都可 以在录制过程中或在录制之后添加到测试中 2 检查对象 本部分将在 Book a Flight 页中添加标准检查点 该检查点将验证包含 乘客名字的框中的值 表 5 1 检查点类型 检查点类型 描述 用法示例 标准检查点 检查对象的属性值 检查是否选中某单选按钮 图像检查点 检查图像的属性值 检查图像源文件是否正确 表检查点 检查表中的信息 检查表单元格中的值是否正确 页面检查点 检查网页的特性 检查加载网页所需的时间 或者检查 网页是否包含中断链接 文本 文本区 域检查点 检查文本字符串是否显示在网页或 应用程序窗口中的适当位置 检查预期的文本字符串是否显示在网 页或对话框上的预期位置 位图检查点 将网页或应用程序的某个区域捕获 为位图后对其进行检查 检查网页或网页的任何部分是否能按 预期显示 数据库检查 点 检查应用程序或网站所访问的数据 库内容 检查数据库查询中的值是否正确 可访问性检 查点 对网站区域进行识别 以检查是否 符合 508 部分 检查网页上的图像是否包含 ALT 属性 该属性是 W3C Web 内容可访问性规 则所要求的 XML 检查点 检查 XML 文档的数据内容 注意 XML 文件检查点用于检查特定 的 XML 文件 XML 应用程序检查点用 于检查网页中的 XML 文档 执行 QuickTest 并开启 Recording 测试脚本 将测试另存为 Checkpoint 找到要向其添加标准检查点的页面 添加检查点 以便在乘客的名字输入 到 First Name 编辑框后 对该框中的属性值进行检查 在关键字视图的 项 列中 单击 展开 Action1 Welcome Mercury Tours Book a Flight Mercury 创建标准检查点 在 Active Screen 中 右键单击 First Name 框 然 后选择 插入标准检查点 将打开 对象选择 检查点属性 对话框 如图 5 8 所示 图 5 8 对象选择 检查点属性 确认已突出显示 WebEdit passFirst0 然后单击 确定 将打 开 检查点属性 对话框 如图 5 9 所示 图 5 9 检查点属性 该对话窗口会显示对象的属性 name 是这个对象的名称 Class 是这个对象的类别 WebEdit 表示这个对象是个 edit box 在 Type 字段中 的 ABC 图标表示这个属性的值是个常数 对每个对象 QuickTest 会使用预设的属性作为检查的属性 接受预设的 设定值 然后点选 OK QuickTest 会在你选取的步骤之前建立一个标准的检 查点 3 检查页面 网页检查点会检查网页的链结 link 以及图片的数量是否与当初录制时 的数量一样 在 Keyword View 中 展开 Action1 Welcome Mercury Tours 选取 Keyword View 中的 Book a Flight Mercury 网页 在 Active Screen 会显示这个网页的画面 在 Active Screen 上任意地方按下鼠标右键 选取 Insert Standard Checkpoint 会开启 Object Selection Checkpoint Properties 对话窗口 如图 5 10 所示 由于你点选的位置不同 对话窗口显示被选取的对象可能会不一样 图 5 10 对象选择 检查点属性 点选 Page Book a Flight Mercury 在最上层 然后点选 OK 接 着开启 Page Checkpoint Properties 对话窗口 当执行测试时 QuickTest 会检查网页的连结与图片的数量 以及加载的时间 QuickTest 也检查每个 link 的 URL 以及每个图片的原始文件是否存在 接受默认值 点选 OK QuickTest 会在 Book a Flight Mercury 网页 下方加上一个网页检查点 点选 File Save 或是点选工具列上的 Save 按钮保存测试脚本 4 检查文本 在此建立一个文本检查点 检查在 Flight Confirmation 网页中是否 出现 New York 在 Keyword View 中 展开 Action1 Welcome Mercury Tours 选取 Keyword View 中的 Flight Confirmation Mercury 网页 在 Active Screen 会显示网页 的画面
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!