职位描述
岗位定位
你将专注于自渲染引擎(基于Skiko/Skia)的深度测试,确保其在鸿蒙、Android等平台上的渲染正确性、性能稳定性和跨平台一致性。作为测试团队中的“渲染专家”,你需要深入底层代码,设计白盒测试用例,覆盖从图形绘制到内存管理的全链路质量。你的工作将直接影响CMP(Compose Multiplatform)在鸿蒙上的用户体验。
核心职责
自渲染引擎功能与白盒测试:
深入分析Skiko(Skia的Kotlin封装)源码,针对绘制管线、图形合成、文本渲染、动画引擎等核心模块设计白盒测试用例。
利用代码插桩、调试工具等方式,验证底层逻辑的正确性和边界条件,确保渲染结果与预期一致。
SO库的功能与代码覆盖测试:
对自渲染引擎输出的原生库(.so) 进行系统性功能测试,验证C/C++接口的正确性、稳定性及资源管理(内存、句柄)的健康度。
通过 llvm-cov、gcov 等工具收集并分析代码覆盖率,定位未覆盖的风险区域,推动开发补充测试或优化代码。
跨平台渲染一致性验证:
设计并维护跨平台(Android、iOS、HarmonyOS)的渲染对比测试,确保同一份CMP代码在各平台的视觉表现、交互响应和性能指标保持一致。利用截图对比、像素级差异分析等手段,自动化检测渲染异常。
编译流程与工具链验证:
熟悉代码从Kotlin/C++到目标平台二进制产物的完整编译流程,针对编译选项、链接参数、LLVM后端优化等环节设计测试,确保工具链的稳定性和产出的正确性。
性能与稳定性测试:
构建性能基准测试集,监控渲染帧率、启动耗时、内存占用等关键指标,在版本迭代中自动比对,发现性能劣化。
开展压力测试和长稳测试(如长时间运行、高负载渲染、快速切换场景),暴露潜在的内存泄漏、卡顿、崩溃等问题。
测试工具与基础设施建设:
根据业务需要,开发或集成自动化测试工具(如自定义的渲染测试框架、覆盖率收集平台),提升测试效率和覆盖深度。
任职要求
必要条件:
渲染框架测试经验:至少2年以上对某一主流渲染框架(如 Skia、OpenGL、Vulkan、Flutter Engine)的测试或开发经验,能够进行白盒测试,理解其核心架构。
底层代码测试能力:熟练掌握 C/C++ 代码测试方法,有对 SO库进行功能测试和代码覆盖测试的实践经验,熟悉 llvm-cov、gcov、lcov 等工具。
编译流程理解:熟悉 LLVM、GCC、CMake、Gradle 等编译工具链,能理解编译选项对产物的影响,并能针对编译过程设计测试。
编程能力:熟练掌握 Kotlin/Java,能够阅读和理解Kotlin Native代码;具备良好的脚本编写能力(Python/Shell),能快速开发测试工具。
问题定位能力:能够熟练使用 调试器(LLDB、GDB)、性能分析工具(Perfetto、Systrace、Instruments) 进行深入的缺陷定位和性能剖析。
系统性思维:能从整体架构出发设计测试方案,考虑不同平台、不同硬件、不同系统版本下的兼容性风险。
优先条件:
有 Compose Multiplatform 测试经验,了解其渲染原理和跨平台实现。
有 Kotlin/Native 测试经验,熟悉 expect/actual 机制及与C代码的互操作。
有 LLVM 工具链使用或测试经验,如利用Clang工具进行代码分析、插桩等。
有鸿蒙HarmonyOS应用或底层测试经验。
有开源测试框架/工具贡献经历,或具备图形学、计算机视觉相关知识背景。
以担保或任何理由索取财物,扣押证照,均涉嫌违法,请提高警惕