软件测试:验证软件的功能是否满足用户的需求。
软件测试目的:
- 为了发现程序中存在的代码或业务逻辑的错误
- 为了检验产品是否满足用户需求
- 为了提高用户的体验
软件测试分类
按测试阶段划分
单元测试:粒度最小,按照一个单元,一个模块,一个功能去测试,一般由开发小组采用白盒方式进行测试,主要测试单元是否符合“设计”;
集成测试:将多个模块合在一起测试,介于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式进行测试,既要验证设计,又要验证需求(多个单元组成,单元与单元之间的调用与被调用,参数传递、值传递);
系统测试:粒度最大,一般又独立测试小组采用黑盒方式进行测试,对整个系统的各个模块,流程,细节等进行完整的测试,主要测试系统是否符合“需求规格说明书”;
验收测试:与测试系统相似,主要区别是测试人员不同,验收测试由用户执行。
按技术进行划分(是否覆盖源代码)
白盒测试:针对代码测试,了解程序的设计原理,逻辑;
黑盒测试:针对功能,界面、易用性进行测试,不考虑其实现细节;
灰盒测试:既要测代码,还要测试界面和功能
是否运行
静态测试:根据需求文档,界面样式,有误错别字;不运行程序去测试;对程序和文档进行分析和检查;
动态测试:运行程序去测试,测试流程、逻辑等
其他
回归测试:程序原本有问题,提交开发更改,开发改完后,程序会更新,测试要检查这个改完的功能是不是正常的,并且有没有影响到其他的功能
冒烟测试:开发完成程序之后,要交给测试进行测试,冒烟测试进行基础功能测试,看主流程有没有问题,有没有严重问题,没有则进入正式测试,如果有则打会开发修改;不测试细节
随机测试:探索性测试,选取重要的功能模块进行随机测试
验收测试:α测试(Alpha是内测版本,公司内部自己在开发环境或者模拟实际操作环境下进行测试,是在受控制的环境下进行的测试),β测试(Beta测试是公测版本,交给客户在实际使用环境下进