自动化测试 手工测试

应用场合
自动化测试
  • 明确的特定的测试任务
  • 回归测试,压力测试,性能测试
  • 相对稳定且界面改动比较少的功能测试
  • 人工容易出错的测试工作
  • 周期性长的软件产品开发项目,项目时间压力不大
  • 被测试软件具有良好的可测试性
  • 拥有运行测试所需的软硬件资源
  • 拥有较强编程能力的测试人员


手工测试
  • 一次性项目或周期很短的项目的功能测试
  • 需求不确定或需求变化比较快
  • 适用性测试或验收测试
  • 产品功能设计或界面设计还不成熟
  • 没有适当的测试过程,测试内容和测试方法不清晰
  • 项目时间压力较大
  • 团队缺乏编程能力的测试人才
  • 缺乏软硬件资源



测试工具的分类
单元测试工具,包括静态测试工具和动态测试工具;
功能测试工具,包括web功能测试工具,windows客户端功能测试工具;
性能测试工具,包括负载测试工具、压力测试工具
测试管理工具,包括缺陷、测试用例和计划等管理工具
其他测试工具,如安全性测试,多媒体测试

单元测试工具
xUnit系列;Mock Object工具(强调测试对象的独立性);代码扫描工具
功能测试工具
从GUI对象识别入手,模拟鼠标和键盘的操作和验证界面元素的实际显示结果

脚本技术
  • 线性脚本
  • 按键精灵 MouseMove MouseDown WinWait
  • 结构化脚本
  • 类似于结构化设计的程序,具有各种逻辑结构
  • 关键字驱动脚本
  • 脚本用一个简单的表格来表示,Selenium
  • 数据驱动脚本
  • 将测试脚本(执行步骤)和测试数据进行分离, QTP


自动化测试的实现原理,首先要针对不同的类型来区别对待。

针对静态测试,主要依赖于形式化的方法,如形式化描述或形式规范,即实现对程序“做什么”的数学描述,用具有精确予以的形式语言来描述编程语言的规则,然后读入程序,检查代码是否符合规则。
针对动态测试

    1 识别对象,包括调用windows API来识别GUI对象,以及使用其他工具(IE DOM Inspector和firebug)来识别web的DOM对象
    2 模拟操作,也就是能捕获鼠标和键盘的操作,或者通过调用API直接操作所识别的对象。
    3 通过自动化比较技术,验证实际获得的测试结果和事先定义的期望结果是否一致,如果不一致,将记录所执行的具体日志,报告错误。比较技术包括静态比较和动态比较,简单比较和复杂比较,敏感性测试比较和健壮性测试比较,比较过滤器。

猜你喜欢

转载自xace.iteye.com/blog/578426