Skip to content

Lincheck 指南

Lincheck 是一个实用且用户友好的框架,用于在 JVM 上测试并发算法。它提供了一种简单且声明性的方式来编写并发测试。

使用 Lincheck 框架,您无需描述如何执行测试,而是可以通过声明所有要检查的操作和所需的正确性属性来指定 要测试什么。因此,一个典型的并发 Lincheck 测试仅包含大约 15 行代码。

当给定操作列表时,Lincheck 会自动:

  • 生成一组随机的并发场景。
  • 使用压力测试或有界模型检查来检查它们。
  • 验证每次调用的结果是否满足所需的正确性属性(线性一致性 (linearizability) 是默认属性)。

将 Lincheck 添加到您的项目

要启用 Lincheck 支持,请将相应的仓库和依赖项添加到 Gradle 配置中。在您的 build.gradle(.kts) 文件中,添加以下内容:

kotlin
repositories {
    mavenCentral()
}
 
dependencies {
    testImplementation("org.jetbrains.kotlinx:lincheck:2.39")
}
groovy
repositories {
    mavenCentral()
}

dependencies {
    testImplementation "org.jetbrains.kotlinx:lincheck:2.39"
}

探索 Lincheck

本指南将帮助您熟悉该框架,并通过示例尝试其最有用的功能。逐步学习 Lincheck 的功能:

  1. 编写您的第一个 Lincheck 测试
  2. 选择您的测试策略
  3. 配置操作参数
  4. 考虑常见的算法约束
  5. 检查算法的非阻塞进展保证
  6. 定义算法的顺序规约

更多参考资料

  • Nikita Koval 撰写的“我们如何在 Kotlin 协程中测试并发算法”:视频。KotlinConf 2023
  • Maria Sokolova 撰写的“Lincheck:在 JVM 上测试并发”讲座:第一部分第二部分。Hydra 2021