一 软件功能测试概论
1.软件需求3个不同的层次:业务需求、用户需求、系统需求
2.测试需求分析三个环节:需求采集、需求分析、需求评审
3.质量特性分析:功能性、可靠性、易用性
4.测试方法:等价类划分法、边界值分析法、因果图、场景法
二 软件功能测试过程
1.功能测试过程:前期准备→计划制定→设计与开发→执行与缺陷追踪
2.测试环境=硬件+软件+网络+数据+测试工具
3.自动化测试工具分类
(1)收费方式:
①商业测试工具
②开源测试工具
③免费测试工具
(2)用途:
①测试管理工具
②自动化功能测试工具
③性能测试工具
④单元测试工具
⑤白盒测试工具
⑥测试用例设计工具
4.测试设计目标:组织性、重复性、跟踪、测试验证
5.测试用例说明包括:标识项、测试项、输入说明、输出说明、环境要求、案例之间的依赖关系
6.软件描述三方面:概要陈述、再现步骤、隔离尝试
三 功能测试自动化
1.手工测试不可替代的地方:
①测试用例的设计 ②界面和用户体验测试 ③正确性的检查
2.自动化测试项目的流程;
(1)需求概述
(2)制定自动化测试计划
(3)自动化测试方案设计
(4)自动化测试用例设计
(5)自动化测试脚本开发
(6)自动化测试执行和生成报告
3.自动化测试框架思想: 模块化思想、测试库思想、数据驱动思想、关键字思想
四 HP UFT简介
1.UFT是Unified Functional Testing的简称,以VBScript为内嵌语言。
2.UFT默认支持ActionX、VB和Web插件
3.GUI Test界面测试
4.API Test结构应用测试
五 脚本录制与回放
1.关键字视图:测试中的每个步骤是关键字视图中的一行,每个步骤完成后都会自动生成文档。绝大部分的复杂操作无法在关键字视图中完成。
2.专家视图:对于关键字视图中的每个节点,在专家视图中都对应一行脚本。专家视图中必须定位到业务操作最终的对象。专家视图中的每一句代码是关键字视图中的多个步骤的结合。
3.UFT测试的基本流程:
(1)录制测试脚本
(2)编辑测试脚本
(3)调试测试脚本
(4)运行测试脚本
(5)分析测试结果
4.关键字视图中comment列显示注释,默认不显示,需手动添加,右键单击。
5.四种录制模式(录制过程中切换)
(1)正常录制模式:F6
(2)Analog Recording(模拟录制模式):记录键盘和鼠标的精确操作Ctrl+F3
(3)Low-Level Recording(低级录制模式):严格的坐标Shift+F3
(4)Insight Recording(图像识别录制模式):基于控件的显示而非属性
6.UFT回放原理:
UFT 根据脚本中记录下来的对象操作的顺序进行回放,UFT从脚本中读取到该对象,并根据对象的名称和层次到对象库寻找相同名称的测试对象,在对象库找到对应的测试对象,并获得该测试对象的属性,然后根据这个属性,在运行的网页或应用程序中进行匹配,寻找运行对象,如果匹配成功,再根据脚本中记录的该对象的方法、动作和参数值进行运行,如果匹配不成功,在超出了等待时间后报错。
7.Object synchronization timeout(对象识别时间,单位:秒):在这个时间内没有识别出对象,就报错
8.UFT在运行脚本时有两种运行模式:
(1)Normal:正常模式(此模式下对时间设置单位是毫秒)
(2)Fast:快速运行模式(没有停顿)
9.导出与导入测试脚本
(1)File|Export Test (2)File|Import Test
10.专家视图中脚本编辑器有语法感知功能
11.设置断点:在对应行的左边灰色区域单击鼠标左键即可
12.结果分析
(1)左边面板显示Test Summary树,显示测试执行步骤的层次结构
(2)右面是测试结果汇总
①顶部区域测试执行情况的汇总 ,包括测试名称、测试时间、UFT版本号、操作系统等信息。
②中间区域为执行测试结果的统计信息,显示有多少通过测试,多少没通过及多少警告信息。
③底部区域为执行被测程序时的截图
六 测试对象管理
1.对象
(1)测试对象(Test Object, TO):UFT定义的一些类,用它们代表被测应用的各种对象。一般在录制/编写脚本时加入库文件,不仅可以在录制编写时进行修改,还可以在运行过程中进行动态修改,以匹配实际对象。
(2)运行时对象(Runtime Object, RO):实际的被测应用对象,是测试执行过程中,TO用来关联的对象。
2.UFT自动化测试识别对象的三个步骤:
(1)封装真实被测对象并转换为UFT对象到对象库
(2)对比对象库中的对象鉴别属性和运行时的真实被测对象的鉴别属性
(3)对比后如果一致,则说明对象成功匹配并可以继续对该真实被测对象进行后续操作,如果两者不一致,则报错,提示对象无法识别
3.三种类型的属性可被UFT用来识别对象:
(1)Mandatory Properties(强制属性)
(2)Assistive Properties(辅助属性)
(3)Ordinal Identifier(顺序标识符):除开强制属性和辅助属性之外,智能识别失败,以及未定义可视化关系标识符的时候才启用。
4.运行时对象不存储在对象库中,因为它们仅在运行会话期间可用。
5.TO属性
(1)GetToProperty:用于取得测试对象的某个属性的值。
(2)GetToProperties:用于取得测试对象的所有属性的值。
(3)SetToProperty:用于设置测试对象的某个属性的值。
6.RO属性
GetROProperty:用于取得运行时对象(实际对象)的某个属性的值。
7.定位与高亮(APP图中是程序,录制的脚本是对象库)
(1)定位:在对象库中显示出该对象的位置
(2)高亮:在程序中显示出该对象的位置
8.默认情况下测试对象都是存储到本地对象库。这些测试对象会关联一个指定的操作,其他的操作都不能使用这些对象。
9.共享对象库包含能够在多个操作中使用的测试对象。此对象库可保存为.str文件。
10.共享对象库添加到测试中是无法编辑的,必须Copy to Local保存测试到本地后进行编辑。如果只单独编辑该共享对象库,要在Object Repository Manager中选择要编辑的对象,点击Enable Editing.
七 关键字驱动测试
1.关键字驱动:指在自动化测试系统中使用关键字驱动脚本技术,是数据驱动脚本技术的逻辑扩展,实现了脚本、业务和数据三者完全分离。
2.三类主要关键字:被操作对象(Item)、操作(Operation)、值(Value)
面向对象的形式表现为 Item.Operation(Value)