活动执行

软件測试基本方法(一)之软件測试

冷暖自知 提交于 2020-03-15 19:49:19
为什么要进行软件測试: 产品质量的保证 控制成本的关键 软件可靠性确认 让企业具备国际竞争力 软件測试定义: 软件測试是由“ 验证(verification) ”和“ 有效性确认(validation) ”活动构成的总体。 验证:检验软件是否已正确地实现了产品规格书所定义的系统功能和特性。 有效性确认:确认所开发的软件是否满足用户真正需求的活动。 软件測试和软件开发的关系: 软件缺陷: 定义 :是指计算机程序中存在的不论什么一种破坏正常执行能力的错误,或者隐藏的功能缺陷,其结果会导致软件产品在某种程度上不能满足用户的须要。 修复软件缺陷的代价: 修复缺陷的代价不是随着时间线性添加,而是近乎指数。 软件測试分类: 按測试对象或阶段:需求审查、设计审查、单元測试、集成測试、系统測试、验收測试 按測试方法:白盒、黑盒 按目标:可靠性測试、兼容性測试、安全性測试、性能測试、 回归測试(保证软件中新的变化不会对原有功能的正常使用有影响而进行的測试) 、 压力測试(用来检查系统在不同负载特别是高负载条件下的执行情况,以发现系统性能瓶颈、不稳定等问题) 按软件是否在測试时被执行:静态測试(对源代码进行研读,不须要编译执行,查找错误和收集度量数据,包含对规格说明书的评审)、动态測试(通过执行程序和測试用例,依据系统行为和输入输出关系来发现错误) 软件測试的工作范畴: 软件測试工作的组织与管理

分布式事务中常见的三种解决方案

我的梦境 提交于 2020-03-05 19:11:28
一、分布式事务前奏 事务:事务是由一组操作构成的可靠的独立的工作单元,事务具备ACID的特性,即原子性、一致性、隔离性和持久性。 本地事务:当事务由资源管理器本地管理时被称作本地事务。本地事务的优点就是支持严格的ACID特性,高效,可靠,状态可以只在资源管理器中维护,而且应用编程模型简单。但是本地事务不具备分布式事务的处理能力,隔离的最小单位受限于资源管理器。 全局事务:当事务由全局事务管理器进行全局管理时成为全局事务,事务管理器负责管理全局的事务状态和参与的资源,协同资源的一致提交回滚。 TX协议:应用或者应用服务器与事务管理器的接口。 XA协议:全局事务管理器与资源管理器的接口。XA是由X/Open组织提出的分布式事务规范。该规范主要定义了全局事务管理器和局部资源管理器之间的接口。主流的数据库产品都实现了XA接口。XA接口是一个双向的系统接口,在事务管理器以及多个资源管理器之间作为通信桥梁。之所以需要XA是因为在分布式系统中从理论上讲两台机器是无法达到一致性状态的,因此引入一个单点进行协调。由全局事务管理器管理和协调的事务可以跨越多个资源和进程。全局事务管理器一般使用XA二阶段协议与数据库进行交互。 AP:应用程序,可以理解为使用DTP(Data Tools Platform)的程序。 RM:资源管理器,这里可以是一个DBMS或者消息服务器管理系统

分布式事务中常见的三种解决方案

南笙酒味 提交于 2020-02-25 00:42:39
目录 一、分布式事务前奏 二、柔性事务解决方案架构 (一)、基于可靠消息的最终一致性方案概述 (二)、TCC事务补偿型方案 (三)、最大努力通知型 三、基于可靠消息的最终一致性方案详解 (一)、消息发送一致性 (二)、保证消息一致的变通做法 (三)、常规MQ消息处理流程和特点 (四)、消息重复发送问题和业务接口幂等性设计 (五)、本地消息服务方案 (六)、独立消息服务方案 (七)、消息服务子系统的设计实现 一、分布式事务前奏 事务:事务是由一组操作构成的可靠的独立的工作单元,事务具备ACID的特性,即原子性、一致性、隔离性和持久性。 本地事务:当事务由资源管理器本地管理时被称作本地事务。本地事务的优点就是支持严格的ACID特性,高效,可靠,状态可以只在资源管理器中维护,而且应用编程模型简单。但是本地事务不具备分布式事务的处理能力,隔离的最小单位受限于资源管理器。 全局事务:当事务由全局事务管理器进行全局管理时成为全局事务,事务管理器负责管理全局的事务状态和参与的资源,协同资源的一致提交回滚。 TX协议:应用或者应用服务器与事务管理器的接口。 XA协议:全局事务管理器与资源管理器的接口。XA是由X/Open组织提出的分布式事务规范。该规范主要定义了全局事务管理器和局部资源管理器之间的接口。主流的数据库产品都实现了XA接口。XA接口是一个双向的系统接口

