Java 并发程序的测试
概述
并发测试大致分为两类,即安全性测试与活跃性测试。安全性:不发生任何错误的行为。活跃性:某个良好的行为终究会发生。
在进行安全性测试时,通常会采用测试不变性条件的形式,即判断某个类的行为是否与其规范保持一致。
活跃性测试包括进展测试和无进展测试两方面,这些都是很难量化的。
与活跃性测试相关的是性能测试。性能可以通过多个方面来衡量,包括:
- 吞吐量:指一组并发任务中已完成任务所占的比例。
- 响应性:指请求从发出到完成之间的时间(也称为延迟)。
- 可伸缩性:指在增加更多资源的情况下(通常指CPU),吞吐量(或者缓解短缺)的提升情况。
正确性测试
在为某个并发类设计单元测试时,首先需要执行与测试串行类时相同的分析——找出需要检查的不变性条件和后验条件。
性能测试
性能测试通常是功能测试的延伸。事实上,在性能测试中应该包含一些基本的功能测试,从而确保不会对错误的代码进行性能测试。
虽然在性能测试与功能测试之间肯定会存在重叠之处,但它们的目标是不同的。性能测试将衡量典型测试用例中的端到端性能。
性能测试的第二个目标是根据经验值来调整各种不同的限值,例如线程数量、缓存容量等。这些限值可能依赖于平台的特性(例如,处理器的类型、处理器的步进级别、CPU的数量或内存大小等),因此需要动态地进行配置,而我们通常需要合理地选择这些值,从而使程序能够在更多的系统上良好地运行。
Java 并发程序的测试相关推荐
- ebs java并发_EBS中Java并发程序笔记(1)
在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...
- EBS中Java并发程序笔记(1)
在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...
- exchange java对象,【原】Java并发程序的一个应用Exchanger的实例
[原]Java并发程序的一个使用Exchanger的实例 今天看了些Exchanger的资料,有个喝水的例子不错.我这里细化了以下,并得到实现. 思路: 有一个Drinker和一个Waiter,有两个 ...
- 【FND】EBS中Java并发程序开发
开发步骤 下载相关标准包 fndutil.jar fndcp.jar fndctx.jar 下载目录$JAVA_TOP/oracle/apps/fnd/jar/ 写java类 定义包名规则: a. 如 ...
- java 并发测试程序_java并发编程实战:第十二章---并发程序的测试
并发程序中潜在错误的发生并不具有确定性,而是随机的. 安全性测试:通常会采用测试不变性条件的形式,即判断某个类的行为是否与其规范保持一致 活跃性测试:进展测试和无进展测试两方面,这些都是很难量化的(性 ...
- java holdslock_一种检测Java并发程序代码分支路径lock是否遗漏的方法
开发java程序中,程序员往往会用synchronized lock 进行临界资源保护和线程同步:android平台上,提供了一些技巧来减少锁被错误使用:使用Locked后缀作为函数名字:Locked ...
- 《Java并发编程实战》【第三部分 活跃性、性能与测试】
文章目录 第10章 避免活跃性危险 10.1 死锁 10.1.1 锁顺序死锁 10.1.2 动态的锁顺序死锁 10.1.3 在协作对象之间发生的死锁 10.1.4 开放调用 10.1.5 资源死锁 1 ...
- java cutdown_Java并发程序入门介绍
今天看了看Java并发程序,写一写入门程序,并设置了线程的优先级. class Elem implements Runnable{ public static int id = 0; private ...
- futuretask java 并发请求_Java面试题整理一(侧重多线程并发)
1..是否可以在static环境中访问非static变量? 答:static变量在Java中是属于类的,它在所有的实例中的值是一样的.当类被Java虚拟机载入的时候,会对static变量进行初始化.如 ...
最新文章
- 全球首个开源图像识别系统上线了!人脸、商品、车辆识别一网打尽!
- SpringBoot整合Druid数据源
- ffmpeg音视频基础知识
- 4n35光耦引脚图_光耦继电器的主要特点以及输入特性!先进光半导体
- 服务计算与服务生态系统 第一章测验题答案
- LINUX SHELL脚本的if语句实在是诡异
- 黑马学习之全平台听歌神器
- 无法启动此程序因为计算机中丢失d3dx,无法启动此程序,因此计算机中丢失d3dx9-41.dll怎么解决?...
- 【计蒜客 - 蓝桥训练】蒜厂年会(循环数列的最大子段和)
- yigo基础学习笔记4_业务报表
- html5项目改造Vue工程化
- 云重磅 | 阿里巴巴平均每天纳税超1.4亿;谷歌、Face book与AWS将共建美欧新海底电缆;阿里发布谣言粉碎机:1秒辨真伪...
- SQL判断某列中是否包含中文字符或者英文字符
- 利用JavaScript生成点名册
- 儿童编程c语言_5种最适合儿童的编程语言
- 多语言机器翻译 | (2) 编解码器结构
- 【毕业设计推荐】基于Django大连房源分析系统
- PCB学习笔记——PCB的铺铜方法
- 二维码教程之如何制作表白二维码
- 世界上最大的联合体GE
热门文章
- 宝洁网测、OT 线上测评
- “赌徒”泡泡玛特转身
- 微信小程序代码修改无效
- 应用在UVnano充电仓中的UVC杀菌灯珠
- 程序员,这是你想要的技术leader吗?
- 100亿数据找出最大的1000个数字的4种方法
- java+jsp基于ssm小熊猫水果管理系统
- 绝地求生2017.7.27服务器维护,绝地求生11月27日更新了什么内容_11月27日维护更新公告...
- 如何获得所有汉字_[日]笹原宏之日本的汉字出版
- android 无障碍的菜单,讯飞输入法Android V9.1.9652 菜单及表情适配无障碍模式