应用场合
自动化测试
明确的特定的测试任务 回归测试,压力测试,性能测试 相对稳定且界面改动比较少的功能测试 人工容易出错的测试工作 周期性长的软件产品开发项目,项目时间压力不大 被测试软件具有良好的可测试性 拥有运行测试所需的软硬件资源 拥有较强编程能力的测试人员
手工测试
一次性项目或周期很短的项目的功能测试 需求不确定或需求变化比较快 适用性测试或验收测试 产品功能设计或界面设计还不成熟 没有适当的测试过程,测试内容和测试方法不清晰 项目时间压力较大 团队缺乏编程能力的测试人才 缺乏软硬件资源
测试工具的分类
单元测试工具,包括静态测试工具和动态测试工具; 功能测试工具,包括web功能测试工具,windows客户端功能测试工具; 性能测试工具,包括负载测试工具、压力测试工具 测试管理工具,包括缺陷、测试用例和计划等管理工具 其他测试工具,如安全性测试,多媒体测试
单元测试工具
xUnit系列;Mock Object工具(强调测试对象的独立性);代码扫描工具
功能测试工具
从GUI对象识别入手,模拟鼠标和键盘的操作和验证界面元素的实际显示结果
脚本技术
线性脚本 按键精灵 MouseMove MouseDown WinWait 结构化脚本 类似于结构化设计的程序,具有各种逻辑结构 关键字驱动脚本 脚本用一个简单的表格来表示,Selenium 数据驱动脚本 将测试脚本(执行步骤)和测试数据进行分离, QTP
自动化测试的实现原理,首先要针对不同的类型来区别对待。
针对静态测试,主要依赖于形式化的方法,如形式化描述或形式规范,即实现对程序“做什么”的数学描述,用具有精确予以的形式语言来描述编程语言的规则,然后读入程序,检查代码是否符合规则。
针对动态测试
1 识别对象,包括调用windows API来识别GUI对象,以及使用其他工具(IE DOM Inspector和firebug)来识别web的DOM对象 2 模拟操作,也是能捕获鼠标和键盘的操作,或者通过调用API直接操作所识别的对象。 3 通过自动化比较技术,验证实际获得的测试结果和事先定义的期望结果是否一致,如果不一致,将记录所执行的具体日志,报告错误。比较技术包括静态比较和动态比较,简单比较和复杂比较,敏感性测试比较和健壮性测试比较,比较过滤器。
PerformanceRunner V1.1 性能测试工具MobileRunner V1.1 APP测试工具/手机测试工具TestCenter V5.0 测试管理工具