软件测试分类
测试对象:程序、数据、文档
按阶段划分
单元测试
一般由开发人员测试各模块得代码
集成测试
一般由开发人员测试各模块之间接口和数据的正确性
系统测试
测试人员,根据测试用例,进行完整的系统测试
验收测试
用户对软件进行验收
Alpha测试:把用户请到开发方进行软件的测试,测试环境受开发方控制看,测试人不多,测试时间比较集中
执行者:测试人员、用户、公司内部人员
beta测试:测试环境不受开发方控制,测试人比较多,测试的时间不集中
两者的最大区别:
- 测试场所不一样
- 一般先做Alpha测试,再做beta测试
按技术划分(是否查看代码划分)
黑盒测试:只需要关注外部的输入与输出,不需要关注程序内部的逻辑
白盒测试:需要关注内部逻辑具体实现,不需要关注外部的输入与输出
灰盒测试:需要关注外部的输入与输出,也需要关注内部逻辑的具体实现(两者都需要关注)
按被测对象是否运行划分
动态测试:运行被测系统而进行的测试
静态测试:不需要运行被测系统而进行的测试(界面检查、文档检查、代码走查)
按不同的测试手段划分
手工测试(点点点)、自动化测试(工具、代码)
按测试包含的内容划分
功能测试:验证软件的业务功能是否符合需求
界面测试:被测系统的界面与原型图是否一致
安全测试:对被测系统的安全进行测试(sql注入)
兼容性测试:被测系统在不同的测试环境下是否正常
易用性测试:被测系统的各个功能是否操作方便、是否容易理解、是否容易2上手
性能测试(包括负载测试、压力测试):某个特定的时间,用户数量剧增,软件是否正常
其他测试
冒烟测试:在正式测试前对主要核心功能进行的测试,冒烟测试一般可能是开发或者测试主管来负责
回归测试:开发对存在问题的功能进行修改后,再一次进行的测试
探索性测试/自由测试:根据自己的项目经验而进行的随意测试(测试思维)