一、单元测试
单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试
测试阶段:编码后
测试对象:最小模块
测试人员:白盒测试工程师或开发工程师
测试依据:代码和注释+详细设计文档
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
比如说在商店买东西时,需要扫码付款,如果使用支付宝付款,那么正常情况下就应该用支付宝去扫描商家的支付宝收钱码进行付款而不是微信收钱码。那么要是出现异常情况的话,比如用支付宝扫了微信收钱码还会弹出支付界面吗,又或者是在无网情况下扫码会出现什么界面呢? -> 进行错误处理测试
总的来说,单元测试是为了验证相关人员所编写的功能模块代码实现了正常情况下该实现的功能,也对其它任何可能出现的缺陷做了相应正确的处理。单元测试完成之后,通常会发现大量bug,然后开发人员对其作出处理,这样可以为后期维护代码降低代价。
二、集成测试
集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。
测试阶段:一般单元测试之后进行
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师
测试依据:单元测试的模块+概要设计文档
测试方法:黑盒测试与白盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
比如说逛淘宝后需要买东西,那么在提交订单后一般会弹出确认付款界面让我们付款,我们就需要测试在点击提交订单后是否会出现确认付款界面,如果出现了这个界面,那么是否可以支付成功,这个过程就相当于在测试淘宝提交订单这个接口与付款这个接口是否能够很好地配合工作。
三、系统测试
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)
测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
还是在淘宝上买东西的例子,如果刚开始是在华为手机上测试通过了,那么换成小米手机或是苹果手机呢?又或者是换成电脑呢?提交订单后还会出现确认付款界面吗,能正常调用支付宝付款接口进行付款吗?在电脑上付款的话是不是会比手机慢呢或者不安全呢? 如果发现不能调用支付宝付款接口进行付款,那么在修复了这个bug之后会不会引进新的bug呢?【比如提交订单后连确认付款的界面都不见了】这些都是系统测试需要做的事情。
四、验收测试
验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买者展示该软件系统满足原始需求。
测试阶段:系统测试通过之后
测试对象:整个系统(包括软硬件)。
测试人员:主要是最终用户或者需求方。
测试依据:用户需求、验收标准
测试方法:黑盒测试
测试内容:同系统测试(功能…各类文档等)
这个阶段主要是依据用户的需求和验收标准来测的,由用户进行测试,测试所有的功能是否符合他们的预期等等