软件测试有哪些类别?这似乎是一个很easy的问题,但事实如此吗?
小酋今天打算对这些测试类别做一个梳理:
测试方法划分
黑盒测试 : 通过软件的外部表现来发现缺陷和错误。
白盒测试 : 对软件内部结构进行分析,检测寻找问题。
灰盒测试 : 介于白盒与黑盒之间,关注输出对输入的正确性;同时也关注内部表现,只通过一些表征性的现象、事件、标志来判断内部的运行状态。
注意:
①黑盒的意思与白盒相对,系统在边界处开始对我们不可见了。盒里到底有啥我们不关心,我们把这个盒抽象成一个点,这个点完成了一个算法,将输入转换成输出。我们关注的是,所有的输入都被按照规范转换成了正确的输出。
②所谓白盒,是相对于黑盒而言的。盒是指我们规定的系统边界。这个边界是为了方便测试而对系统进行的划分。白盒就是盒子对你是透明的。也就是说,系统的边界虽然还在,但是你可以看到系统内部的执行逻辑。
按测试阶段划分
单元测试 : 又称模块测试,对程序模块进行检验。
冒烟测试 : 冒烟测试就是在每日build(构建版本)建立后,对系统的基本功能进行简单的测试。这种测试强调程序的主要功能进行的验证,而不会对具体功能进行更深入的测试。
集成测试 : 又称组装测试或联调测试。检验程序单元的接口关系;模块集成后功能正确性验证。
系统测试 : 在尽可能真实的系统环境下,确认系统是否达到目标要求,对集成的硬件,软件系统进行测试。
验收测试 : 按照项目任务书或合同,供需双方约定的验收依据文档进行的整个系统的测试与评审,决定是否接受或拒绝系统。
回归测试 : 指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
按测试内容划分
功能测试 : 功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程。
性能测试 : 通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
易用性测试 : 考察评定软件的易学易用性,各个功能是否易于完成,软件界面是否友好等方面进行测试。
兼容性测试 : 测试软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络等环境中是否能够很友好的运行的测试。
安全测试 : 对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。
安装测试 : 确保该软件在正常情况和异常情况的不同条件下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。
国际化测试 : 测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域中都能正常运行。
注意:实际按测试内容划分有更多的测试类别(如安装测试对应的卸载测试),小酋这里就不一一列出了。
测试所属方划分
α测试 : 公司内部的测试人员在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。
beta测试(也可以叫:灰度测试、β测试或UAT) : 用户在实际使用环境下进行的测试。确保符合用户方的预期。
CMMI过程域划分
验证(Verification)测试 : 验证软件(系统)的正确性、完整性、安全性等。验证确保“软件把事做对了”。
确认(Validation)测试 : 确认满足用户的需求或期望。而确认确保“软件做了对的事”。
是否执行程序划分
静态测试 : 静态地检查程序代码、界面或文档中可能存在的错误,借以发现编写的程序的不足之处,减少错误出现的概率。
动态测试 : 实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程;并分析运行效率、正确性和健壮性等性能。
上面的测试类别你都清楚吗?其中有不清楚的地方,欢迎给小酋留言哦~
(微信扫一扫,有更多精彩等着你哦~)