软件测试之如何测试数据?
Time will tell.
闲言
大部分类型的测试都需要去准备测试数据。
- 手工测试:一些基础数据,比如配置数据等等是需要去准备的;
- 自动化测试:基础需要准备,现有数据,动态运行时产生的数据是需要准备的;
- 性能测试:跟自动化测试差不多;
这里就牵扯到了一些关于数据的概念了。
测试数据的分类
1、基础数据,比如一些内容管理系统会配置站点的标题,友情链接之类的基础配置数据;
2、存量数据,也就是现有数据。比如在测试一些电商站点的时候会提前插入一些商品信息,类目信息物流信息等;
3、动态数据,也可以叫做session数据。比如在测试电商站点的发布商品功能的时候,往往会去创建一些新的商品。
我们可以想象到,基础数据其实可以比较容易的跟生产环境保持一致。测试环境的存量数据会比线上环境要少,测试环境的动态数据可能不会像线上环境那样真实。
这里就需要讨论测试数据的量级和真实性的问题了。
测试数据的量级
大部分情况下,测试数据的量级是没有产生环境多的。所以测试数据可以是真实数据的子集。
如果有类生产环境或预发布环境的话,可以尽量保持跟线上数据相当的量级。这样一些测试环境不好测出来的由于数据量导致的问题可以在预发布环境测出来。
测试数据的真实性
我们测试环境的数据往往跟真实用户产生的数据是有差异的。比如测试论坛系统时,我们在帖子里的贴图可能往往就那么几张,尺寸也是恰到好处,而线上用户的贴图可能是五花八门,从而导致意想不到的问题。
如何准备基础和存量数据
基础和存量数据与线上环境越一致,测试中发现问题的概率可能就越高。一般来说,可以有下面的策略:
1、全量+脱敏策略
直接定期把线上的数据做脱敏,导入到测试环境。这里脱敏是必选,数据泄漏导致的问题严重程度往往比普通的线上bug要严重得多。
2、定量+脱敏策略
只上一些线上数据,比如只在线上拉1000个商品,1000个用户信息,然后做脱敏。这里技术实现难度会比较高,毕竟要把关联表理顺。
3、爬虫策略
如果是新项目/产品的话,线上没有存量数据可以导,那么可能要去友商那里爬一些数据,导到测环境做测试。比如做一个旅游站点,开始的时候是没有用户的游记的,这时候就要去类似站点爬一点来测试了。
4、生成动态数据
如果线上没有数据,友商也没有的爬,那么就要人肉或者自动化的方式去产生一些数据了。系统简单的话可以用sql去跑,复杂点的话可能要调用接口或者用自动化的方式去生成。实在没辙的时候也可以手动去造一些数据。
关于动态数据
大家在做自动化或者接口测试后往往会大量的去产生动态数据。那么问题就来了。
这些数据存在哪里?什么意思呢?如果我们需要用自动化的方式去创建一个商品,那么商品的信息,图片地址该放在哪里呢?其实这是个持久化的问题了。
- 放文件里。文件格式有很多可以选的,比如xml/csv/json/yaml等。不过不推荐excel,毕竟是私有格式,没有太强的扩展性。而且excel一升级,你的解析代码和库也可能要跟着改一次,嗯,强烈不推荐了。
- 放数据库里。爬一些商品的信息存到数据库里,然后读数据库也是很好的办法,还能熟悉一下sql的用法,面试经常问到,另外可以用数据库的事务机制来清理测试数据。
- 在代码里动态生成。比如动态随机生成用户的姓名啊性别和年龄之类的。
数据生成之后就面临着一个清理的问题。清理问题实际上数据生命周期的问题,测试数据应该有下面一些生命周期:
- 短期数据。用例完了就删掉的数据,一般线上做性能测试的数据都是这样的短期数据。
- 长期数据。用例跑出来的数据放在那里也没事,可以一直存在。这种数据太多有时候会影响测试环境的性能。
自动化测试跑出的数据建议做短期数据,跑出来想办法清掉,因为自动化跑的频率其实可以很高,每次都产生一堆数据的话数据的量级可能会在短期变得很大,对测试环境的性能造成影响。
以上是一些个人的浅显的看法,肯定有很多不成熟的地方,欢迎大家评论。
絮叨
对面试题、软件、接口、自动化测试感兴趣可以加入我们175317069一起学习喔,群内会有不定期测试资料链接发放。
喜欢的话,欢迎【评论】、【点赞】、【关注】礼貌三连。
Time will tell.(时间会证明一切)
软件测试之如何测试数据?相关推荐
- 全程软件测试之测试需求分析与计划
全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计 ...
- 软件测试之性能测试面试题合集
软件测试之性能测试面试题合集 1.描述一下你们公司的性能测试流程? 1)分析性能需求(用户使用最频繁的场景进行测试),确定性能指标(例如:事务通过率100%,top99%是5秒,最大并发是2000,C ...
- 《Google软件测试之道》- Google软件测试介绍
<Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试 2 角色 3 组织结构 4 爬.走.跑 5 测试类型 相关链接 与 ...
- 《微软的软件测试之道》读书笔记 之 结构测试技术
<微软的软件测试之道>读书笔记 之 结构测试技术 2014-07-18 我们需要结构测试吗? 微软的一项试验说明了结构测试的在代码覆盖中起到的效果: 超过3000名测试员参与了这项实验,每 ...
- 软件测试之语音识别(ASR)测试
软件测试之语音识别(ASR)测试 **写在前面:测试不是一种目的,而是一种保证软件质量的手段** 一.语音识别(ASR)评估指标 在测试语音识别的过程中,衡量识别内容的准确性,一般通过如下指标进行评估 ...
- 软件测试之独步武林系列(一)
软件测试之独步武林系列(一) 开篇 风吹过,卷起了漫天红叶. 剑气袭人,天地间充满了凄凉肃杀之意... 败了,终究还是败了,留给小明的只剩下身后的那万丈深渊. ------.. 最后的一点枫叶碎片已落 ...
- 软件测试密码修改教程,软件测试之用户注册和密码修改测试用例设计
软件测试之用户注册和密码修改测试用例设计 发表于:2009-03-05来源:作者:点击数: 软件测试技术导航 软件测试技术 : 软件测试工程师 测试用例 功能测试 测试管理 缺陷管理 手机测试 自动测 ...
- 软件测试之如何做好回归测试
软件测试之如何做好回归测试 关于如何做好回归测试,大体上的人都是认为是先验证bug,然后回归和本次修改相关的地方,但如何评估和此次修改相关的风险,这是一个相对重要且考验对系统认知度的问题.在我们平时的 ...
- 【软件测试之测试方案】
软件测试之测试方案 测试方案包含内容 1 编写目的 2 需求概述(需求描述及主要功能流程图及组网图) 3 测试覆盖需求(功能.性能.接口等) 4 测试计划(测试阶段的人力时间规划.测试轮次) 5 测试 ...
- 软件测试之软件测试的分类上
软件测试之软件测试的分类 1. 什么是软件测试 预期结果和实际结果做对比 2.软件测试的分类 按照方法分类 黑盒测试:通过对于输入和输出的检查判断预期结果和实际结果是否一致 白盒测试:通过对代码的检查 ...
最新文章
- 神州数码与神州控股、神州信息共同主办首届技术年会,透露出什么信号?
- CentOS 7 安装 Jenkins
- mysql 主从,主主,主主复制时的主键冲突解决
- apache php 调优_记一次apache+php调优
- ajax is failed怎么办,我在AJAX中遇到了问题
- matlab——FFT傅里叶快速变换
- python猜数字游戏续_python3实现猜数字游戏
- 鸿蒙系统暗黑2,暗黑破坏神2为什么被称为神作!看看装备强化系统就知道有多完美...
- 无心剑中译叶芝《情愁》
- applicationstatewinec7 电源管理
- php和mssql连接好吗,php如何与mssql数据库连接与配置_PHP教程
- python之数据运算、字典、列表
- 算法设计与分析第二版第一章笔记
- c语言程序调试方法有哪些,c语言程序的调试方法有哪些
- U盘重装Win10系统视频教程
- 记一次对网络抖动经典案例的分析
- win7下mysql重置root口令
- 后BT时代,我们该怎么办?
- 微信公众号添加word文档附件教程_公众号添加Excel、PDF、PPT等附件教程
- 大连华信和东软_谈谈大连高新园区
热门文章
- Windows十四种系统故障解决方法
- matlab 仿真短路故障设置,基于MatlabSimulink的电力系统故障仿真与
- html中设置首字母大写,css如何设置英文首字母大写
- 股票中阿尔法和贝塔都什么意思?
- 鼠标左键双击计算机打开属性,鼠标左键双击变成属性怎么解决?
- Vue3状态管理器大菠萝 Pinia 学习使用笔记
- 前端屏幕尺寸和分辨率_移动端尺寸基础知识
- cerna(测rna浓度260280比值大于2)
- JS放大镜小功能功能之原理详细解析
- python开头编码cc手_python的编码问题整理