第四讲定义操作方式_第1页
第四讲定义操作方式_第2页
第四讲定义操作方式_第3页
第四讲定义操作方式_第4页
第四讲定义操作方式_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四讲定义操作方式第1页,共53页,2023年,2月20日,星期三内容概述基本定义开发操作剖面第2页,共53页,2023年,2月20日,星期三1.概述操作剖面(Operationalprofiles)是有关正在开发的软件产品的用户使用的具体方式

,它可以使开发者能够合理分配开发和测试资源.通过这种信息,开发者能够改进开发和测试效率.使测试更现实.从工程观点的角度看,我们经常从对工作过程的观察开始并定义软件(或者硬件)系统的操作方式,这些系统将实现工作过程中的各个活动.第3页,共53页,2023年,2月20日,星期三2.基本定义第4页,共53页,2023年,2月20日,星期三2.1定义:操作某一操作是具有较短的持续时间、主要的系统逻辑任务,它在完成后将控制交还给系统,它的处理与其它操作应该有明显的不同.“主要的”意味着某一操作必须与产品的某一功能需求或者特性相关,而不是设计过程的某一子任务.操作是逻辑概念,它可以跨越软件,硬件和人的行为。它以一系列片断存在,某一服务器将以过程的方式执行每一片断.操作甚至可以是非连续的时间片断。第5页,共53页,2023年,2月20日,星期三某一操作是具有较短的持续时间、主要的系统逻辑任务,它在完成后将控制交还给系统,它的处理与其它操作应该有明显的不同.“较短的持续时间”意味着在正常的负荷条件下,每一小时执行的操作可能有成百甚至上千个.“明显的不同”意味着有很大的可能性,某一操作作为一个实体包含了在任何其它操作中没有发现的失效。至少在100行交付的可执行代码行上不同(统计的结果)第6页,共53页,2023年,2月20日,星期三例子由用户执行的命令,例如输入电话号码,某些时候执行该命令时,用户通过屏幕与系统交互对外部系统的输入的响应,例如对事务的处理(如购买,销售,预订等),对事件的处理(如报警,机械移动等)由自己的系统触发的常规的后台程序(例如,安全审计,文件备份)第7页,共53页,2023年,2月20日,星期三2.2定义:运行&运行类型操作的可能的实例,被称为运行(run

),它是工作的最小分割,可以由外部启动.运行与输入状态(inputstate)相关,它包含了对系统而言,输入变量

(inputvariables)

(即暴露在外,影响系统的数据元素)的完整集合.第8页,共53页,2023年,2月20日,星期三我们通过运行的输出状态(创建的输出变量的值的集合)来判定程序的可靠性输出变量是外露于运行,并由运行所设置的数据项运行将输入状态转化为输出状态,因此将包含程序的某一“路径”第9页,共53页,2023年,2月20日,星期三数据项对于一个运行而言,只能有一个值。因此对于取不同值的量应该被看成不同的数据项。数据元素并不与物理的存储位置相对应。多个物理位置可以通过“分时共享”对应于多个数据元素第10页,共53页,2023年,2月20日,星期三2.3操作vs.功能功能是运行类型的集合,它们在需求阶段确定.操作也是运行类型的集合,它在开发阶段确定.需求阶段的功能可能成为开发阶段的操作.第11页,共53页,2023年,2月20日,星期三2.4定义:操作剖面剖面(Profile)是相互之间没有关系的、可以被称为“元素”的待选事物和它们的发生概率操作剖面(OperationalProfile)是操作(操作的名字和频率)的集合和它们发生的概率.表示操作剖面的方法表格表示图形表示第12页,共53页,2023年,2月20日,星期三表示表格表示由操作名字的列表和它们发生的可能性构成.OperationOperationperhourProbabilityProcessvoicecall,nopager,answer18,0000.18Processvoicecall,nopager,noanswer17,0000.17Processvoicecall,pager,answer17,0000.17Processfaxcall15,0000.15………………Total100,0001第13页,共53页,2023年,2月20日,星期三在图形表示中,包括节点:操作的属性分支:

属性值发生的概率:

