为进一步加强Python知识扩展和学习,在朋友的推荐下选择了<<Selenium2自动化测试实战>>,作者胡志恒,基于Python语言实现,以实例的方式详细讲解WebDriver的类库体系,对于目前阶段的我来说很适合,本着"把书读厚再把书读薄"的思想开始学习!
自动化测试基础
1. 软件测试分类
1) 根据项目流程阶段划分软件测试
单元测试:模块接口、局部数据格式、路径、错误处理、边界条件测
集成测试:将各个模块进行整合,判断整体功能是否达到预期要求,全局数据结构是否有问题,单个模块的误差积累是否会被放大
系统测试:功能测试、性能测试、稳定性测试、安全测试、兼容测试
验收性测试:根据项目合同进行各种确认测试
2) 白盒测试、黑盒测试、灰盒测试
黑盒测试:着眼余程序的外部结构,不考虑内部逻辑,主要对软件功能和软件UI进行测试,只关心软件的输入和输出
白盒测试:按照规格说明书对程序的内部结构进行测试
灰盒测试:介于黑盒和白盒之间,既关注内部表现也关注输入输出
3) 功能测试与性能测试
功能测试:检查实际的功能是否符合用户的需求。功能测试又可可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等
性能测试:通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试软件的性能主要有时间性能和控件性能两种,时间性能指指令的响应时间,空间性能反映在硬件资源、cpu、内存、带宽消耗等
4) 手工测试与自动化测试
手工测试:需要拥有一定的业务知识和基本测试方法的专业的测试人员通过键盘鼠标等输入一些参数查看返回的结构是否符合预期结果,在目前的测试领域,手工测试仍然是无法代替的一种测试方法
自动化测试:功能自动化测试和性能自动化测试,通过测试工具(或框架)录制/编写测试脚本,对软件进行测试
5) 冒烟测试、回归测试、随机测试、探索性测试和安全测试
2. 分层的自动化测试
自动化测试的重要性不断提升随着敏捷的热度不断提升,持续集成、持续交付作为敏捷的核心实践之一,越来越受到重视。然而大家很快发现,自动化测试是持续集成、持续交付的灵魂,没有有效的自动化测试保证,持续集成和持续交付就仅仅是一个无用的躯壳了。
分层自动化测试倡导的是从黑盒(UI)单层到黑白盒多层的自动化测试体系,从全面黑盒自动化测试到对系统的不同层次进行自动化测试
UI(UI界面层):UI自动化测试、JS自动化测试
Service(业务逻辑层):模块接口测试、web接口测试
Unit(数据处理层):单元测试、Code Review
什么样的项目适合自动化测试?
a. 任务测试明确,不会频繁变动
b. 比较频繁的回归测试
c. 软件界面稳定,变动少
d. 需要在多平台上运行的相同的测试案例、组合遍历性的测试,大量的重复任务
e. 软件维护周期长
f. 具备大量的自动化测试平台
g. 测试人员具备较强测编程能力