上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

4-黄国辉-OpenHarmony开发者测试工程.pdf

编号:151980 PDF 36页 3.26MB 下载积分:VIP专享
下载报告请您先登录!

4-黄国辉-OpenHarmony开发者测试工程.pdf

1、OpenHarmony开发者测试工程黄国辉OpenHarmony兼容性工作组SIG成员黄国辉主要负责OpenHarmony各子系统开发自测试相关工作,了解开发者测试设计方法、测试框架以及覆盖率构建相关工具。OpenHarmony兼容性工作组SIG成员目录CONTENTS背景简介01 OpenHarmony开发者测试活动02 OpenHarmony开发者测试框架03 OpenHarmony一站式代码覆盖率工具04 未来展望与规划05 01背景简介背景简介l后端问题解决的成本远大于前端,尽可能在前端全面高效维护代码质量。OpenHarmony包含60+子系统,累计代码量超1亿行。Unit Test

2、sIntergration TestsSystemTestsUITests发现问题的难易程度困难容易解决问题的速度慢快需求质量设计质量谷歌的测试金字塔模型02OpenHarmony开发者测试活动开发者测试活动全景自测试流水线自测试框架TDD测试分布式测试功能测试性能测试专项测试内存测试benchmark静态api安全测试漏洞补丁静态扫描开源漏洞扫描安全编译选项fuzz测试稳定性测试代码覆盖率黑盒测试白盒测试判定表法等价类划分边界值分析法路径覆盖法单模块随机压测整机随机压测MTBF功能测试TDD测试Test Driven Development测试设计模块设计用例/编码从测试的角度来推导设计,验

3、证设计测试先行,用例约束代码实现敏捷开发,小步快跑通过用例的反馈,确保目标的达成促进设计更好地理解需求功能测试分布式测试OpenHarmony分布式数据OpenHarmony分布式数据分布式设备分布式文件分布式调度分布式调度分布式设备分布式软总线分布式软总线分布式组网、协议间兼容分布式设备上线下远程启动、迁移能力分布式数据存储、同步、一致性分布式硬件分布式硬件分布式硬件虚拟化能力分布式文件内核传输分布式文件专项测试性能测试通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。benchmark内存测试基本概念:1:常驻内存

4、:指业务运行结束退至后台,静置5分钟后,进程的内存使用情况。2:动态内存:业务在后台运行时,进程的内存总量峰值。u看护进程范围与基线值:专项测试安全测试Syzkaller:是一种针对kernel的fuzzing测试工具。Fuzzing测试是一种软件测试方法,通过产生随机输入,从而验证被测软件可靠性与安全性的一种方法。Syzkaller通过覆盖制导,更容易探索新路径并发现代码中存在的问题。Syzkaller与kasan和ubasn一起使用,更容易发现问题。libfuzz介绍:模糊测试(fuzzing test)是一种软件测试技术,其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程

5、序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏,访问越界等。Libfuzz主要关注的风险接口:1、解析处理远程发送来的TCP/UDP或者蓝牙等协议数据。2、通过复杂的文件解码处理等,包括音视频、图片解码、解压缩等。3、IPC跨进程的数据输入处理。Libfuzz测试流程:Libfuzz执行要求:1、达到基本稳定:同时满足,不生成新的bug,不生成新的样本。2、达到充分测试:使用libfuzzer,1个小时稳定测试或者1000万次稳定测试。能力提升黑盒测试常用的用例设计方法l 判定表法:采用表格的形式,列出所有条件和对应结果,能够将复杂问题简化并避免遗漏。判定表

6、很适合于处理条件项各自独立,互不影响的问题。判定表的格式:1、条件桩:列出问题的所有条件。2、动作桩:列出问题规定可能采取的操作。l 等价类划分:针对测试对象的所有可能的输入,按照等价类原则划分为不同的输入域子集,在每个子集中选取少数具有代表性的数据作为测试用例,合理覆盖。l 边界值分析:输入或输出的边界值的分析方法,是对等价类划分法的补充。有效等价类:合理的、有意义的输入数据构成的集合。无效等价类:不合理或无意义的输入数据所构成的集合。对范围为1到8的整数输入参数进行验证,按照开区间和闭区间,半开半闭区间进行说明,其中的边界值如上图所示。能力提升白盒测试语句覆盖:每条语句至少执行一次判定覆盖