与每一分支相连Graphicalrepresentationcanbegeneratedfromtabularrepresentationandviceversa.第14页,共53页,2023年,2月20日,星期三2.5定义:操作模式操作模式(Operationalmode)是系统使用的某一特别的模式,或者是环境条件的集合,由于可能激发不同的失效,因此它们需要逐个进行单独的测试.例子:电话系统高峰(peak)时间,最初(prime)时间和空闲(off)时间.相同的操作可能以不同的概率、在不同的操作模式中出现.系统操作剖面(Systemoperationalprofile)必须包含所有重要的操作模式.第15页,共53页,2023年,2月20日,星期三3.开发操作剖面第16页,共53页,2023年,2月20日,星期三3.1谁来开发许多情况下,系统工程师将和用户一起定义操作剖面,测试人员需要理解如何开发操作剖面,甚至参与或者领导剖面的开发,因为这样可以保证操作剖面能够满足测试的需要某些时候,系统工程师开发操作剖面的第一个草稿,系统架构师和开发人员对它进行精华第17页,共53页,2023年,2月20日,星期三3.2何时开发在需求阶段开发初步的版本有助于进行性能的分析在早期开发系统操作剖面有助于我们进行资源分配和优先级定义,使我们可以实施操作开发策略(OperationalDevelopment)即对操作进行排序,在第一个发布版本中实现那些最常用的和最关键的操作,而将那些较少用到的和较不关键的操作推迟发布,可以用最快的时间将最重要的能力在市场上推出精化操作软件(ReducedOperationSoftware)通过仅实现常用的或者关键的操作,并使用这些操作来实现较少使用的或较不关键的操作(或者根本不实现这些操作),可以节约大量的开发时间和费用第18页,共53页,2023年,2月20日,星期三3.3代价多大?为一个中等规模的项目(10个开发人员,100K代码行,18个月的开发时间)开发操作剖面大概需要一个人月的时间.相同的操作剖面可以用于同一软件(或者微小的改变)的不同的发布中,不需要额外的代价.第19页,共53页,2023年,2月20日,星期三3.4如何进行:过程确定操作模式.确定操作发起者.确定表示方法.建立功能/操作列表.确定依据不同的属性值的各个操作的发生次数.将发生次数除以总次数以确定发生频率.第20页,共53页,2023年,2月20日,星期三3.4.1操作模式确定所有可能的操作模式,并可以根据以下方面的因素确定最关键的模式:时间(timeofyear,dayofweek,timeofday)业务量水平不同的用户类型(customeroruser)用户的经验(noviceorexpert)系统的成熟度(数据库总数据量)对系统能力的影响Reducedsystemcapability精简的系统能力第21页,共53页,2023年,2月20日,星期三例子对于FoneFollower系统,操作模式为峰值时间:电话负荷很重,无法执行管理或者审计操作主要时间:平均的负荷,执行管理操作,但是没有审计操作空闲时间:低的负荷,比较少的管理操作,很多的审计操作管理操作指的是电话公司增加或者减少客户审计操作表示对数据的周期性检查第22页,共53页,2023年,2月20日,星期三3.4.2操作的发起人可能的系统发起者(在用例中的角色):系统的用户

(在系统中发起事件的任何人,包括系统管理员,客户类型和用户类型)外部系统

(与正在开发的系统有接口的其它系统)系统自身的控制者

(管理和/或维护任务:审计,备份,等等)第23页,共53页,2023年,2月20日,星期三3.4.3选择表示方法如果对于每一操作只有少量的属性,采用表格表示方法如果绝大多数操作采用多个属性来描述,采用图形表示.也可能采用混合方式进行表示或者在两种方法之间进行转换.第24页,共53页,2023年,2月20日,星期三3.4.4创建操作列表为了创建操作列表,一般从发起者出发来分解对处理中的不同情况分配一个不同的操作或者属性值,除非它发生的概率非常小并且执行非关键的功能。第25页,共53页,2023年,2月20日,星期三OperationinitiatorOperationSubscriberPhonenumberentrySystemadministratorAddsubscriberDeletesubscriberTelephonenetworkProcessvoicecall,nopager,answerProcessvoicecall,nopager,noanswerProcessvoicecall,pager,answerProcessvoicecall,pager,answeronpageProcessvoicecall,pager,noansweronpageProcessfaxcallSystemcontrollerAuditsectionofphonenumberdatabaseRecoverfromhardwarefailure第26页,共53页,2023年,2月20日,星期三(1)操作的数目可靠性和测试的代价直接与操作的数目成比例.一般在20到几百之间.该数目随着项目规模,操作模式,关键输入变量等的增加而增加.一般而言,应该减少该数目以反映最为重要的操作,这些操作能够包含不同处理方式的所有情形.第27页,共53页,2023年,2月20日,星期三(2)显式or隐式

/1关键输入变量(Keyinputvariable):

是对两个或者多个操作的输入状态而言的公共变量,它的不同取值能够区别这些操作.隐式剖面(ImplicitProfile):

采用一组子剖面序列来进行表示,每一个代表了某一关键的变量和它的条件概率.显式(ExplicitProfile):

表示为所有关键输入变量取值的序列.一般采用隐式形式相对容易.第28页,共53页,2023年,2月20日,星期三(2)显式or隐式

