应用 waPC (rust) 做软件测试工具
第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging) modified request • 模拟数据规则 • 自动化测试 • https://github.com/wasmmock/ wasm_mock_server • 用 rust 打包所有测试需求 Wasm mock server Why use rust ? Software testing tool • 模拟数据规则 • 自动化测试 • Company's own protocol • Multiple backend product line with complex upstream • Common testing platform 大公司抓包工具的需求 软件测试工具 • 模拟数据规则 • 自动化测试 • Supports http/https/tcp/websocket(MITM) • Can use rust to construct own protocol0 码力 | 30 页 | 2.50 MB | 1 年前3Rust 程序设计语言 简体中文版 1.85.0
程序设计语言 简体中文版 11. 编写自动化测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 11.1. 如何编写测试 . . . . . . . . . . . . . . . 220 11.2. 控制测试如何运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 11.3. 测试的组织结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 12.4. 采用测试驱动开发完善库的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 10 天前3Rust 程序设计语言简体中文版
..... 226 11. 编写自动化测试 ................................................................................................................. 240 2/600 Rust 程序设计语言 简体中文版 11.1. 如何编写测试 ................... .......................... 241 11.2. 控制测试如何运行 ...................................................................................................... 259 11.3. 测试的组织结构 ................................. 重构以改进模块化与错误处理 ................................................................................... 278 12.4. 采用测试驱动开发完善库的功能 ................................................................................ 293 12.50 码力 | 600 页 | 12.99 MB | 1 年前3Hello 算法 1.1.0 Rust版
本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 所示的动画图解,请以图为主、以文字为辅,综合两者 来理解内容。 图 0‑2 动画图解示例 0.2.3 在代码实践中加深理解 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 计与优化过程。 效率评估方法主要分为两种:实际测试、理论估算。 2.1.1 实际测试 假设我们现在有算法 A 和算法 B ,它们都能解决同一问题,现在需要对比这两个算法的效率。最直接的方法 是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法0 码力 | 388 页 | 18.50 MB | 1 年前3Hello 算法 1.2.0 简体中文 Rust 版
本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 www.hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 所示的动画图解,请以图为主、以文字为辅,综合两者 来理解内容。 图 0‑2 动画图解示例 0.2.3 在代码实践中加深理解 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 计与优化过程。 效率评估方法主要分为两种:实际测试、理论估算。 2.1.1 实际测试 假设我们现在有算法 A 和算法 B ,它们都能解决同一问题,现在需要对比这两个算法的效率。最直接的方法 是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能表现。比如一个算法的并行度较高,那0 码力 | 387 页 | 18.51 MB | 10 月前3Hello 算法 1.0.0 Rust版
为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 第 0 章 前言 hello‑algo.com 5 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和 所示的动画图解,请以图为主、以文字为辅,综合两者 来理解内容。 图 0‑2 动画图解示例 0.2.3 在代码实践中加深理解 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 计与优化过程。 效率评估方法主要分为两种:实际测试、理论估算。 2.1.1 实际测试 假设我们现在有算法 A 和算法 B ,它们都能解决同一问题,现在需要对比这两个算法的效率。最直接的方法 是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法0 码力 | 383 页 | 17.61 MB | 1 年前3简谈 Rust 与国密 TLS - 王江桐
ü 支持自定义内存分配器 Rust性能基本和C、C++持平,适用于系统级编程领域 ü 强大编译器 ü 全开源方式运作 ü Cargo ü Crates.io ü Docs.rs ü 自带测试框架 ü 支持跨平台 ü 多编程范式 ü 丰富的文档手册 高性能 高生产力 国密实现生态 Overview of Shangmi Cryptography Implementation Rust Comparison of Ylong Rust Shangmi Cryptography Framework Rust China Conf 2022 – 2023, Shanghai, China 测试环境: 操作系统:Ubuntu 18.04 x86_64 CPU:Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz 内存:16G • Ylong Rust 算法实现在 SM3 / 4 性能优于 GmSSL; • TLS 由于与 GmSSL 支持的部分算法不同,仅对比了 TLS 1.2 应用数据传输性能,在 x86 架构下 优于或持平 GmSSL ; • 未来仍会持续优化,或计划开源。 Thank you! 参考 References Rust China Conf 2022 – 2023, Shanghai, China • Transport Layer0 码力 | 44 页 | 3.70 MB | 1 年前3Comprehensive Rust(简体中文) 202412
. . . . . . . . . . . . . . . . . 152 4 27 测试 156 27.1 单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 27.2 其他类型的测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 44 测试 230 44.1 rust_gtest_interop 库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 6 44.2 Rust 测试的 GN 规则 . . . . . . . . . . . . . . . . . . . hours and 40 minutes, including breaks) Segment Duration 欢迎 3 minutes 迭代器 45 minutes 模块 40 minutes 测试 45 minutes • Day 4 Afternoon (2 hours and 10 minutes, including breaks) Segment Duration 错误处理 550 码力 | 359 页 | 1.33 MB | 10 月前3Rust 语言学习笔记
...................................... 107 第九章 测试与评测 ................................................................................ 108 9.1 函数级测试 ................................................ 109 9.2 模块级测试 ............................................................................... 110 9.3 工程级测试(黑盒集成测试) ........................................................ 110 9.4 基准测试 .......... 行文件)。 外部测试源代码文件位于 tests 目录下。 示例程序源代码文件位于 examples。 基准测试源代码文件位于 benches 目录下。 cargo.toml 是 cargo 特有的项目数据描述文件,对于猿们而言,cargo.toml 文 件存储了项目的所有信息,它直接面向 rustacean,如果想让自己的 rust 项目 能够按照期望的方式进行构建、测试和运行,那么,必须按照合理的方式构建0 码力 | 117 页 | 2.24 MB | 1 年前3Rust API可靠性分析与验证
Rust第三方库API可靠性现状 • 现用方法的局限性 • 基于程序合成+模糊测试的可靠性分析方法 Rust China Conf 2021 – 2022, Online, China 自我简介 • 本(2019)硕(2022)毕业于复旦大学 • 目前在蚂蚁集团安全计算部门开发应用于机密计算的Rust系统软件 • 研究生期间主要从事Rust测试与验证工具的研究,本人所在的是国内最早 开展Rust程序分析 开展Rust程序分析相关研究的实验室(https://artisan-lab.github.io) • 我们关于Rust库模糊测试的论文 RULF: Rust Library Fuzzing via API Dependency Graph Traversal 获得了软件工程顶级会议ASE2021的ACM杰出论文奖 Rust China Conf 2021 – 2022, Online, China 引言:Rust 所有动态检查都不应该被违背(可以被安全的移除),除非panic是一种 允许的行为 Rust China Conf 2021 – 2022, Online, China 现有的可靠性分析方法及其局限性 模糊测试(afl.rs, libfuzzer):分支覆盖率;用例程序的构造 符号执行(klee, angr):路径爆炸;求解困难 静态分析(MirChecker, Rudra, SafeDrop):分析特定问题;假阳性0 码力 | 13 页 | 1.68 MB | 1 年前3
共 23 条
- 1
- 2
- 3