概述

并发测试大致分为两类,即安全性测试与活跃性测试。安全性:不发生任何错误的行为。活跃性:某个良好的行为终究会发生。
在进行安全性测试时,通常会采用测试不变性条件的形式,即判断某个类的行为是否与其规范保持一致。
活跃性测试包括进展测试和无进展测试两方面,这些都是很难量化的。
与活跃性测试相关的是性能测试。性能可以通过多个方面来衡量,包括:

  • 吞吐量:指一组并发任务中已完成任务所占的比例。
  • 响应性:指请求从发出到完成之间的时间(也称为延迟)。
  • 可伸缩性:指在增加更多资源的情况下(通常指CPU),吞吐量(或者缓解短缺)的提升情况。

正确性测试

在为某个并发类设计单元测试时,首先需要执行与测试串行类时相同的分析——找出需要检查的不变性条件和后验条件。

性能测试

性能测试通常是功能测试的延伸。事实上,在性能测试中应该包含一些基本的功能测试,从而确保不会对错误的代码进行性能测试。
虽然在性能测试与功能测试之间肯定会存在重叠之处,但它们的目标是不同的。性能测试将衡量典型测试用例中的端到端性能。
性能测试的第二个目标是根据经验值来调整各种不同的限值,例如线程数量、缓存容量等。这些限值可能依赖于平台的特性(例如,处理器的类型、处理器的步进级别、CPU的数量或内存大小等),因此需要动态地进行配置,而我们通常需要合理地选择这些值,从而使程序能够在更多的系统上良好地运行。

Java 并发程序的测试相关推荐

  1. ebs java并发_EBS中Java并发程序笔记(1)

    在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...

  2. EBS中Java并发程序笔记(1)

    在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...

  3. exchange java对象,【原】Java并发程序的一个应用Exchanger的实例

    [原]Java并发程序的一个使用Exchanger的实例 今天看了些Exchanger的资料,有个喝水的例子不错.我这里细化了以下,并得到实现. 思路: 有一个Drinker和一个Waiter,有两个 ...

  4. 【FND】EBS中Java并发程序开发

    开发步骤 下载相关标准包 fndutil.jar fndcp.jar fndctx.jar 下载目录$JAVA_TOP/oracle/apps/fnd/jar/ 写java类 定义包名规则: a. 如 ...

  5. java 并发测试程序_java并发编程实战:第十二章---并发程序的测试

    并发程序中潜在错误的发生并不具有确定性,而是随机的. 安全性测试:通常会采用测试不变性条件的形式,即判断某个类的行为是否与其规范保持一致 活跃性测试:进展测试和无进展测试两方面,这些都是很难量化的(性 ...

  6. java holdslock_一种检测Java并发程序代码分支路径lock是否遗漏的方法

    开发java程序中,程序员往往会用synchronized lock 进行临界资源保护和线程同步:android平台上,提供了一些技巧来减少锁被错误使用:使用Locked后缀作为函数名字:Locked ...

  7. 《Java并发编程实战》【第三部分 活跃性、性能与测试】

    文章目录 第10章 避免活跃性危险 10.1 死锁 10.1.1 锁顺序死锁 10.1.2 动态的锁顺序死锁 10.1.3 在协作对象之间发生的死锁 10.1.4 开放调用 10.1.5 资源死锁 1 ...

  8. java cutdown_Java并发程序入门介绍

    今天看了看Java并发程序,写一写入门程序,并设置了线程的优先级. class Elem implements Runnable{ public static int id = 0; private ...

  9. futuretask java 并发请求_Java面试题整理一(侧重多线程并发)

    1..是否可以在static环境中访问非static变量? 答:static变量在Java中是属于类的,它在所有的实例中的值是一样的.当类被Java虚拟机载入的时候,会对static变量进行初始化.如 ...

最新文章

  1. 全球首个开源图像识别系统上线了!人脸、商品、车辆识别一网打尽!
  2. SpringBoot整合Druid数据源
  3. ffmpeg音视频基础知识
  4. 4n35光耦引脚图_光耦继电器的主要特点以及输入特性!先进光半导体
  5. 服务计算与服务生态系统 第一章测验题答案
  6. LINUX SHELL脚本的if语句实在是诡异
  7. 黑马学习之全平台听歌神器
  8. 无法启动此程序因为计算机中丢失d3dx,无法启动此程序,因此计算机中丢失d3dx9-41.dll怎么解决?...
  9. 【计蒜客 - 蓝桥训练】蒜厂年会(循环数列的最大子段和)
  10. yigo基础学习笔记4_业务报表
  11. html5项目改造Vue工程化
  12. 云重磅 | 阿里巴巴平均每天纳税超1.4亿;谷歌、Face book与AWS将共建美欧新海底电缆;阿里发布谣言粉碎机:1秒辨真伪...
  13. SQL判断某列中是否包含中文字符或者英文字符
  14. 利用JavaScript生成点名册
  15. 儿童编程c语言_5种最适合儿童的编程语言
  16. 多语言机器翻译 | (2) 编解码器结构
  17. 【毕业设计推荐】基于Django大连房源分析系统
  18. PCB学习笔记——PCB的铺铜方法
  19. 二维码教程之如何制作表白二维码
  20. 世界上最大的联合体GE

热门文章

  1. 宝洁网测、OT 线上测评
  2. “赌徒”泡泡玛特转身
  3. 微信小程序代码修改无效
  4. 应用在UVnano充电仓中的UVC杀菌灯珠
  5. 程序员,这是你想要的技术leader吗?
  6. 100亿数据找出最大的1000个数字的4种方法
  7. java+jsp基于ssm小熊猫水果管理系统
  8. 绝地求生2017.7.27服务器维护,绝地求生11月27日更新了什么内容_11月27日维护更新公告...
  9. 如何获得所有汉字_[日]笹原宏之日本的汉字出版
  10. android 无障碍的菜单,讯飞输入法Android V9.1.9652 菜单及表情适配无障碍模式