搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
菜鸟追梦旅行
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
语义搜索入门
2
鸿蒙基础之 ToastDialog 对话框(HarmonyOS鸿蒙开发教程含源码)_鸿蒙toast
3
MongoDB 5.0新特性概览_mongdb 5.0 使用
4
10个常用的python自动化测试脚本
5
机器学习算法实践案例_直播案例 | 机器学习中常用优化算法的 Python 实践
6
UE4 visual studio: "cannot find cannot find generated.h files"_ue cant find vc
7
MathType2024注册码永久激活版_mathtype6.5注册机
8
windows下批量重命名图像名称bat脚本_bat脚本批量修改图片名称
9
鸿蒙系统使用对象,浅析鸿蒙基础之Permanent 持久性内存对象(HarmonyOS鸿蒙开发基础知识)...
10
simulink控制系统仿真如何在特定的时间加入一定时长的干扰_simulink随机扰动信号
当前位置:
article
> 正文
分层设计与分层测试
作者:菜鸟追梦旅行 | 2024-03-17 03:01:37
赞
踩
android分层测试
分层是复杂软件系统常见的设计思路。比如
互联网
的七层/五层模型,
Android
系统的APP/FWK/JNI/Kernel等,都是通过分层、解耦,达到简化问题,易于维护,便于扩展的效果。
传统的
黑盒测试
主要关注客户需求,
白盒测试
比较灵活,但实际应用中以验证编码实现为主,两者都忽略了设计这个开发过程中承上启下的环节。
分层测试
的核心思想是:针对有明确分层设计的软件系统,采用白盒测试的技术,在层与层之间验证接口的正确性。分层测试以调用接口驱动被测系统,尽量不依赖于打桩(具体原因后面会提到)。去年下半年开始我们在Android测试中尝试分层测试,取得了很好的效果。
1、精准。
我们都知道,离问题产生的地方越近,就越容易触发问题。如果问题发生在底层,以白盒测试的方法,很难精确打击,特别是一些复杂场景或异常流程,可能无法构造。而分层测试的切入点就是层与层之间的接口,从机制上更接近出问题的地方,因此也更容易命中目标。
2、低成本。
这个优势源于可测试性。举例来说:我们要测试Android系统下拨号的性能,黑盒怎么测呢?测试人员需要打开秒表,同时进行拨号的操作,并观测电话是否拨通。操作麻烦不说,误差也很大。如果用分层测试的方式,只要提供拨号和检查是否拨通两个对外开放的接口,通过用例脚本调用,并记录两者的时间,就可以方便准确地得到耗时。更进一步,我们还可以在不同层次的接口调用时均记录下时间,在脚本中直接对各个环节的耗时进行分析,从而自动分析流程的瓶颈,找到影响性能的关键环节。
再回过头来看前面提到的尽量避免打桩的建议,也是考虑到成本。打桩是白盒测试最困难的部分,特别是涉及到复杂的数据类型或者系统内部状态。因此很多开发同事不愿意使用UT。分层测试重驱动弱打桩,测试脚本主要还是运行在真实的测试环境中,这样就避免了打桩上的投入,也更接近开发的调试手段。
3、高效。
这里是指用例执行速度快。首先
自动化测试
的速度就明显优于手工测试,基于API调用的自动化又比UI自动化要快,分层测试的高效就建立在API调用高效的基础上。从我们收集的数据来看,相同的用例,手工执行的耗时平均在5-8分钟,UI自动化一般也需要1-2分钟,而分层测试通常10-20秒就完成了,效率提升达10倍。
4、易定位。
易定位其实是和精准对应的。在
用例设计
的时候就考虑到用例所针对的代码,一旦出现问题,自然就容易定位了。
5、稳定。
客户需求是易变的,内部实现也是易变的,但是层与层之间的接口是不同开发人员之间的约定,通常会尽量保持稳定。这里也有一组数据:从Android 4.2到Android 4.4,我们设计的JNI层用例变更不到10%,而针对APP界面开发的用例,变更率高达40%。
6、尽早测试。
尽早测试是
敏捷
所提倡的,目的是把问题拦截在前端,降低问题修复成本。由于分层测试不依赖于完整系统,可以通过直接调用底层接口进行测试,就不需要等到整个系统开发完成。其实分层测试的思想和自底向上的系统开发模式也是不谋而合的。
介绍了这么多分层测试的优势,那么它是万能的银弹吗?首先,分层测试不是端到端的测试,接口之上的部分无法覆盖,因此无法替代验收测试。另外,分层测试依赖于被测系统良好的分层设计,如果被测系统的结构不清晰,耦合严重,分层测试就不合适了。
最新内容请见作者的GitHub页:http://qaseven.github.io/
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/253617?site
推荐阅读
article
@
requestbody
接收
json
参数 映射到 实体类中
Date
(
时间
日期)
类型
转换
问题_req...
前台ajax提交, 后台@
requestbody
接收
json
参数 映射到 实体类中
Date
(
时间
日期)
类型
转换
问题(在...
赞
踩
article
每日一
题
---
长草
_
长草
算法
题
...
【问
题
描述】小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。小明选了其中的一些小块空...
赞
踩
article
nginx
try
_
files
的使用
_
try
_
files
$
uri
绑定二级
路径
...
项目的路由使用的是history模式,需要配置
try
_
files
,但是这个项目的
路径
是二级
路径
所以坑就来了
try
_
fil...
赞
踩
article
表情符号
emoji
UTF-
8
编码、
Unicode
、
HTML
显示_
emoji
utf
8
编码...
一、把含有表情的字符串编码 ---- UTF-
8
- (NSString *)
emoji
Encode{ NSString...
赞
踩
article
Android
开发
基础——
Android
简介
_
androidcsdn
...
本系列文章主要针对
Android
10(Q)进行介绍。
_
androidcsdn
androidcsdn
...
赞
踩
article
有哪些已经
上线
的
vue
商城
项目
?
_
真实
上线
的
商城
项目
...
下面是一些
商城
的
项目
,需要练手
的
同学可以挑选一些来练,废话少说,让我们直接开始正题~~
_
真实
上线
的
商城
项目
真实
上线
的
商城
...
赞
踩
article
vite
打包
docker
,
宿主
和镜像无法联通...
在
vite
.config.js中按如下配置,以及导出端口。Dockerfile 编写。
vite
打包
docker
,
宿主
和...
赞
踩
article
nginx
配置改变默认
访问
路径
_
nginx
localtion
到网站后,每个请求自动加上
路径
...
在安装完
nginx
服务后,url
访问
的默认
路径
是安装的
路径
html文件夹下的内容,如果需要指定自定义的
路径
,需要配置ng...
赞
踩
article
String
.
fromCharCode
()...
2019独角兽企业重金招聘Python工程师标准>>> ..._python string.fr...
赞
踩
article
Linux
内核
接收
报文
流程学习_
报文
经过
内核
...
Linux
内核
接收
报文
流程学习struct sk_buff{…}1.1 嵌套字缓冲区一个数据封包就存储在这里,所有网络分...
赞
踩
article
上海
亚商
投顾
:
沪指低开低走
两市
超4600
股飘绿
...
张江科学城已建立起以信息技术,生物医药,文化创意为主导产业,以人工智能,航空航天,低碳环保为新兴产业的“三大,三新”产业...
赞
踩
article
LeetCode:
Substring
with
Concatenation
of
All Word...
Substring
with
Concatenation
of
All
Words
You are given a str...
赞
踩
article
nginx
上
配置
二级目录访问
vue
项目
_
vue
nginx
配置
二级目录...
按照上面 2 个步骤
配置
好访问‘访问 A
项目
(
vue
项目
)访问 B
项目
(
vue
项目
)_
vue
nginx
配置
二级...
赞
踩
article
数据
归约
_
一个
数据
归约
算法
应该
具备哪些特性?...
(1)计算时间_
一个
数据
归约
算法
应该
具备哪些特性?
一个
数据
归约
算法
应该
具备哪些特性?
数据
归约
操...
赞
踩
article
上海
亚商
投顾
:
市场
再现
弱势调整 节日气氛浓厚...
板块概念方面,光热发电、黄金、餐饮、民航等板块涨幅居前,热泵、农业种植、钠离子电池、金刚线等板块跌幅居前。目前我国正处于...
赞
踩
article
一起打造
漂亮
的
Ubuntu
——2023最新版
Gnome44
_
gnome
主题
...
2023年,来美化你
的
Ubuntu
!_
gnome
主题
gnome
主题
...
赞
踩
article
如何
使用
pytho
n写一个
操作
系统
_
如何
用
pytho
实现小型
系统
...
如何
使用
pytho
n写一个
操作
系统
环境准备写一个
操作
系统
所需环境非常简单,我
使用
的以下环境:ubuntu 14.04 6...
赞
踩
article
canvas
-
绘制
圆形
_
canvas
画圆...
角度与弧度的js表达式:radians(弧度)=(deg*Math.PI/180)。
canvas
绘制
圆形arc(x, y...
赞
踩
article
Canvas
的超基础
绘制
_
canvas
.
drawcolor
...
练习
Canvas
绘制
颜色
绘制
实心圆
绘制
空心圆
绘制
矩形
绘制
方点、圆点
绘制
椭圆
绘制
直线
绘制
圆角矩形
绘制
扇形、弧形
绘制
心形
绘制
...
赞
踩
article
蓝桥
杯:
长草
(
小明
有
一块
空地
,
他将这块
空地
划分为)_
蓝桥
杯
长草
...
蓝桥
杯:
长草
(
小明
有
一块
空地
,
他将这块
空地
划分为)【问题描述】
小明
有
一块
空地
,
他将这块
空地
划分为 n 行 m 列的小...
赞
踩
相关标签
Date(时间日期)类型转换问题
算法
nginx
android
android studio
gradle
log
logcat
vue.js
前端
javascript
docker
容器
运维
linux
python
c#
php
网络
numpy
java
特征选择
ubuntu
gnome