精准化测试可解决的问题: 根据代码变更确定用例范围 更准确深入地覆盖被测业务 白盒探索式测试 从线上数据反推有效测试用例字节码插桩目的 &nbs
转载
2024-09-29 19:58:56
25阅读
一、什么是插桩QQ空间曾经发布的《热修复解决方案》中利用 Javaassist库实现向类的构造函数中插入一段代码解决CLASS_ISPREVERIFIED 问题。包括了Instant Run的实现以及参照Instant Run实现的热修复美团Robus等都利用到了插桩技术。插桩就是将一段代码插入或者替换原本的代码。字节码插桩顾名思义就是在我们编写的源码编译成字节码(Class)后,在Android
转载
2023-11-07 00:29:41
132阅读
目录1.插桩是什么 2.插桩的作用 3.插桩的原理 4.插桩方案对比 5.AspectJ 耗时统计实践 6.ASM 耗时统计实践 7.插桩编译 Gradle Transform 8.ASM的更多用法 9.MethodTraceMan插桩是什么插桩就是在代码编译期间修改已有的代码或者生成新代码插桩的作用插桩可以做什么?减少代码的重复编写无痕埋点对全局所有class插桩,做UI,内存,网络等等方面的性
转载
2024-07-25 16:10:35
104阅读
一、为什么要插桩 我们都知道JAVA是面向对象(继承、封装、多态),而插桩的意义在于面向切面(AOP),可想而知单方面的面向对象开发有许多的局限性,而结合面向切面编程可以说补足了我们的这种局限性。举个例子:在onClick中一般都要做防抖动操作,这样是为了避免多次打开页面的问题。一般实现的话是在每个onClick实现第二次点击的时候加个时间判断
转载
2023-10-23 06:43:26
124阅读
8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?何为代码插桩 最早是由J.C. Huang 教授提出的,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”,本质上就是进行信息采集的代码段,可以是赋值语或采集覆盖信息的函数调用,通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态
转载
2023-07-06 16:00:29
166阅读
经验总是不停刨坑刨出来的,最近结合工作需要并熟悉学习android ASM 字节码插桩的环境下,开发了一个方法 hook 的插件,虽然在各方其他开源项目的参考下,还是刨了不少坑,下面就来记录下。gradle 知识点记录–dry-run 查看gradle task执行顺序,验证插件是否被执行时有用。 –stacktrace 查看详细堆栈,报错时可以看到插件代码错误的位置。ASM开发相关注意基本类型中
转载
2023-11-09 17:05:08
147阅读
目录为了更加精确的追踪方法调用,优化性能,可以通过 Debug 类生成插桩日志,在 Profiler 面板中导入后进行分析。一、生成插桩日志1. 工具类封装2. 示例中调用3. 模拟耗时二. 导出日志,分析数据1. 在 Device File Explorer 面板中找到自己的应用目录下的 xxx.trace 文件,右键 Save as 保存到自己指定的目录中,比如桌面2. 然后打开 Profi
转载
2023-10-10 17:23:34
121阅读
背景在做应用启动速度优化时,需先了解启动阶段做了哪些耗时任务,分析 Application 的 attachBaseContext、onCreate 等关键方法,统计它们内部调用到的其他方法耗时。分析要结合 systrace 工具,因为不仅要知道方法的 wall time,还要知道 cpu time,这样才能知道是否属于 cpu 密集型任务,然后针对任务类型进行调整或线程调度。需求很清晰,在要统计
转载
2023-10-15 10:54:44
171阅读
官方文档对单元测试有比较详细的介绍,这里不再赘述,可直接查看官方文档: 测试基础知识 | Android 开发者 | Android Developers (google.cn);Android 单元测试类型这里引用官方文档中关于本地单元测试和插桩单元测试的概念说明。本地单元测试尽可能使用 AndroidX Test API,以便您的单元测试可以在设备或模拟器上运行。对于始终在由 JVM 驱动的开
转载
2023-11-03 20:03:18
76阅读
软件测试的基本理论-白盒测试-2 一. 白盒测试方法前言:1.逻辑覆盖法语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖基本路径覆盖A. 基本路径法实现步骤二. 程序插桩法目标代码插桩源代码插桩程序插桩法demo程序插桩法缺点HeisenGugs白盒与黑盒比较三:其他1> 不同测试对象4种基本组合测试方法2> 测试计划\测试用例1. 测试计划1. 测试用例3> 程序流程图-基
转载
2024-01-31 06:51:09
172阅读
插桩插桩是什么?你在开发中有用过插桩的技术吗?所谓的插桩就是在代码编译期间修改已有的代码或者生成新代码。插桩具体在编译的哪个流程介入呢?插桩的作用与场景代码生成代码监控代码修改代码分析Java 源文件方式类似 AndroidAnnotation/APT(Annotation Processing Tool),可以在代码编译期解析注解,并且生成新的 Java 文件,减少手动的代码输入。 这些代码生成
转载
2024-08-29 17:36:00
80阅读
原文由zlulu发表于TesterHome社区,缘起前段时间,我负责测试的系统在生产环境运行出现问题。该系统对于响应时间要求较高,问题发生的时候并发很高,出现大量请求超时,超时请求比例随时间推迟越来越高,最后几乎全部请求都失败。滚动重启了所有进程后,很快又出现超时情况。 后经过排查,发现是新版本实现某个功能时修改了一个数据库查询语句,修改后该查询语句的查询条件未使用到索引字段,而所查询的表生产环境
转载
2024-08-04 19:41:33
63阅读
1.官方文档https://developer.android.google.cn/training/testing/unit-testing/instrumented-unit-tests?hl=zh-cnhttps://github.com/android/testing-samples/tree/master/unit/BasicUnitAndroidTest mockit官网 http
转载
2023-05-29 16:16:17
262阅读
上一篇:【创建并运行您的首个Android应用】一、准备工作前提条件了解有关如何在 Android Studio 中导航到项目目录的基础知识。学习内容什么是测试?什么是自动化测试?什么是单元测试和插桩测试?在 Android 项目中的什么位置可以找到单元测试和插桩测试文件?所需条件一台安装了 Android Studio 的计算机。您在此在线课程的上一篇文章 中创建的项目。二、什么是测试?就软件而
转载
2023-07-25 15:24:23
369阅读
关键词:软件测试,代码覆盖,质量测试环境:ubuntu 12.04 代码覆盖 CFG(Control flow graph)图。控制流图(CFG)是一个有向图抽象数据结构。它是一个过程或程序的抽象表现。每个在图形中的节点代表一个基本块,例如,没有任何跳跃或跳跃目标的直线代码块;跳跃目标以一个块开始,和以一个块结束。定向边缘被用于代表在控制流中的跳跃。CFG中的每个结点至多只能
转载
2024-01-19 22:43:27
56阅读
安科瑞 高佳乐安科瑞电瓶车智能充电桩概述:电瓶车智能充电桩是新一代电动自行车智能充电设备,具有交流输出电源远程通断控制、充电安全控制、 电度计量、按时计费功能于一体的交流供电装置,该装置能通过电动自行车的车配充电器为电动自行车充电。 支付方式可选择投币、刷卡、扫码使用,设备内部可引出 10 路出线至专用插座,通过电动自行车的车配充电器 完成充电。可连接云平台给用户提供安全可靠及智能化的充电服务
转载
2024-06-14 11:34:29
57阅读
android 隐私权限相关的api或者字段要求越来越严格,我们需要配合监管部门处理相关的函数调用,这就需要我们找到:在哪里调用的?调用的方法是什么?具体的调用堆栈是什么?改完了自后,怎么辅助自校验是否改好了?(很多第三方平台耗时较久,不适合快速测试)比如我们想监控:getMacAddress()的调用:我们想要观察的函数:WifiManager wifi = (WifiManager)MainA
转载
2024-07-11 08:25:56
52阅读
简介ASM插桩在网上其实已经有很多资料了,我之所以再写这篇文章呢,一是因为好久前学习的ASM,现在已经忘的差不多了,需要再回顾一下,二来是记录一下学习过程,以后如果再有细节记不清楚可以很方便的就能查到,三来再学习的过程中也踩了一些坑,收获了一些心得,这些也需要一个地方记录一下。好了,废话就说到这里,接下来开始正文。插桩技术指在保证原有程序逻辑完整性的基础上,在程序中插入探针,通过探针采集代码中的信
转载
2023-10-04 11:46:17
160阅读
当启动插桩测试时,系统会重启其目标软件包,并且会注入和启动插桩代码以执行测试。一种例外情况是,这里的目标软件包不能是 Android 应用框架本身,即软件包 android,因为这样做会导致出现一种矛盾情况:需要重启 Android 框架,而正是该框架支持系统功能,包括插桩本身。这意味着,插桩测试无法将本身注入到 Android 框架(也称为系统服务器)以执行测试。为了测试 Android 框架,
转载
2023-11-22 21:51:06
152阅读
白盒测试技术白盒测试技术是把测试对象看作一个打开的盒子,利用白盒测试法进行动态测试时,除了要验证软件的功能特性之外,还要需要测试软件产品的内部结构和处理过过程白盒测试法的覆盖标准有逻辑覆盖测试,基本路径测试和循环结构覆盖测试,同时程序插桩也是白盒测试中一种常用的方法。 逻辑覆盖测试逻辑覆盖测试是以程序内部的逻辑结构为基础设计测试用例的方法。根据程序内部逻辑结构
转载
2024-02-04 22:03:05
146阅读