测试基础
测试分类
软件测试有不同的分类方法.
按照软件产生的阶段划分
分为: 单元测试, 集成测试, 系统测试, 验收测试.
以造车为例, 单元测试就是测试最小的部件, 如螺丝, 测试这些零部件是否符合规格.
集成测试就是将这些单个的零件进行组装, 然后进行测试.
车组装完了之后, 就要作为整体进行测试, 比如功能和外观, 整体测试就是系统测试的工作内容.
交付客户之后就是验收测试, 所以验收测试主要就是客户的测试. 比如游戏可以先在公司内开一个服, 让公司内的人先玩, 然后开一个测试服, 让一部分人玩, 让这些玩家进行测试找 bug.
从代码角度来说, 单元测试是针对程序源代码进行测试, 一般都是测试最小的代码单元也就是方法/函数, 也可以说是针对最小功能来测试, 单元测试一般都是开发者自测.
集成测试是针对模块与模块之间功能交互进行测试, 又称为组装测试, 接口测试. 集成测试一般都是由专业的测试人员来完成.
系统测试是整个系统的完整的测试, 包括功能和非功能, 同样是由测试人员来完成.
验收测试是把系统给用户使用, 以用户代码为主验证项目是否符合预期需求, 所以是由用户来完成.
按照代码可见度划分
黑盒测试
灰盒测试: 模块与模块之间的调用接口的通道是可见的. UI 不可见或者只能见到部分.
白盒测试: 测试的对象就是源代码. 比如要验证覆盖率.
站在按阶段划分的角度, 黑盒测试属于系统测试, 灰盒测试属于集成测试, 白盒测试属于单元测试.
其他测试
冒烟测试
冒烟测试:对核心功能的验证.
作用:保障提测内容具备可测性.
开发编码到软件测试中间的细节:
开发编码完成后, 进行自测, 自测通过后, 通知测试你们可以开始测试了, 就是提测, 测试要做的第一件事情就是冒烟测试, 对程序的主功能进行验证, 确定开发提交过来的程序是具备可测性的, 避免投入大量人力之后发现好多功能都不好使. 冒烟测试如果不通过, 就打回开发, 让开发自己先去修复以下, 如果冒烟测试通过了, 就开始全面测试.
回归测试
回归测试:对已修复 bug 或者迭代更新后对已测内容再次测试.
如果是 bug 的话又叫做 bug 回归, 主要就是确认 bug 被修复了.
如果是迭代后进行测试, 主要是为了确认新功能对旧功能是没有影响的, 所以测试旧功能时最少要测试与新功能有关联的旧功能.
开发在修复 bug 的时候, 可能会引发新的 bug.
质量模型
通过学习质量模型, 从而知道一个软件应该从哪几个维度来衡量它, 测试它.
什么是质量模型?
软件的质量模型就是衡量一个软件质量的维度. 总共有 8 个维度.
每一个维度都要衡量它, 测试它, 才能保证一个软件的优秀程度.
功能性
功能性: 软件是否具备某方面的能力.
功能性测试关注功能个数是否正确以及功能是否正确实现.
功能测试一般都是基于单用户来实现的. 如果是多用户则涉及到性能测试.
性能
性能测试主要关注的是多用户同时使用能否满足要求 (时间、资源).
兼容性
在不同的设备/平台上能否正常使用.
易用性
易学、易用、用户粘性好. 主要是基于用户角度.
带有较多主观色彩.
安全性
敏感数据存储/传输安全.
安全性主要考虑两点: 数据传输的安全, 数据存储的安全. 简单来说就是传输和存储都要进行加密.
可靠性
长时间运行稳定,不出现异常.
可移植性
应用系统升级/数据迁移方便.
可维护性
运行过程出现问题维护操作是否方便, 是否方便迭代增加新功能.
比如写代码的时候没有加注释, 后期维护时发现很多地方看不懂.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术