如何编写Thread专题(11)中的并发程序测试案例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3037个文字,预计阅读时间需要13分钟。
此文章被作者收录在系列文章《架构师必备》(系列)中。文章主要探讨在并行程序中,许多顺序程序的测试方法同样适用,但需要更广泛的覆盖度和更长的运行时间。并发类测试主要分为安全类别。
此文被笔者收录在系列文章 架构师必备(系列) 中
很多顺序程序的测试方法在并发程序中也适用,但需要更广泛的覆盖度和更长的运行时间。并发类的测试主要分为:安全性与活跃度的测试。活跃度测试包括:
- 吞吐量:在一个并发任务集中,已完成任务所占的比例。
- 响应性:从请求到完成一些动作之间的等待时间。
- 可伸缩性:增加更多的硬件或软件资源后,吞吐量是否会提高。
一、正确性测试
为并发类开发单元测试流程,也要先识别出不变约束和后验条件,这些都属于例行检查。
测试阻塞操作
大多数测试框架对并发性并不友好,它们只包含很少的工具,用来创建线程或监视线程,确保它们不会意外地终结。
能否把失败明确地与一个特定的测试关联起来,变得很重要。如果一个方法应该在某些特定条件下被阻塞,那么测试这种行为时,只有在线程没有执行完毕前,测试才是成功的。测试方法的阻塞,类似于测试方法抛出的异常,如果方法可以正常返回,则意味着失败。当方法成功地被阻塞后,还必须想办法解决方法的阻塞,做到这一点最常见的方法是通过中断。这需要你的阻塞活动可以提前返回或者抛出InterruptedException,以响应中断。
测试安全性
测试正确性一般都会采用单元测试的方式,测试安全性主要是发现数据竞争引起的错误,这需要一个并发的多线程测试环境,过段时间查看是否发生了问题。
本文共计3037个文字,预计阅读时间需要13分钟。
此文章被作者收录在系列文章《架构师必备》(系列)中。文章主要探讨在并行程序中,许多顺序程序的测试方法同样适用,但需要更广泛的覆盖度和更长的运行时间。并发类测试主要分为安全类别。
此文被笔者收录在系列文章 架构师必备(系列) 中
很多顺序程序的测试方法在并发程序中也适用,但需要更广泛的覆盖度和更长的运行时间。并发类的测试主要分为:安全性与活跃度的测试。活跃度测试包括:
- 吞吐量:在一个并发任务集中,已完成任务所占的比例。
- 响应性:从请求到完成一些动作之间的等待时间。
- 可伸缩性:增加更多的硬件或软件资源后,吞吐量是否会提高。
一、正确性测试
为并发类开发单元测试流程,也要先识别出不变约束和后验条件,这些都属于例行检查。
测试阻塞操作
大多数测试框架对并发性并不友好,它们只包含很少的工具,用来创建线程或监视线程,确保它们不会意外地终结。
能否把失败明确地与一个特定的测试关联起来,变得很重要。如果一个方法应该在某些特定条件下被阻塞,那么测试这种行为时,只有在线程没有执行完毕前,测试才是成功的。测试方法的阻塞,类似于测试方法抛出的异常,如果方法可以正常返回,则意味着失败。当方法成功地被阻塞后,还必须想办法解决方法的阻塞,做到这一点最常见的方法是通过中断。这需要你的阻塞活动可以提前返回或者抛出InterruptedException,以响应中断。
测试安全性
测试正确性一般都会采用单元测试的方式,测试安全性主要是发现数据竞争引起的错误,这需要一个并发的多线程测试环境,过段时间查看是否发生了问题。

