本章讲述自动化测试的基础
测试的分类
1.业务导向且支持开发过程的测试
功能测试:测试系统的特性,验收测试定义需求的满足条件,系统的验收测试应发生在类生存环境中,自动化验收测试维护成本高,某些方面地测试手工测试也可,一旦对同一个测试重复多次手工操作,确信不会花太多时间维护,就采用自动化
2.技术导向且支持开发过程的测试
单元测试:单独测试一个特定的代码段,依赖于测试替身模拟系统的其他部分
组件测试:测试更大的功能集合
部署测试:部署应用程序时所用的测试
3.业务导向且评价项目的测试:
这类手工测试可以验证我们实际交付给用户的应用软件是否符合期望,易用性测试是验证应用程序是否能交付价值给用户的最终测试,可以让用户进行beta测试
4.技术导向且评价项目的测试
非功能测试是指除功能之外的系统其他方面的质量,比如容量,可用性,安全性,非功能测试同样重要,对于比较复杂的项目,应该在一开始就建立非功能测试
测试替身
自动化测试的一个关键是在运行时用一个模拟对象代替系统的一部分
哑对象;被传递但不被真正使用的对象
假对象:是可以真正使用的实现
桩:测试中为每个调用提供一个封转好的响应
spy:记录一些关于它们如何被调用的信息的桩模拟对象:在编程时就设定了它预期要接收的调用
现实情况
新项目:做好准备工作,并写自动化验收测试
项目进行中:引入自动化测试最好的方式是选择高价值用例作为起点,对happy path自动化测试
遗留系统:没有自动化测试的系统
集成测试
用于程序模块复杂的交互,应用程序与各种外部系统交互的测试,与组件测试接近
流程
流程优化:
1.在每个迭代开始时,召集所有的项目干系人开个会
2.在用户故事的开发过程中,开发人员和测试人员的紧密合作时保证平稳发布的关键
想到
1.测试不见得自动化就会好,适当采用
2.测试替身为测试提供了很大的便利
疑问
1.beta测试是?
2.happy path是指的什么进程