常用分布式事务解决方案

半腔热情 提交于 2020-02-18 14:37:02
出处: https://github.com/clsaa/Distributed-Transaction-Notes 。 作者总结得很全面,做个笔记搬运。 一、 两阶段提交(2PC) 一个基于两阶段提交协议的分布式事务框架(LCN) 二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol))。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。 所谓的两个阶段是指:第一阶段:准备阶段(投票阶段)和第二阶段:提交阶段(执行阶段)。 1. 准备阶段 事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo和undo日志

什么是验证?

荒凉一梦 提交于 2020-02-10 17:21:50
一、什么是验证? 比如,我们设计了一件shirt,我么要确认它的袖子是否一样长、尺寸和颜色是否是客户所需、扣子是否有缺损等,若都满足,则判定合格,这个过程就是验证。 二、我们进行验证,除了有验证计划,还需要构建测试平台。(DUT:被测器件) 三、为了直观的看到芯片验证在整个项目中的地位和作用,下面直接给出 芯片完整开发流程 。 1、新的芯片项目都是首先从市场人员与目标客户沟通开始的。这中间,市场人员会收集客户对于芯片的要求(主要包括功能、尺寸、功耗、性能),这些指标会被记录在 设计结构和产品文档 中去。 2、客户关心的系统层面的功能要求会被系统设计人员按照功能进一步划分为各个独立的子系统模块,这些子系统如果本身过于庞大,也会被进一步划分为功能模块,直到被划分的尺寸可以被小的设计团队进行硬件设计,并交付设计 功能描述文档 。 3、硬件工作人员将模块初步完成RTL级(寄存器级别,Register Transfer Level)的 硬件描述语言文件 。硬件设计人员一般会按照芯片的功能模块划分来分成不同的功能小组,同时系统设计人员的数目也会随着系统复杂程度的升高而增加。在硬件设计过程中,硬件设计工程师会将具体的功能描述文本通过逻辑翻译成为硬件描述语言(HDL,Hardware Description Language),目前使用广泛的HDL语言VHDL和Verilog均被各个大的EDA

第二章、进程的描述与控制

荒凉一梦 提交于 2020-01-13 14:57:18
第二章、进程的描述与控制 2.1 前趋图和程序执行 2.1.1 前趋图 概念: 所谓前趋图:指一个有向无循环图(DAG),它用于描述进程之间执行的先后顺序。 2.1.2 程序顺序执行 特征: 顺序性 封闭性:指程序在封闭的环境中运行,程序运行时独占全机资源,资源的状态只有本程序才能改变,程序一旦开始执行,其执行结果不受外界因素影响 可再现性:只要条件相同还会得到相同的执行结果。 2.1.3 程序并发执行 特征: 间断性 失去封闭性 不可在现性 2.2进程的描述 2.2.1 进程的定义和特征 定义 为了使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了进程的概念。 为了使参与并发执行的每个程序都能独立运行,在操作系统中必须为之分配一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。 因此进程的定义为: 由程序段、相关的数据段和PCB三部分构成的进程实体。 比较典型的定义有: 进程是程序的一次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是具有独立功能的程序在一个数据结合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 进程的特征 动态性 并发性 独立性 异步性 2.2.2 进程的基本状态以及转换 进程三种基本状态 由于多个进程在并发执行时共享系统资源

分布式事务

孤街醉人 提交于 2020-01-07 20:12:05
前置知识 事务: 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任意一个执行失败,将导致整个事务的回滚。简单来说就是提供一种”要么什么都不做,要不全都做“的机制。 本地事务: 当事务是由资源管理器本地管理时被称为本地事务。本地事务的有点是支持严格的 ACID 特性,高效,可靠,状态可以只在资源管理器中维护,而且应用编程模型简单。但是本地事务不具备分布式事务的处理能力,隔离的最小单位受限于资源管理器。MySql 的 InnoDB 通过日志(Redo 和 Undo)和锁来保证事务。 全局事务: 当事务由全局事务管理器进行全局管理时成为全局事务,事务管理器负责管理全局事务状态和参与的资源,协同资源的一直提交回滚。 刚性事务和柔性事务 刚性事务:遵循 ACID 原则,强一致性,典型的例子就是数据库事务。 柔性事务:尊循 BASE 理论,最终一致性,允许在一定时间内,不同节点的数据不一致,但要求最终一致性。 分布式知识 CAP 分布式系统在设计时只能在一致性,可用性和分区容错性中满足两种,无法兼顾三种。 C: 在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的要求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。 A:

[译]AS3 中的垃圾收集

百般思念 提交于 2019-12-29 02:31:32
由于篇幅过长,请允许我偷个懒吧^_^ 弄了pdf 相对好一些 pdf下载 最近在看 GC (垃圾收集器)相关的东西,发现了几篇好文,虽然比较老了( 06 年的),但是很值得看;翻译了一下,这里的 GC (垃圾收集器)主要是说 flash player9 的。偶英文比较糟糕,有非常少量的语句没有翻译,因为偶看不懂囧 大家多担待, 欢迎拍板砖 ^_^ 本文大部分是来自: http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html ;其中 part1 的译文来自: http://bbs.airia.cn/ActionScript/thread-3656-1-1.aspx 。其他为本人翻译大概集合了 5 篇文章。 建议先将“前奏”看完,这样会对理解本文有很大的帮助。 前奏: 理解 delete 关键字 在我的一篇博文中 how the garbage collector works in Flash Player 9 , 塞德里克尼希米记(原名: Cédric Néhémie ,名字是 google 的囧 )小盆友提了一个非常好的问题:为什么 delete 一个非动态类的属性时会抛异常呢? delete 关键字是否是真的将对象从内存中删除了呢? 提及到这个话题文档并不是很多,即使有也是非常难找

采购管理核心流程

旧巷老猫 提交于 2019-12-23 07:34:20
采购核心流程 包括采购请购,采购订单,采购接收。 而实际上企业的采购业务涉及到更多的流程,包括物料,供应商的认证和维护,采购寻源,招投标等一系列流程。 对于采购需要用到得供应商信息维护,物料信息的维护在前面已经有说明。物料和供应商是采购管理的基础数据,在物料和供应商都维护后,还可以进一步维护供应 商和物料的对应关系信息,在ERP里面叫供应来源维护。 供应来源维护包括物料批准的供应商列表,批准供应商列表会讲物料,供应商,供应商发运组织和地点等 建立对应关系。 一个物料可以有多个合格供应商,那么可以进一步维护每个供应商的供货比例信息。那么在定义了供应来源规则和每个供应商的供货比例后,可以根据事先定义的百 分比把计划订单采购分到不同供应商。这种场景一般在更加采购申请或MRP计划需求信息,自动生成采购订单的时候使用。从一个长周期时间段来看,每个供应商 的供货量应该符合供货比例分配设置。 采购请购流程 采购请购单和采购订单 1.制作主体:请购单各个业务需求部门都可以提交,采购订单只有采购部门能够制作。 2.单据内容:请购部门只关心请购物料和交期,一般不指定具体的供应商和价格,供应商和价格是采购的事。 3.对应关系:请购一般根据项目需求,可能需要从多个供应商采购,一张请购单可对应到多种采购订单。 4.基础数据:请购的物料和供应商都可能是新的,也可能是已有的,根据请购内容涉及到不同采购实施策略。

Activiti工作流的应用示例

纵然是瞬间 提交于 2019-12-20 01:13:50
Activiti工作流的应用示例 1、新建流程模型 模型管理->模型工作区 点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节 2、在线流程设计器 模型管理->模型工作区->编辑 3、设置流程属性 l 名称:流程定义名称 l 描述信息:流程定义描述 l 流程标识:流程定义KEY,对应procDefKey,用来标识一个流程 4、拖拽元素介绍  Start event:开始事件  End entit:结束事件  User task:用户任务活动  Service task:服务任务活动  Exclusive gateway:独家网关,排它网关通道,只能有一条分支执行,如if else  Parallel gateway:并行网关,并行网关通道,所有分支一块执行 更多介绍请参考: http://www.mossle.com/docs/activiti/#bpmnConstructs 5、流程发起人的流程变量 在开始节点的属性中设置“启动器”(流程发起人)的变量,例如:applyUserId 设置以后,在某个任务的属性中,可以设置参与者为${applyUserId},这样可以实现【谁发起谁执行】,请参考下图: 当发起人发起某个流程,在某个环节被驳回的时候,如果希望流程驳回到发起人,可使用方法。 6、表单概念 普通表单:每个节点的表单内容都写死在JSP或者HTML中。