7、:每个判定的每个分支至少执行一次条件覆盖:每个判定的每个条件取到各种可能的值判定条件覆盖:同时满足判定覆盖条件覆盖条件组合覆盖:每个判定中各条件的每一种组合至少出现一次路径覆盖:使程序中每一条可能的路径至少执行一次常见的白盒覆盖类型:03OpenHarmony开发者测试框架开发测试框架介绍OpenHarmony开发测试平台,支持3种操作系统,5种语言,7种不同测试类型以及多形态设备,为开发者提供轻量级测试环境以及“一键式”测试执行入口,降低开发人员前端问题验证难度,提升验证效率和代码质量。OpenHarmony 设备Source CodeDeveloper TestTest Code(TDD/

8、XTS)修改代码OpenHarmony源码工程执行修改代码逻辑对应自动化用例编译版本刷机编译测试代码(如果阶段2已编译套件此过程可跳过)执行测试代码返回测试结果开发者开发测试框架整体架构开发测试框架重点特征-支持精准测试l 精准测试:支持测试脚本多种颗粒度、多类型执行方式,灵活支撑开发者自测试场景。参数名称参数说明testtype指定测试类型级执行方式subsystem指定测试子系统级执行方式testpart指定部件级执行方式testmodule指定测试模块级执行方式testsuit指定测试套级执行方式testcase指定测试用例级执行方式coverage指定覆盖率级执行方式输入测试运行参数简

9、单易用执行命令统一支持多种语言(C/C+/JS/ets/python/rust)参数解析启动用例管理调用用例筛选接口生成编译目标及配置文件根据运行参数编译目标配置文件编译指定用例编译用例生成用例列表文件启动调度运行模块并传入用例列表文件创建测试计划运行对应测试驱动run t ut tp xxx开发测试框架重点特征支持高性能并发与多语言l 高性能:并发执行,多设备高效运行测试用例。l 支持多种编程语言测试脚本调度执行,屏蔽不同测试脚本执行入口差异OpenHarmony 设备ThreadCppTestDriverJsUnitTestDriverOHJSUnitTestDriverLtpPosixT

10、estOHRustTestDriverDriver1、创建驱动执行线程2、驱动执行线程调用_execute_执行接口轮询获取可用设备获取测试套参数及对应驱动创建驱动执行线程循环等待所有驱动线程结束,防止主线程阻塞初始化参数,启动监控线程构建请求参数request,调用驱动执行接口通知监控线程驱动执行结束初始化参数,日志打印线程id开发测试框架重点特征支持稳定性测试能力多线程库支持的接口函数 GTEST_RUN_TASK(TestFunction)HWMTEST_F(TEST_SUITE,TEST_CASE,TEST_LEVEL,THREAD_NUM)MTEST_ADD_TASK(THREAD_

11、ID,ThreadTestFunc)MTEST_POST_RUN()框架支持用例乱序能力-ra random:用例乱序执行参数利用随机数原理实现测试套件内的用例乱序执行提供便捷高效的多线程测试能力,便于在前端拦截并发场景的稳定性问题开发测试框架重点特征支持多任务管理模式l run t ut ss/tp/ts/tc xxx-repeat 5l run-hll run-rh 1l run-retry-repeat:支持设置用例执行次数。-hl HISTORYLIST:显示最近10条测试用例,超过10条,只显示最近10条。-rh RUNHISTORY:按照历史记录中指定测试任务ID,执行测试任务-r

12、etry:检查上次运行结果,如果有失败用例则重复测试为开发者提供精确实用的多任务管理能力,精准实现各类任务的执行,可提升开发者执行效率开发测试框架重点特征-支持分布式验证分布式测试框架:1.采用C-S结构,基于gtest测试框架,对其进行多设备协同扩展,其中C为主控逻辑,运行在控制端,S为测试代理,运行在服务端,负责处理相关测试逻辑;2.C-S之间基于socket通信,作为测试消息通道;3.测试用例只运行在一台设备上,主控用例通过C-S测试通道发送消息给服务端,控制服务端执行测试逻辑;4.分布式场景下,每一个用例由一个主控用例和一个测试代理两部分组成;5.测试代理由测试框架在用例执行前完成启动

13、。分布式测试框架的作用:通过编写分布式测试用例,针对分布式场景进行测试,同时建立流水线进行看护;方便及时发现分布式场异常,以此提高分布式场景的测试效率。分布式测试框架操作时序开发测试框架执行示例命令用途run触发执行用例show显示属性,如支持执行用例类型等list显示连接设备信息version显示工具版本号信息help显示指定命令帮助信息quit退出执行环境04OpenHarmony一站式代码覆盖率工具OpenHarmony一站式代码覆盖率工具我是否遗漏了什么BUG没有测出来?我是否在对已经充分验证的部分还在进行重复冗余的验证?我的验证到底进行到了什么程度?我还需要进行对哪些部分进行重点验证

