测试基础 【Testing Career】关于测试方法的思考和学习

thinker543 · 2023年02月14日 · 2306 次阅读

1 简介

测试对象不同,测试技术也不同,本文总结常用的测试方法,参考自己的学习资料和个人工作经验,总结总结自己的学习,落实到文档中。

2 测试技术

黑盒测试和白盒测试

黑盒测试:以数据驱动的测试或者输入/输出驱动的测试。测试目标与程序的内部机制和结构完全无关,将重点集中放在发现程序不按其规范正确运行的环境条件。测试数据来源于软件规范。常用方法:等价类划分 、边界值分析、因果图分析、错误猜测

白盒测试:以逻辑驱动的测试,允许我们检查程序内部结构。这种测试策略对程序的逻辑结构进行检查,从中获取测试数据。常用方法:语句覆盖、 判定覆盖、条件覆盖、判定/条件覆盖 、多重条件覆盖

黑盒测试,数据驱动,不关心测试对象的内部结构,不对代码做改变的,通过对设计输入数据,将其注入到测试对象提供的输入入口,然后获取输出结果,与预期结果进行比对。这种方法更倾向于模拟用户输入的过程,那么测试对象如何向用户提供数据输入的入口呢?移动端,PC 端等界面是一种常用的方法。以手机上的 APP 为例,用户在手机上对这个 app 的任何操作,都是输入数据,比如安装 app,启动 app,设置禁止 app 的通知设置,浏览筛选 app 上信息,后台终止 app 运行等等。

白盒测试,逻辑驱动,关注程序的内部结构,针对于代码的检查,可以使用静态分析和动态分析的方法。

静态分析是指在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术,可以通过组织人员进行代码审查(code review),使用SonarCube等代码扫描发现 bug。

动态分析是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能的技术。通过分析写好的程序,针对性的运行程序都属于动态分析方法,单元测试,接口测试等。

所以说,我理解:所有的测试手段,都可以用黑盒还是白盒进行划分。

单元测试

单元测试是一段代码,这段代码调用一段工作单元并检验该工作单元一个具体的最终结果。如果最终结果的假设是错的,那么这个单元测试失败。一个单元测试的范围可小到一个方法,大到多个类。

接口测试

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

接口有不同的类型,使用不同的传输协议,主要检查业务逻辑、参数、异常处理等,对接口的检查不只要考虑接口本身,接口之间的依赖。

性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能指标有吞吐量、响应时间、CPU 负载、内存使用等,可以通过性能指标分析系统性能状态,从而发现系统瓶颈,寻找解决方案。

冒烟测试

每个版本变更后,在正式测试前,对软件系统进行的一次简单验证性测试。一般在工作中来说,通过测试核心功能是否通过来决定是否进入到一轮测试流程。

回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。当多名开发者同时开发各自的功能,多次到代码提交最终 merge 到 master 分支,代码的修改是否会互相影响,是否会影响原有功能,需要回归功能去确认。

UI 测试

界面测试,即 UI 测试,测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。倾向于客户端测试。

自动化测试

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。根据测试金字塔,单元测试、接口测试、UI 测试的 ROI 由高到低。市面上有很多自动化测试框架,如下图所示:

3 我的想法

在软件质量保障的过程中,针对于不同的测试对象,选择使用的测试方法,也是要提高的方向。

参考:《软件测试的艺术》
《单元测试的艺术》
《2021 接口测试白皮书》
https://blog.csdn.net/weixin_67553250/article/details/123500396
https://www.jianshu.com/p/36e3cdee3714
https://blog.csdn.net/be_racle/article/details/126720381

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册