搜索
查看
编辑修改
首页
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
Python 教程:常用的六种装饰器写法教程_python常用装饰器
2
【python实现】 爬楼梯
3
c++编程练习 037:函数对象的过滤器_函数对象的过滤器 描述 程序填空输出指定结果 #include
#includ
4
shell脚本基础教程,快速上手_shell脚本教程
5
chatgpt3.5和chatgpt4的区别_chatgpt3最新数据
6
Linux基础命令(非常详细)
7
NLP 、NLU 和 NLG 的区别
8
基于脉冲神经网络的物体检测_脉冲神经网络 目标检测
9
使用 pycharm 连接服务器进行操作_pycharm使用服务器的终端
10
Linux SPI驱动实验编写和测试步骤-基于正点原子IMX6ULL开发板_阿尔法linux开发板增加spi接口
当前位置:
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
推荐阅读
article
Android
Jetpack
MVVM
封装及使用...
这张图清晰地展示了
MVVM
的三个模块:Activity / Fragment为View层,ViewModel + Liv...
赞
踩
article
Android
多渠道
打包
看这一篇就够了
_
android
配置
多渠道
打包
...
本文三个流程一、
多渠道
配置
1、
多渠道
配置
2、不同渠道不同签名
配置
3、不同渠道不同资源文件
配置
4、不同渠道不同依赖
配置
二、...
赞
踩
article
谷歌
浏览器
替代品:
Arc
...
北京时间 7月26日(当地时间7月25日)
Arc
浏览器
上线 1.0 正式版,并移除了 waitlist。也就是说你可以...
赞
踩
article
Chat
PPT
国内首个AI自动生成
PPT
效率工具_
chatppt
可以
在
wps
用吗...
目前了解到
Chat
PPT
使用首先需要下载安装MotionGo插件,安装完成之后在WPS或者office里面直接打开就
可以
...
赞
踩
article
compose
--
附带
效应
、
传统项目集成
、
导航
_
remembercoroutinescope
...
该文章将是
compose
基础系列中最后一篇,
附带
效应
是这篇文章的重点,其余补充内容为如何在传统xml中集成
compose
...
赞
踩
article
VUEX
+
addRoute
实现动态
路由
_
addrouters
...
VUEX
//this.$store.state.
addRoute
rs //state.js//this.$...
赞
踩
article
深度分析 |
Unity
和
Unreal
的
比较_
unreal
和
unity
的
区别...
1、2020年
的
Unity
或
Unreal
在当下游戏开发中,使用游戏引擎来创建游戏或者AR、VR应用已变得越来越普遍。如今...
赞
踩
article
Compose
中
的
附带效应(五)
derivedStateOf
...
阅读本文需要一定compose基础,如果没有请移步Jetpack
Compose
入门详解(实时更新)本文介绍Compos...
赞
踩
article
python
中文
开发文档_
platform
(
Operating
System
) –
Python
...
Python
中文
开发手册
platform
(
Operating
System
) -
Python
中文
开发手册2.3版...
赞
踩
article
Javascript
实现
UTF
-
8
编码...
使用JAVASCRITE实现
UTF
-
8
编码, 不要忘记把页面的Content-Type设置为
UTF
-
8
[code="ja...
赞
踩
article
在
Android
上
部署
预训练
模型
...
更多 TVM 中文文档可访问 →https://tvm.hyper.ai/docs。
在
Android
上
部署
预训练
模型
...
赞
踩
article
SpringCloud
面试
题大全(
Netflix
+
Alibaba
)_
spring
alibaba
面试
...
SpringCloud
最常用组件的
面试
题_
spring
alibaba
面试
spring
alibaba
面试
...
赞
踩
article
【计算机视觉】
OpenCV
4高级编程与项目实战(
Python
版)【6】:
使用
NumPy
创建
随机
雪花
...
上一篇文章演示了如何
使用
二维数组
创建
黑白
图像
,如果要
创建
彩色
图像
,就需要
使用
三维数组。例如,在BGR色彩空间
创建
200 ...
赞
踩
article
鸿蒙
开发
之网络框架搭建,MVP+
Retrofit2
+
okhttp3
+
Rxjava2
+RxHarmon...
抓住人生中的一分一秒,胜过虚度中的一月一年!小做个动图开篇引题
鸿蒙
背景2020年9月10号,
鸿蒙
2.0(HarmonyO...
赞
踩
article
h5
学习笔记:
下拉菜单
(2)
_
下级菜单
勾选
逻辑
页面
h5
...
有时候会觉得css 变得毫无章法地使用。在
下拉菜单
中,还有一种浮动的二级菜单。 展示一些商品。好像小米商城那个导航下拉菜...
赞
踩
article
H5
动画
,
canvas
绘制
圆环
百分比
进度的
动态效果
_
canvas
百分比
...
<!DOCTYPE html><html><head> <meta http-...
赞
踩
article
java
.
lang
.
IllegalStateException
异常
产生的原因及
解决办法
...
问题描述:错误类型大致为以下几种:
java
.
lang
.
IllegalStateException
:Cannot forw...
赞
踩
article
String
.
fromCharCode
()...
2019独角兽企业重金招聘Python工程师标准>>> ..._python string.fr...
赞
踩
article
一文梳理
深度
学习
算法
演进_
深度
学习
int4
...
都取得了不错的效果。LAS的工作是Google Brain的实习生William15年在上一代框架DistBelif上完...
赞
踩
article
Ubuntu
本地
安装
code
-
server
结合内网穿透实现安卓平板远程写代码_
ubantu
部署cod...
在安卓使用vs
code
主要是连接一个远程的
code
-
server
服务,
code
-
server
服务
安装
在什么系统,调用的就...
赞
踩
相关标签
android
android jetpack
kotlin
powerpoint
动画
css3
前端
js
vue.js
vue
unity3d
游戏
unreal
游戏引擎
游戏开发
python中文开发文档
JavaScript
C
C++
C#
ViewUI
深度学习
TVM
gpu算力