软件测试一般可以划分为:
按阶段、逻辑、是否运行、是否自动化、其他测试划分。
1、按阶段划分(分为单元、集成、系统、验收)
(1)单元测试
概念:对最小单元进行检测
应用场景:测试某个函数实现的功能是否正确
(2) 集成测试
概念:在单元测试的基础上,将所有模块按照设计要求组装成系统,进行测试
原因:实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。
(3) 系统测试
概念:系统测试是将软件和操作系统/硬件看作一个整体,在实际运行环境下进行测试。
举例:百度在浏览器和手机上都能打开那么根据不同环境,我们都需要进行测试
(4)验收测试
概念:对完成的系统是否满足最开始的需求进行验证
分类:
●按用户对象划分
■项目验收:甲方发起验证乙方系统是否满足甲方业务需求
■产品验收:产品经理发起,验证自研系统是否满足用户需求
●按阶段划分
■a测试(内测版本):只有公司内部人员参与
■β测试(公测版本):由用户完成
2、按是否考虑代码逻辑划分软件测试(黑盒、白盒、灰盒)
(1)黑盒测试
概念:测试时,测试人员不用考虑盒子里的逻辑结构,只需检查程序的功能是否符合需求文档
分类:
●功能测试:检查产品功能是否满足需求
●界面测试:也叫U测试,检查页面元素是否符合U|设计,页面是否美观
●易用性测试:用户体验
●性能测试:模拟用户场景,测试系统的各项性能指标,查看是否满足需求
(2)白盒测试
概念:与黑盒相反,这种方法是把测试对象看作-个透明的盒子,测试时,测试人员会对程序的所有逻辑路径进行测试,检验每条路径是否都能走通
测试依据:代码规范,详细设计等
(3)灰盒测试
概念:介于黑白盒测试之间,了解一部分代码逻辑后,重点验证程序的功能
3、按是否运行划分
(1)静态测试
概念:指不运行被测程序本身,检查文档或源程序的语法、结构、过程等
测试对象:
●文档
需求文档
各类设计文档
●源程序
(2)动态测试
概念:指通过运行被测程序,进行测试
测试对象
●源程序
●软件
(3)按是否自动化划分
手工测试
●手工的方式去执行测试
自动化测试
●需要借助工具或代码去执行测试
4、其他测试
(1)冒烟测试
●针对最基本的功能或者流程进行的测试
●它的主要目的是在软件发布前快速验证系统的关键功能能否正常运作
(2)回归测试
概念:回归测试是指修改了代码后,重新进行测试:重新执行已经通过的测试用例,以检测产品中是否出现了新的问题或错误的测试过程