测试类别
什么是软件测试
结合测试人员(或团队)过往的经验、行业知识和专业技能,为尽可能早的发现软件项目潜在的缺陷,对软件项目各阶段成果输出进行验证、确认。通俗说就是把预期结果和实际结果做对比。
测试类别
测试方法划分
从方法来划分可以将测试分为:
- 黑盒测试
- 白盒测试
- 灰盒测试
黑盒测试:通过软件的外部表现来发现缺陷和错误。(不需要看代码)
白盒测试:对软件内部结构进行分析,检测寻找问题。(需要看代码)
灰盒测试:介于黑盒与白盒之间,关注输出与输入的正确性;同时也关注内部表现,只通过一些表征性地现象、事件、标志来判断内部的运行状态。
测试内容划分
从内容来划分可以将测试分为:
- 功能测试
- 性能测试
- 安全测试
- 兼容性测试
- UI/界面测试
- 易用性测试
- 稳定性测试
- APP专项测试
功能测试
是检查测试软件的功能是否与需求说明一致的一个过程。
性能测试
主要是通过自动化测试的工具模拟多种正常、峰值以及异常负载条件来对系统各项性能指标进行测试。主要测试软件的响应时间,例如测试在不同的情况下,软件的响应时间。
性能测试一般有三种测试:压力测试、负载测试、并发测试。压力测试主要测试软件的最大负载量。负载测试的是软件在最大负载量下能够运行多长时间。并发测试是测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题。
安全测试
主要是为了防止黑客入侵所测软件。一般攻击者主要用以下四种方式攻击:渗透、DoS攻击、SQL注入、跨域攻击。
渗透测试从其可能存在的位置对系统进行攻击测试,在真正的黑客入侵前找到隐藏的安全漏洞,从而达到保护系统安全的目的。
兼容性测试
兼容性测试有两个方向一是web、另一个是移动端。web端主要是根据市面浏览器份额从高到低进行测试,主流的浏览器有谷歌、火狐、edge、ie、360、qq、safari。
移动端兼容性测试又分为android和ios两类,android主要是选取不同的android版本、系统版本、屏幕分辨率、屏幕形状综合考虑进行测试,公司通过市场所占份额进行选择性的测试,一般公司提供了部分型号的手机给我们测试,当覆盖度不够时,都是找同事的手机来测一测。ios只要根据不同的评级手机来测试。
UI/界面测试
主要是检查界面好不好看、风格是否一致、布局与配色是否合理。
易用性测试
主要是测试软件好不好用、操作步骤是否会太繁琐、学习成本越低越好。
稳定性测试
检测软件长时间使用是否会不会出现问题。
APP专项测试
对手机应用进行测试了,主要有弱网测试、权限测试、安装卸载更新测试、场景交互测试、资源征用测试、消息推送测试、资源监控、兼容性测试、易用性测试、稳定性测试、UI测试。
弱网测试
主要是模拟软件分别在2/3/4/5/wifi/飞行/热点模式下的表现,不同网络本质区别就是网速不同,所以可以通过软件来模拟。
与传统桌面应用不同,移动应用的网络环境比较多样,而且经常出现需要在不同网络之间切换的场景,即使是在同一网络环境下,也会出现网络连接状态时好时坏的情况,比如时高时低的延迟、经常丢包、频繁断线,在乘坐地铁、穿越隧道,和地下车库的场景下经常会发生。
所以,移动应用的测试需要保证在复杂网络环境下的质量。具体的做法就是:在测试阶段,模拟这些网络环境,在 App 发布前尽可能多地发现并修复问题。
权限测试
主要是测试软件在权限不给的时候,还能否正常的使用其他功能。
安装卸载更新测试
是确保该软件在正常情况和异常情况的不同条件下进行首次安装、升级、完整的或自定义的安装能进行安装
场景交互场景
主要是测试环境有电话短信响铃、听歌、分屏使用、微信语音、前后台切换、不同的应用切换、单手模式
消息推送测试
是测试消息推送是否正常,在关闭开启后,消息推送顺序是否正确。
资源监控
去测试软件在运行时,系统资源的占用。只要是电量、流量、硬盘、内存、cpu等资源。可以使用通过求平均值进行统计。
测试阶段划分
从阶段来划分可以将测试分为
- 单元测试
- 集成测试
- 系统测试
- 验收测试
单元测试
电子元器件就像是软件中的单元,通常是函数或者类,对单个元器件的测试就像是软件测试中的单元测试。代码中的函数、方法、类等等。一般使用白盒测试。不过单元测试一般都是开发自己做。
集成测试
组装完成的功能电路板就像是软件中的模块,对电路板的测试就像是软件中的集成测试。测试不同的模块和模块之间是否正确的连接。主要做接口测试。
系统测试
电视机全部组装完成就像是软件完成了预发布版本,电视机全部组装完成后的开机测试就像是软件中的系统测试。测试的就是软件的整个整体。主要做的测试有功能测试、性能测试、安全测试等等。
验收测试
主要由验收放来做测试,测试人员只是协助别人验收。α测试是指内侧,公司内部的测试人员在模拟实际操作环境下进行的测试。β测试是指公测,请用户来使用体验,找出问题。
测试对象划分
从对象来划分可以将测试分为
- app测试
- web测试
- 物联网测试
- 车联网测试
- 大数据测试
- AI测试
- 小程序测试
测试状态划分
从状态来划分可以将测试分为
- 静态
- 动态
静态地检查程序代码、界面或文档中可能存在的错误,借以发现编写的程序的不足之处,减少错误出现的概率。
实际运行被测程序,输入相应的测试数据,检查实际输出记过和预期结果是否相符的过程;并分析运行效率、正确性和健壮性等性能。
其他
- 回归测试
- 冒烟测试
- 埋点测试
- MOCK/打桩测试
回归测试
修改旧代码后,重新测试以确认没有引入新的错误或导致原代码产生错误
冒烟测试
作为测试前的小测试,检查软件是否具备可测性。这种测试强调程序的主要功能进行的验证,而不会对具体功能进行更深入的测试。
埋点测试
通过开发所预设的代码来测试某项功能
MOCK/打桩测试
都是用来代替真实代码的临时代码,起到隔离和补齐的作用。