形式化验证工程师是一个专业性较强的岗位。目前,多家企业如北京凯思昊鹏软件工程技术有限公司、中汽创智、微步在线、中国科学院软件研究所协同创新中心、成都链安科技、某大型学术公司、某大型知名集成电路公司、中汽创智(多个招聘信息)、芯华章、超威半导体、某大型知名电子公司、浙江望安科技有限公司、广州海格通信集团股份有限公司、某大型化工公司等都在招聘形式化验证工程师。
在北京凯思昊鹏软件工程技术有限公司,形式化验证工程师负责实时操作系统形式化验证及 RTOS 相关认证工作,要求计算机、电子等相关专业,熟练掌握 C、C++及多种汇编语言,熟悉一种以上主流 CPU 指令集和操作系统关键内核组件,熟练数理逻辑知识,掌握 Isabelle 或 Coq 等主流定理辅助证明工具,具备良好沟通表达能力及较强团队合作意识。
中汽创智招聘形式化验证高级工程师,工作职责包括自研软件安全分析工具的设计和开发、开源工具改进优化等,要求重点院校相关专业本科及以上学历,3 年以上软件开发经验,熟练掌握 C++及其语言特性等。
微步在线招聘形式化验证工程师,协助团队进行形式化验证业务,如检测方法验证等,要求数学、计算机或电子相关专业硕士研究生,有抽象解释等相关背景知识,有形式化验证工具使用经验,可熟练阅读英文材料,至少精通一门编程语言等。
中国科学院软件研究所协同创新中心招聘软件验证工程师,了解形式化验证相关技术者优先,要求计算机、软件工程等相关专业硕士或博士学历,具有扎实的计算机科学理论和算法基础等。
成都链安科技招聘形式化验证工程师,要求从事形式化验证 3 年以上,熟悉软件静态检测等形式化验证方法和理论,精通 1 - 2 种形式化验证工具,具有 3 年以上工作经验。
总之,形式化验证工程师在不同企业有着不同的具体职责和要求,但都需要具备扎实的专业知识和技能,以应对复杂的验证任务。
形式化验证工程师岗位职责
形式化验证工程师主要负责嵌入式操作系统内核的形式化建模以及关键性质的规约与形式化验证。具体来说,他们需要和数字设计工程师以及项目负责人一起制定项目的验证计划,负责核心模块的模块级/系统级的验证任务,包括验证计划制定、环境搭建、编写测试用例、仿真 debug、代码/功能覆盖率以及验证报告的输出等。此外,他们还需协助模拟/数字工程师完成相关的调试工作,并负责验证文档的撰写和整理。在实时操作系统方面,形式化验证工程师负责实时操作系统形式化验证以及相关认证工作。在网络领域,形式化验证工程师研究形式化验证技术在网络领域的应用,探索网络系统自动化验证方法,通过对网络控制面和数据面进行建模验证,实现网络变更前自动化验证,预测影响和风险。
形式化验证工程师专业要求
形式化验证工程师通常需要具备数学、计算机、电子、自动化、通讯等信息相关专业的本科及以上学历。他们要熟悉函数式编程思维,掌握至少一种定理证明工具,熟悉状态机、进程代数等理论,熟悉嵌入式系统的关键性质的规约与形式验证方法。在编程方面,要熟练掌握 C、C++,多种汇编语言,编程基础扎实,能使用 C/C++/Python/Go 等至少一门编程语言。此外,熟悉一种以上的主流 CPU 指令集,熟悉操作系统关键内核组件,如调度、内存管理、文件系统、网络协议栈、安全等。熟练数理逻辑知识,掌握 Isabelle 或者 Coq 等主流的定理辅助证明工具也是必要条件之一。
形式化验证工程师招聘企业
目前有众多企业招聘形式化验证工程师,如某大型学术公司、某大型电子公司、北京凯思昊鹏软件工程技术有限公司、成都链安科技有限公司、北京字节跳动、华为、某大型知名集成电路公司、某大型化工公司、某大型电子公司、浙江望安科技有限公司等。这些企业涵盖了学术研究、电子、软件、化工、网络安全等多个领域,对形式化验证工程师的需求较大,也反映出形式化验证技术在不同行业中的重要性日益凸显。
形式化验证工具使用经验
形式化验证工具种类繁多,如 Tamarin、CPN tools、TLA+等。以 Tamarin 为例,安装时需要在 ubuntu 终端输入特定的命令进行安装,如 git clone https://github.com/Linuxbrew/brew.git ~/.linuxbrew 等,然后编辑 profile 文件进行环境变量设置,最后使用 source /etc/profile 使设置生效。同时,为了提高安装速度,可以更换成国内的源,如中科大的源。CPN tools 的安装链接为 https://cpntools.org/category/downloads/,学习链接为 https://cs.au.dk/cpnets/industrial-use,成功安装软件后,可以通过右键新建/打开项目、导入项目、使用交互工具进行仿真运行等操作。TLA+及其相关工具有助于消除程序中很难找到、纠错成本高的基本错误,使用 TLA+对程序进行形式化验证,首先要用 TLA+对程序进行描述,称为规范,然后使用 TLC 模型检查器来运行它,检查 Specification 中设定的属性,发现非预期的行为。
形式化验证相关技术
形式化验证相关技术包括软件静态检测、符号执行、模型检测、定理证明等。在 DNS 形式化验证技术方面,新兴的 DNS 验证方法旨在解决传统方法的局限性,如 Groot 是第一个 DNS 验证工具,它会检查 DNS 区域文件是否符合指定的属性。但 Groot 采用的集中化架构面临可扩展性问题,厦门大学 SNGroup 提出了分布式验证框架 Octopus,以高效的方式应对现实世界中大规模网络中的 DNS 配置验证。在人工智能系统方面,形式化验证技术也有研究进展,如对人工智能系统的形式化验证技术的研究。此外,形式化验证技术在安全协议中也扮演着重要角色,能够为证明系统的安全属性提供严格、彻底的方法,有精确性、能验证假设和环境、提供完整内幕、提供逻辑精确论证等优点。
形式化验证工程师在当今科技领域中扮演着重要的角色。随着科技的不断发展,对系统的安全性、可靠性要求越来越高,形式化验证技术的应用范围也越来越广泛。形式化验证工程师需要具备扎实的专业知识和技能,熟悉各种形式化验证工具和技术,为企业和社会提供高质量的验证服务。