/2例子:隐式剖面:InputvariableA InputvariableBvalue probability value probabilityA1 0.6 B1 0.7A2 0.3 B2 0.2A3 0.1 B3 0.1例子:显式剖面:A1B1 0.42 A1B2 0.12 A1B3 0.06A2B1 0.21 A2B2 0.06 A2B3 0.03A3B1 0.07 A3B2 0.02 A3B3 0.01第29页,共53页,2023年,2月20日,星期三假设设置参数A对所执行代码的影响比参数B要大的多,那么有几种可能?1.一个操作X,包含参数值的所有组合2.两个操作A1B A2B3.六个操作:A1B1A1B2 A1B3A2B1A2B2 A2B3第3种情况,每种参数值都是一个独立的操作,因为B的取值对所执行代码的影响不大.所以最好不要采用该情况第30页,共53页,2023年,2月20日,星期三第31页,共53页,2023年,2月20日,星期三检查操作表是否完整的好方法是检查输入空间以确保它被很好地覆盖.一个程序的输入空间是在其运行中可以发生的输入状态的集合或输入变量值的集合.定义输入空间时,最重要的是开发出一份完整的输入变量列表.这份列表要给出所有的输入变量,除非以非常高的概率取某个值的变量除外.通过定义操作来覆盖输入空间时,可以不需要覆盖的输入空间的量依赖于系统的可靠性目标.如果一个系统的可靠性目标为RF,则覆盖率(已定义操作的出现概率之和)必须至少是0.99.这提供了一个通过清除极少发生操作来减少操作总量的机会.理论上可以去除那些概率小于1减去可靠性目标的非关键操作.然而,为了留出一定的错误余量,可以设置为那个值的一般.如可靠性目标为0.99,则允许去除出现率小于0.005的非关键操作第32页,共53页,2023年,2月20日,星期三(3)初始操作列表初始的操作列表是一个试验性的列表,一般依据操作模式和操作的发起者进行分类对确定初始操作有帮助的信息来源(文档)包括:系统需求(主要来源)用例,功能模型工作过程流图用户手册草稿前面的版本原型第33页,共53页,2023年,2月20日,星期三(4)环境变量环境变量描述了影响程序运行方式(采用的控制路径和访问的数据)的条件例如:通信负荷,硬件配置,操作系统配置某些环境变量可以映射为操作模式列出所有可能使程序以不同的方式进行响应的环境变量并确定哪一个可能对程序具有主要的影响.第34页,共53页,2023年,2月20日,星期三(5)最终操作类表

/1最终的操作列表根据对初始操作列表的分析来确定,然后依据下列方面的数据来缩减列表操作模式关键输入变量操作分组:分在同组的操作应该具有相同的输入变量集合如果某些操作之间存在关联(例如,某一操作的发生依赖于另一操作的发生)最好把它们合并清除极少发生操作第35页,共53页,2023年,2月20日,星期三(5)最终的操作列表/2注意功能和操作之间的区分某些功能(实现不同的任务)可以映射为某些操作

(实现不同的处理,代码路径)例子:交换系统中“重新分配一门电话”的功能可以映射为“removal”和“install”操作第36页,共53页,2023年,2月20日,星期三(5)最终的操作列表/3如果操作非常关键,我们也需要包括(我们在测试中每一个操作至少分配一个测试案例)重启系统或者数据库清理等通常也包括在内第37页,共53页,2023年,2月20日,星期三3.4.5发生数/1对每一操作模式,发生数根据现场数据,系统日志,手工数据采集和经验来确定.如果此时发现某些操作之间具有关联,最好把它们合并.如果没有任何信息,可以将它们设为相等第38页,共53页,2023年,2月20日,星期三例子:Callmanagementsystem第39页,共53页,2023年,2月20日,星期三“Dialingtype”attributeStandard=800Abbrev=200Total=1000External=560Internal=240Total=800External=20Internal=180Total=200“Calldestinationattribute”第40页,共53页,2023年,2月20日,星期三3.4.5发生数/2在估计发生数时,不要把“填充发生”计算在内。它是专门设计在空闲时间执行的如维护等的一类操作例如,对FoneFollower,我们允许数据库审计操作发生在系统空闲的时候,由于在晚上和周末都有很多空闲的时候,此时它的发生概率可能为0.95,但是它的执行概率实际上为0.009第41页,共53页,2023年,2月20日,星期三3.4.5发生数/3收集现场数据通常是要花费较多代价的,其它方法?开发一个特殊的记录和测量工具它必须能够识别不同的操作记录发生次数该工具可以用到所有的用户处或者部分用户处进行采样如果对于新系统或者在系统中加一些操作,那么发生率的估计一般就是由人工依据经验来估计估计中一定的偏差不会给失效强度带来太大的影响,一般估计为20%的影响,所以意味着我们不必要过分强调其准确性第42页,共53页,2023年,2月20日,星期三3.4.6发生概率发生概率为每一个操作的发生数除以所有的发生数第43页,共53页,2023年,2月20日,星期三“Dialingtype”attributeStandard=0.8Abbrev=0.2Total=1000External=0.7Internal=0.3Total=800External=0.1Internal=0.9Total=200“Calldestinationattribute”我们通常表示为条件概率,因为比较容易判断和计算第44页,共53页,2023年,2月20日,星期三假定我们定的FoneFollower的强度目标为每百万个电话95个失效,那么,每一个电话的可靠性为0.999905那么我们可以把那些不是非常关键的,发生概率低于0.00005的操作去掉第45页,共53页,2023年,2月20日,星期三4特殊情况讨论如果系统开发过程中操作的定义发生变化?模块使用数据的利用第46页,共53页,2023年,2月20日,星期三4.1处理系统开发中的操作定义变化如果原来三个操作,A,B,C,发生概率分别为0.54,0.36,0.1,现在变为操作W,X,Y,Z,如何办

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论