软件测试的分类
大家好,我是阿娟,来自北京,工作 7 年的软件测试程序媛,现任网易某部门软件测试组长。
本篇文章,给大家分享下常见的软件测试分类,有助于我们更好地理解测试的目标、方法和策略。
一、按是否查看程序内部结构分
一) 黑盒测试
只关注程序的输入和输出,它只是检查程序功能是否按照需求说明书进行实现,也被称为功能测试或者数据驱动测试。
二) 灰盒测试
介于黑盒测试与白盒测试之间的测试,既要像黑盒测试那样关注输出对于输入的正确性,同时也关注内容表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志判断内部的运行状态,比如接口测试属于常见的灰盒测试。
三) 白盒测试
了解到代码的基础上进行测试,主要指全面了解程序内部逻辑结构、对所有逻辑路径进行测试,方法上主要包括单元测试等,也被称为结构测试或逻辑驱动测试。
二、按是否运行程序分
一) 静态测试
是指不运行程序,对程序和文档进行分析与检查;静态测试技术又称为静态分析技术。
二) 动态测试
通过运行程序进行检查、分析程序的执行状态和程序逻辑的外部表现。
三、按阶段分
一) 单元测试
对软件设计的最小单元——模块,进行正确性检验的测试工作,主要是测试模块在语法、格式和逻辑上的错误。
二) 集成测试
要求把通过单元测试的各个模块组装在一起之后所进行的测试 ,通过检查模块间的关联,以便发现与接口相关的各种错误。
三) 系统测试
将已经集成好的软件系统置于实际运行环境中所进行的测试,检验软件是否满足功能、安全、性能等方面的要求。
四) 验收测试
软件产品投入实际应用前或是正式上线前,进行的最后一次质量检验活动,可以是用户方进行验收或是内测(一般是公司内部的员工)。
四、按是否自动化分
一) 手工测试
单纯依靠人力来完成的测试,手动输出测试报告。
二) 自动化测试
借助工具,脚本自动化完成的测试,自动生成测试报告。
五、按测试内容分
一) 功能测试
测试软件各个功能模块是否正确,逻辑是否正确,依据是编写完成的功能测试用例。
二) 接口测试
校验接口的实现逻辑是否符合需求,可以依据编写的接口测试用例。
三) 性能测试
主要测试软件测试的性能,包括负载测试,强度测试,稳定性测试等。
四) 安全测试
对产品进行检验以验证产品是否符合安全需求定义和产品质量标准。
一般有三种方法:静态代码扫描、动态代码扫描、扫描程序中的数据
五) 安装卸载测试
测试产品的安装卸载以及升级是否正常。
六) 兼容性测试
验证应用在不同系统、不同型号的手机或电脑以及不同类型内核的浏览器上的功能兼容性。
七) 渗透性测试
通过模拟黑客攻击来对客户的整个信息系统进行全面的漏洞查找,分析、利用。最后给出完整的渗透报告和问题解决方案。
六、按测试应用类型分
一) web应用测试
针对web应用(浏览器访问)的一类测试
二) app应用测试
针对手机app(安装在手机上)的一类测试
三) pc应用测试
针对PC客户端(安装在mac、linux、win上)的一类测试
四) 小程序测试
针对小程序(安装在微信中)的一类测试
七、其他测试
一) 并发互斥测试
互斥:同一个资源同一时间只有一个访问者可以进行访问,其他访问者需要等前一个访问者访问结束才可以开始访问该资源。
比如同一个用户在不同端去操作同一段数据,应该给出用户友好提醒,再比如场景的同一个帐号是否能在不同端进行登录等。
二) 弱网测试
属于健壮性测试的内容。想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用应用,我们就需要针对这些场景的弱网环境下,验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。
三) 冒烟测试
在正规测试一个新版本之前,投入较少的人力和时间验证基本功能,通过则测试准入。
四) 回归测试
指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
五) 随机测试
根据测试者的经验对软件进行功能和性能抽查。
六) 探索测试
抛弃繁杂的测试计划和测试用例设计过程,根据已有的测试经验和测试思维进行测试,在碰到问题时及时改变测试策略。
七) 文档测试
测试文档的正确性,比如提供了安装卸载文档,确保根据文档能正确完成应用的安装卸载。
八) license测试
这个常见于企业级应用,客户购买产品的用户数,比如企业A购买了1000个用户,企业B购买了2000个用户,要保证企业购买的用户数是正确的。
九) 权限测试
业务逻辑复杂的大型应用中,还会对功能权限做一个专项测试,保证用户使用权限是正确的。
以上就是今天的分享,谢谢你的阅读呀~
