今天听了极客学院一个老师讲的自动化,觉得讲的很好,总结下:
一、测试分类
以上分类几乎囊括测试所有类型,其中除了可用性测试,其他测试或多或少都可以使用自动化测试来实现。
二、自动化测试VS人工测试
首先明确下测试的一般流程:
第一步:测试分析(需求分析,文档分析)
第二步:测试设计(测试方案设计,测试平台设计,测试框架设计,测试用例设计等)
第三步:测试落地(方案/用例的具体细节落地)
第四步:执行用例(自动化或人工)
那么可以看出:自动化测试/人工测试只是测试的执行手段不同而已,测试的重点应该是在前期的分析和设计上,而不是一味的把重点放在执行上,没有谁优于谁,一切都是为了产品质量的保障。
自动化测试的优势&劣势:
且自动化测试更多适用于回归测试。
在寻找产品缺陷上,自动化测试不如手工测试;在纯技术性要求上,自动化测试优于手工测试;在对产品稳定性的要求上,手工测试低于自动化测试。
在项目中针对具体的需求,可实际考察自动化测试是否适用于当前项目。
三、自动化测试分类
基于代码的自动化测试
白盒测试基本流程:
1.定义期望结果
2.运行被测对象(调用被测对象或单元)
3.对比期望结果与实际结果
4.得出测试结果
5.迭代运行,保证代码质量
优点:易于实施和控制,更容易快速看到效果,结合TDD提高代码质量
缺点:要求有较强的编码能力和对被测代码的理解,同时需要流程和团队的配合;大量的测试驱动和测试桩程序让研发团队望而却步
解决方案:但是如果有完善的白盒测试,后期的测试工作会轻松很多,基础测试基本不会有问题,只需要关注接口直接的集成测试
建议多从接口,而不是单纯的代码级去做自动化。
基于协议的自动化测试
流程:
1.规划接口规范(接口名称及参数)
2.开发测试驱动程序
3.运行
4.查看测试结果(成功或失败)
5.迭代运行第3、4步
6.直到所有测试用例成功