14、?l自测试完成后,测试质量如何评估:l业界中影响最大的解决方案:基于覆盖率的验证模式(Coverage-Driven Verification)OpenHarmony一站式代码覆盖率工具介绍工具优势:1、集成在自测试框架中,沿用原有自测试使用习惯;2、无需更换环境,直接在编辑/编译的linux环境执行;3、支持按子系统、部件级别运行测试用例及覆盖率数据;4、集成流水线上常驻服务、特殊情况屏蔽等处理,尽量和流水线上结果保持一致;一站式运行用例编写本地覆盖率工具测试报告简化操作流程缺点:1、覆盖率数据生成步骤繁琐,难以一站式生成覆盖率报告及用例执行结果;2、需要代码上库之后检测覆盖率情况,难以帮助

15、开发在研发过程中定位问题。覆盖率生成步骤用例编写用例编译源码插桩版本烧录用例执行数据解析数据可视化生成覆盖率报告OpenHarmony一站式代码覆盖率工具整体架构系统代码系统代码编译插桩so文件设备非常驻进程常驻进程信号触发程序退出自动落盘合并剔除解析数据处理Gcno文件Gcda文件数据可视化用例执行报告覆盖率报告OpenHarmony一站式代码覆盖率工具关键特性l精准编译、缩小范围、提升效率out/xxx/build_configs/parts_info/parts_path_info.jsonout/xxx/build_configs/parts_info/part_subsystem.j

16、sonout/xxx/obj/base/security/access_token目录中获取所有subsystem_name为security的*_module_info.json文件 不需要全量覆盖率版本编译安装。只用预先编译需要的覆盖率版本so和用例。启动测试框架,执行用例前会将指定部件或子系统的编译后的覆盖率so推到设备上重启设备后,执行用例。覆盖率版本编译安装。OpenHarmony一站式代码覆盖率工具关键特性l支持进程不退出情况下,信号触发覆盖率数据落盘程序正常结束时调用 exit,其继续调用 _gcov_dump 函数输出覆盖率统计数据到*.gcda 文件中。常驻进程一旦启动很少主

17、动退出,使用kill杀死进程强制退出时不会调用exit,不会落盘覆盖率数据。构造信号拦截函数动态库预加载信号触发覆盖率数据落盘信号处理函数中注册待拦截信号,使用_attribute_(constructor)进行修饰(SIGUSR2)添加signal handler,在其中调用数据落盘函数_gcov_dump使用LD_PRELOAD将信号处理函数与待测动态库进行链接给待测进程发送信号 SIGUSR2信号被拦截,触发数据落盘函数 _gcov_dump有效解决gcover无法统计常驻进程覆盖率数据问题。OpenHarmony一站式代码覆盖率工具执行流程启动工具选择产品形态输入命令替换插桩so文件执

18、行用例输出用例执行结果与覆盖率数据./start.shrun t xx xxx1环境配置完成后执行如下命令可生成覆盖率报告:1)进入test/testfwk/developer_test目录下,执行./start.sh。2)选择产品形态。按回车默认为1。3)执行“run-t ut tp 部件名-cov coverage”或“run-t ut-ss 子系统名-cov coverage”或“run-t ut-ss 子系统名-tp 部件名-cov coverage”执行完成后生成覆盖率报告。支持部件级别用例执行支持子系统级别用例执行OpenHarmony一站式代码覆盖率工具执行结果函数覆盖率分支覆盖

19、率随用例变化趋势OpenHarmony一站式代码覆盖率工具执行示例05未来展望与规划未来展望与规划基于大模型,结合TDD、测试结果、覆盖率、逆向分析开展代码质量智能评估,提高自测试质量测试设计TDD逆向改进分析基于需求和场景usecase描述生成验收标准,测试用例结合大模型生成测试用例,增强代码覆盖基于问题描述推荐根因和消减措施、生成复现回归测试用例I.编解码器类大模型RoBERTa(NL类任务预训练)CodeBERT(Code类任务预训练)II.OpenAI 生成类大模型Curie-GPT3(6.7B NL类任务)Codex-GPT3(12B code类任务)Davinci-GPT3(175B NL类任务)Code-davinci-002-GPT3.5(175B code类任务)后端问题导入感谢聆听关注QECon公众号

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(4-黄国辉-OpenHarmony开发者测试工程.pdf)为本站 (2200) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部