1、测试策略
就像工厂的质检员一样,把机器生产的残次品筛选出来,留下合格的产品。你看,这机器生产的产品都会残次品,更何况我们写的代码,软件测试就是产品在使用者使用之前进行质检,尽量做到交付可靠的软件
2、自动化测试
由于手动测试的效率太低,且无法进行全天候的测试,所以我们使用自动化测试的方式。
自动化测试的四个阶段分别为设置环境、执行测试、验证测试结果以及清除测试环境,所以一般测试或有一个测试类进行初始化环境,在执行完所有的测试方法后删除测试环境和不必要的数据。
3、使用模拟和桩进行测试
被测系统在运行过程中时常会依赖另一些服务。依赖的麻烦在于它们可能把测试复杂化,并减慢测试速度。解决方案是用测试替身来消除被测系统的依赖性。测试替身是一个对象,该对象负责模拟依赖项的行为。
有两类测试替身:桩(stub)和模拟(mock)。术语桩和模拟的行为略有不同,但通常可以交换使用。
桩:是一个替身测试,用来代替依赖项来向被测系统发送调用的返回值。
模拟:也是一个替身测试,用来验证被测系统是否正确调用依赖项。
4、测试的不同类型
l 单元测试:测试服务中最小的部分,比如函数、类
l 集成测试:验证服务是否可以和基础服务(数据库)或其他的应用服务
l 组件测试:单个服务的测试
l 端对端测试:整个系统客户端、服务端之间的测试
在开发过程中,对一些重要的函数、类进行单元测试,然后进行集成测试,紧接着是组建测试和端对端测试。
测试它还有两种分类和四个象限
两个分类:
l 面向业务
l 面向技术
4个象限:
Q1协助开发/面向技术:单元和集成测试
Q2协助开发/面向业务:组建和端对端测试
Q3寻找产品缺陷/面向业务:易用性和探索性
Q4寻找产品缺陷/面向技术:非功能性验收测试,性能测试等
4个象限的关系如下图:
4个测试所占比例
根据下图测试金字塔可以看出,单元测试因为它的快速、可靠、低成本占据测试比例的最大位置,其它的依次递减,最后到端对端的测试,由于它的缓慢、脆弱、高成本导致它所占测试比例最少