软件工程电子教案_第1页
软件工程电子教案_第2页
软件工程电子教案_第3页
软件工程电子教案_第4页
软件工程电子教案_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、软件测试软件学院 内容提纲You are here!你在这儿!软件测试基础测试的概念与原则、测试文档软件测试活动软件测试技术黑盒测试与白盒测试等价类划分、边界值分析路径测试、基于状态的测试面向对象的测试2验证与确认 验证与确认的基本概念与活动模型 静态方法:走查、检查 基本术语错误(Error)错误是指导致系统可能包含故障的人的行为,如输入错误、需求错误、设计错误等。缺陷(Defect,Bug)缺陷是错误的表现,包括过错缺陷和遗漏缺陷。故障(Fault)故障是指系统的规格说明与其行为之间的偏差,通常由一个或多个缺陷引起。3 基本术语验证(Verification)我们是否在正确地?软件验证试图

2、证明在软件生存周期的各个阶段,软件或中间确性。是否能够满足客户需求,包括一致性、完整性和正确认(Validation)我们是否在正确的?软件确认的目的是保证所开发的最终软件的需求。能够符合用户说明:验证强调对于过程的检验,确认强调对于结果的检验。4 软件错误或缺陷软件错误(或软件缺陷)的表现软件未达到软件出现了说明书标明的功能;说明书指明出现的错误;软件功能超出了软件未达到说明书指明的范围;说明书虽未指出但应达到的目标;软件测试认为软件难以理解、不易使用、运行速度缓慢、或者最终用户不满意。有错是软件的属性,而且是无法改变的。因此,关键在于如何避免错误的产生和消除已经产生的错误,使程序中的错误密

3、度达到尽可能低的程度。5 验证与确认错误修复错误错误缺陷错误缺陷故障缺陷6 这是什么?7 错误的状态8 算法错误9 机械错误10 处理错误或缺陷:验证?11 处理错误或缺陷:冗余?12 处理错误或缺陷:特性?13 处理错误或缺陷:补丁?14 处理错误或缺陷:测试?15 另一种观点错误预防(在系统发布之前实施)使用好的程序设计方法来减少复杂性使用版本来防止系统的不一致应用验证技术来防止算法错误错误检测(运行时实施)的方式发现错误测试:以事先调试:假设从意外故障着手可以找到错误:状态信息,发现性能错误错误恢复(一旦系统发布后出现错误时实施)数据库系统:提供从故障中恢复的基本事务处理模块冗余:将不止

4、一个组件分配执行同一个操作恢复程序:该程序处理错误信息,使系统从故障中恢复过来16 验证与确认的活动模型17 验证与确认的活动模型需求分析与规格说明阶段用例表示待的场景,有助于建立完整的系统,可以用于在后续的实现阶段生成测试用例;形式化方法(如状态机)可以自动地检验一致性和完整性等 特性;需求检查、需求评审、原型方法设计阶段断言、抽象数据类型、契约设计等是详细设计的验证工具设计走查、设计检查、设计评审18 验证与确认的活动模型软件实现阶段软件测试是一种主要的验证与确认工具代码走查、代码检查、代码评审动态工具(如断言的动态)验证与确认的方式静态方法:通过人工分析或程序正确性证明的方式来确认程序的

5、正确性,包括走查、检查等方法;动态方法:通过动态分析和程序测试来检查程序执行状态,以确认程序是否有问题。19 评审评审(Review)评审是由若干开发、项目经理、测试、用户或领域等组成一个会审小组,通过阅读、讨论和争议,对工作 制品进行静态分析的过程。类型:需求评审、设计评审和代码评审。评审过程小组提前把需求规格说明、设计说明或程序代码及有关要求、规范等分发给小组成员,作为评审的依据;在充分阅读有关材料后召开评审会议,主要开发进行讲解,其他成员提出问题并展开讨论,是否错误;评审小组形成评审的报告。20 走查走查(Walkthrough)走设计或编程组成一个走查小组,通过阅读一段文档或代码,并进

6、行提问和讨论,从而发现可能的缺陷、遗漏和的地方。类型:设计走查、代码走查。走查过程与评审过程类似,即先把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会;与评审的区别:评审通常是简单地读程序或对照错误检查表进行检查;走机运行一遍,并是按照所提交的测试用例,人工模仿计算跟踪情况。21 走查走开发者的一次友好的会议,需要仔细,并有明确的目的、日程、持续时间和参与,许多小组以为走查。走几天:召集人将收集的一些要在会上的材料(模型、文档、程序代码等)分发给参与者,参与者研究这些材料并在会议之前提交意见。会议期间:召集人提出大家的意见并对每一项进行讨论。会议时间比较短,一般 23 小时。会议的

7、目的是查明问题,而不是干扰开发者。会议的思想是确认问题的,甚至不必去谋求问题的解决。进行解决。会后:将问题分发给相应22 检查检查(Inspection)检一些经过严格训练的根据评估标准,对于开发过程中的或中间制品进行检查,发现其中的错误。检查一般是按规定程序和时间计划进行的,参与者来自开发、测试、质量保证或用户,以37人组成小组。检查过程检查遵循一个严格的过程,标准;经过培训,检查过程有评估检查过程包括计划、会议准备、会议召开、修改错误、问题跟踪等环的是获得项目管理和质量评估的数据,并改进检查过程本身。23 检查检查也是一次友好会议但要在项目管理的密切监督下完成,其目的是识别故障、验证它们是

8、否真的失效、这些故障点并安排何时及由解决。检查之前:可能需要安排一个较短的信息通报会,一般在检之前一个召开。在信息通报会上,由检查的开发者先一下主题,而且检查材料要在通报会期间或之前交给参与者。检议:识别、软件故障并记下个数。会议之后:召集者要做好故障日志,验证这些故障是否已经解决,并决定是否需要进一步检查。24 内容提纲验证与确认验证与确认的基本概念与活动模型静态方法:走查、检查You are here!你在这儿!软件测试技术黑盒测试与白盒测试等价类划分、边界值分析路径测试、基于状态的测试面向对象的测试25 软件测试的概念测试的定义传统:测试是一种旨在评估一个程序或系统的属性或能力,确定它是

9、否符合其所需结果的活动。Myers:测试是为了发现错误而IEEE:测试是使用人工和自动个程序或系统的过程。来运行或检测某个系统的过程,其目的在于检验系统是否满足规定的需求或弄清预期结果与实际结果之间的差别。测试的目的测试是为了证明程序有错,而不是证明程序无错误;一个好的测试用例在于能够发现至今未发现的错误;一个的测试是发现了至今未发现的错误的测试。26 软件测试的概念对待软件测试的态度从用户的角度出发 普遍希望通过软件测试软件中隐藏的错误和缺陷,以考虑是否可接受该。从软件开发者的角度出发 希望测试成为表明软件中不错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。一种正确

10、的态度发现错误时关注于改正错误,而不是埋怨具体的开发。27 软件测试的概念软件测试的原则应当把“尽早地和不断地测试”作为软件开发者的座右铭程序员应避免检查的程序设计测试用例时,应包括合理的输入和不合理的输入,以及各种边界条件,特殊情况下要充分注意测试中的群集现象对测试错误结果一定要有一个确认过程状态和意外状态制定严格的测试计划,排除测试的随意性注意回归测试的关联性,往往修改一个错误会引起错误妥善保存一切测试过程文档,测试重现往往要靠测试文档28 软件测试文档测试计划(Test Plan)测试计划是测试工作的指导性文档,规定测试活动的范围、方法、和进度;明确正在测试的项目、要测试的特性、要执行的

11、测试任务、每个任务的风险。,以及与计划相主要内容:测试目标、测试方法、测试范围、测试试环境和工具、测试体系结构、测试进度表、测举例:Test Plan for VS.NET Speech SDK Beta129 软件测试文档测试规范(Test Specification)测试规范是从整体上规定测试案例的运行环境、测试方法、生成步骤、执行步骤以及调试和验证的步骤。 主要内容:系统运行环境、总体测试方法、测试用例的生成步骤、测试用例的执行步骤、调试和验证举例:Test Specification for VS.NET Speech SDK Beta130 软件测试文档测试用例(Test Case)

12、测试用例是数据输入和期望结果组成的对,其中“输入”是对被测软件接收外界数据的描述,“期望结果”是对于相应输入软件 应该出现的输出结果的描述,测试用例还应明确指出使用具体测试案例产生的测试程序的任何限制。测试用例可以被组织成一个测试系列,即为实现某个特定的 测试目的而设计的一组测试用例。例如,一部分测试用例用来测试系统的兼容性,另一部分是用来测试系统在特定的环境中,系统的典型应用是否能够很好地。举例:Test Case for VS.NET Speech SDK Beta131 软件测试文档缺陷报告 (Bug Report)缺陷报告是编写在需要,简而言之,就是研究的测试过程期间发生的任何软件缺陷

13、。主要内容:缺陷编号、题目、状态、提出、解决、所属项目、测试环境、缺限报告步骤、期待结果、附件在报告缺陷时,一般要讲明缺陷的严重性和优先级。严重性表示软件的恶劣程度,反映其对和用户的影响。优先级表示修复缺陷的重要程度和应该何时修复。举例:Bug Report for VS.NET Speech SDK Beta132 软件测试Professional TesterProgammertoo familiar with codeAnalystTest TeamSystem DesignerUserConfiguration Management Specialist33软件测试的综合素质能力理想的

14、测试必须能与测试涉及到的所有人,具有与技)的交流能力。术移情能力(开发者)和(客户、管理和系统开发有所有(用户、开发者、管理者)都处于一种既关心又担心的状态中。测试必须和每一类人打交道,因此需要对每一类人都具有足够的理解和同情,从而将测试与相关人员之间的技术能力和对抗减少到最低程度。一个测试必须既明白被测软件系统的概念又要会使用工程中的那些工具,最好有几年以上的编程经验,从而有助于对软件开发过程的较深入理解。34软件测试的综合素质自信心开发指责测试出了错是常有的事,测试必须对的观点有足够的自信心。外交能力当你告诉他出了错时,就必须使用一些外交方法,机智老练和外交手法有助于维护与开发幽默感之间的

15、协作关系。在遇到狡辩的情况下,一个幽默的批评将是很有帮助的。很强的记忆力理想的测试应该有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来,这一能力在测试过程中的价值是无法衡量的。35软件测试的综合素质耐心一些质量保证工作需要难以置信的耐心,有时你需要花费惊人的时间去分离、识别和分派一个错误。怀疑精神开发会尽他们最大的努力将所有的错误解释过去,测式必每个人的说明,但他必须保持怀疑直到他自我督促看过以后。干测试工作很容易使你变得懒散,只有那些具有自我督促能力的人才能够使洞察力每天正常地工作。一个好的测试具有“测试是为了破坏”的观点,捕获用户观点的能力,强烈的质量追求,对细节的关注能力。36 软件

16、测试活动Subsystem CodeUnit TestTested SubsystemSystem Design SpecificationRequirement SpecificationSubsystem CodeUnit TestUser ManualTested SubsystemIntegration TestFunctional TestIntegrated SubsystemsFunctioning SystemTested SubsystemSubsystem CodeUnit Test37 软件测试活动Functioning SystemValidated SystemAcc

17、epted SystemPerformance TestAcceptance TestInstallation TestUsable SystemSystem in Use38 软件测试的 V 模型39 单元测试单元测试(Unit Testing)单元测试是对软件基本组成单元进行的测试,有时也称“组件测试”。单元测试一般由编写该单元代码的开发执行,该负责设计和运行一系列的测试以确保该单元符合需求。单元测试的目的验证代码是与设计相符的跟踪需求和设计的实现发现设计和需求中的错误发现在编码过程中引入的错误40 单元测试单元测试分析模块接口局部数据结构出错处理单元测试路径边界条件41 单元测试单元测试

18、环境驱动模块:模拟被测模块的上一级模块桩模块:模拟被测单元需调用的其他函数接口 单元测试的动态环境:生成测试数据测试结果被测单元桩模块 2桩模块 342 单元测试:Junit43 集成测试集成测试(Integration Testing)集成测试是在单元测试的基础上,将所有模块按照总体设计的要求组装成为子系统或系统进行的测试。集成测试的对象是模块间的接口,其目的是找出在模块接口 上,包括系统体系结构上的问题。集成测试策略基于层次的集成:自顶上下与自底向上基于功能的集成:按照功能的优先级逐步将模块加入系统中 基于进度的集成:把最早可获得的代码进行集成基于使用的集成:通过类的使用关系进行集成44

19、系统测试系统测试(System Testing)系统测试是将已经集成好的软件系统作为一个元素,与计算机硬件、外设、某些支持软件、数据和等其他元素结合在一起,在实际运行环境下进行的一系列测试。系统测试方法功能测试、协议一致性测试性能测试、测试、容量测试、安全性测试、恢复测试备份测试、GUI 测试、健壮性测试、兼容性测试、可用性测试安装测试、文档测试、测试、数据转换测试45 系统测试功能测试(Functional Testing)功能测试是系统测试中最基本的测试,它不管软件内部的实现逻辑,主要根据软件需求规格说明和测试需求列表,验证 的功能实现是否符合需求规格。功能测试主要发现以下错误:是否有不正

20、确或遗漏的功能?功能实现是否满足用户需求和系统设计的隐藏需求? 能否正确地接受输入?能否正确地输出结果?常用的测试技术 黑盒测试方法:等价类划分、边界值测试46 系统测试测试(Press Testing)测试是检查系统在超负荷情况下的表现,特别是对系统的处理时间有什么影响。测试的例子对于一个固定输入速率(如每分钟 120 个单词)的单词处理响应时间在一个非常短的时间内引入超负荷的数据容量成千上万的用户在同一时间从网上登录到系统引入需要大量内存的操作测试采用边界值和错误猜测方法,且需要工具的支持。47 系统测试安全性测试(Security Testing)安全性测试检查系统对安全性测试期间,测试

21、侵入的防范能力。假扮者,采用各种办法试图防线。安全性测试的例子想方设法截取或破译口令专门定做软件破坏系统的保护机制故意导致系统失败,企图趁恢复之机进入试图通过浏览非数据,推导所需信息48 系统测试恢复测试(Recovery Testing)恢复测试是检验系统从软件或者硬件失败中恢复的能力,即采用各种人工干预方式使软件出错,而不能正常工作,从而 检验系统的恢复能力。恢复性测试的例子当供电出现问题时的恢复恢复程序的执行对选择的文件和数据进行恢复恢复处理日志方面的能力通过切换到一个并行系统来进行恢复49 系统测试 GUI 测试(Graphic User Interface Testing)GUI 测

22、试一是检查用户界面实现与设计的符合情况,二是确认用户界面处理的正确性。GUI 测试提倡界面与功能的设计分离,其重点关注在界面层和界面与功能接口层上。GUI 自动化测试工具 WinRunner,QARun,QARobot,Visual Test常用的测试技术 等价类划分、边界值分析、基于状态图方法、错误猜测法50 系统测试安装测试(Installation Testing)系统验收之后,需要在目标环境中进行安装,其目的是保证应用程序能够被安装测试应考虑地安装。应用程序是否可以应用程序是否可以地安装在以前从未安装过的环境中?地安装在以前已有的环境中?配置信息定义正确吗?考虑到以前的配置信息吗? 文

23、档安装正确吗?安装应用程序是否会影响其他的应用程序吗?安装程序是否可以检测到的情况并做出适当的反应?51 验收测试验收测试(Acceptance Testing)验收测试是以用户为主的测试,一般使用用户环境中的实际数据进试。在测试过程中,除了考虑软件的功能和性能外,还应对软件的兼容性、可维护性、错误的恢复功能等进行确认。测试与测试测试与测试是在正式发布前经常进行的两种测试; 测试是由用户在开发环境下进行的测试; 测试是由软件的多个用户在实际使用环境下进行的测试。问题:微软公司如何进行其的测试?52 回归测试回归测试(Regression Testing)回归测试是验证对系统的变更没有影响以前的

24、功能,并且保证当前功能的变更是正确的。回归测试可以发生在软件测试的任何阶段,包括单元测试、集成测试和系统测试,其令人烦恼的劳动。回归测试应考虑的因素 范围:有选择地执行以前的测试用例;在于频繁的重复性 自动化:测试程序的自动执行和自动配置、测试用例的管理和自动输入、测试结果的自动和比较、测试结论的自动输出。53 内容提纲验证与确认验证与确认的基本概念与活动模型静态方法:走查、检查软件测试基础测试的概念与原则、测试文档软件测试活动You are here!你在这儿!54 黑盒测试黑盒测试(Black Box Testing)又称功能测试,它将测试对象看做一个黑盒子,完全不考虑程序内部的逻辑结构和

25、内部特性,只依据程序的需求规格说 明书,检查程序的功能是否符合它的功能说明。问题:用黑盒测试发现程序中的错误,必须在所有可能的输 入条件和输出条件中确定测试数据,来检查程序是否生正确的输出,但这是不可能的。55 白盒测试白盒测试(White Box Testing)又称结构测试,它把测试对象看做一个透明的盒子,它测试利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进试。问题:对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。56 等价类划分等价类划分等价类划分是黑盒测试技术,可将测试用例数量降到最少。等价类划分是将可能的输入划分成若干等价的类,每一个类

26、选择一个测试用例,这种方法假设对于一个类的所有成员来 说,系统通常按照类似的方式运行。关键步骤:确定等价类和选择测试输入基本原则:每个可能的输入属于某一个等价类任何输入都属于多个等价类用等价类的某个成员作为输入时,如果证明执行误差,那么用该类的任何其他成员作为输入,也能检查到同样的误差。57 边界值分析边界值分析边界值分析是等价类测试的特例,主要是考虑等价类的边界条件,在等价类的“边缘”选择元素。在 R1, R2 的取值区间中,应如何选择?等价类与边界测试的缺点没有考虑测试输入数据的组合,在很多情况下程序出现故障是因为某些值的组合引起了误差。58 举例:Date举例:设计 Date:incre

27、ment ( ) 的测试用例问题:你认为以下的等价类划分是否恰当?D1 = 1day31 M1 = 1month12 Y1 = 1812year2012 59Datedd : Daymm : Month yy : YearDate(pDay : Integer, pMonth : Integer, pYear : Integer) increment()printDate() 举例:Date另一种划分方法D1 = 1datelast day of the month D2 = last day of the month D3 = Dec. 31 M1 = 30-day months M2 =

28、31-day months M3 = Feb. Y1 = 2000 Y2 = leap year Y3 = not leap year 60 举例:Date61序号MonthDayYear期望输出1234567891011122222222222221414142828282929293030302000199620022000199620022000199620022000199620022000年2月15日1996年2月15日2002年2月15日2000年2月29日1996年2月29日2002年3月 1日2000年3月 1日1996年3月 1日无效的输入日期无效的输入日期无效的输入日期无效

29、的输入日期 举例:Date62序号MonthDayYear期望输出1314151617181920212223246666666666661414142929293030303131312000199620022000199620022000199620022000199620022000年6月15日1996年6月15日2002年6月15日2000年6月30日1996年6月30日2002年6月30日2000年7月 1日1996年7月 1日2002年7月 1日无效的输入日期无效的输入日期无效的输入日期 举例:Date63序号MonthDayYear期望输出25262728293031323334

30、35368888888888881414142929293030303131312000199620022000199620022000199620022000199620022000年8月15日1996年8月15日2002年8月15日2000年8月30日1996年8月30日2002年8月30日2000年8月31日1996年8月31日2002年8月31日2000年9月 1日1996年9月 1日2002年9月 1日 举例:Date64序号MonthDayYear期望输出37383940414243444546474812121213131333901 1131313101412000199620

31、022000199620022000199600200020022001年1月 1日1997年1月 1日2003年1月 1日无效的输入日期无效的输入日期无效的输入日期无效的输入日期无效的输入日期无效的输入日期无效的输入日期无效的输入日期无效的输入日期 路径测试路径测试路径测试是确定组件实现中错误的白盒测试技术,它假设通过至少一次代码的所有可能路径,大多数错误将引起故障。路径测试是在程序流图的基础上,分析构造的环路复杂性,导出基本可执行路径集合,由此设计测试用例,并保证在测试中程序的每一个可执行语句至少要次。程序流图符号 为程序语句。流图的一个结点,表示一个或多个无分支的源箭头为边,表示流的方向

32、。65 路径测试path1:111 path2:1234510111path3:12368910111 path4:1236791011166 举例:SelectSort举例:函数 SelectSort ( ) 的代码Void SelectSort( datalist & list ) for (int i=0; i<list.n-1; i+) int k=i;for (int j=i+1; j<list.n; j+)if (list.Vj.getKey() < list.Vk.getKey()k=j;if (k!=i)Swap(list.Vi, list.Vk);问

33、题:如何使用路径测试方法设计测试用例?67 举例:SelectSort1returni<n-135path1: 13path2: 1258 path3: 1259 path4: 1246 path5: 1247 i<>k987Vi<->Vki=i+1;68j<n4Vj<Vk6k=j;j=j+1;2k=i; j=i+1; 举例:SelectSort测试用例Path1:取 n=1Path2:取 n=2预期结果:路径 583 不可到达Path3:取 n=2预期结果:路径 593 不可到达路径1246583:取 n=2,v0=2, v1=1预期结果: k=1,

34、 v0=1, v1=2路径1246593:取 n=2,v0=2, v1=1预期结果: k=1, 路径 93 不可到达69 举例:SelectSort测试用例路径1247583:取 n=2,v0=1, v1=2预期结果: k=0, 路径 83 不可到达路径1247593:取 n=2,v0=1, v1=2预期结果: k=0, v0=1, v1=2说明:路径测试技术不适合面向对象语言,例如多态性可以与不同的方法绑定,因此所有的绑定都需要确定并测试。70 基于状态的测试基于状态的测试基于状态的测试主要考虑面向对象系统,它根据系统的特定状态选择大量的测试输入,测试某个组件或系统,并将实际的输出与预期的结

35、果相比较。在类环境中,从类的 UML 状态图中得出测试用例组成基于状态的测试。举例:测试 CourseOffering 类71<<entity>> CourseOfferingcourseID : String startTime : Time endTime : Time days : Enum/ numStudents : Int offeringStatus : Enum<<class>> new ()addStudent(studentS chedule : Schdule) removeStudent(studentS chedule

36、: Schdule) getNumberOfStudents() : int addProfessor(theProfessor : Professor) removeProcessor(theProfessor : Professor) offeringStillOpen() : BooleancloseRegistration() cancelOffering() closeOffering() getCourseOffering()setCourseID(courseID : String) setStartTime(startTim e : Time) setEndTime(endTi

37、me : Time) setDays(days : Enum) 举例:CourseOffering72 举例:CourseOffering73IDPreconditionEventPredicted Result1Initial statenew ( )offeringStatus = unassigned; numStudents = 02“unassigned” state numStudents = 0addStudent ()offeringStatus = unassigned; numStudents = 13“unassigned” state numStudents = 0re

38、moveStudent ()offeringStatus = unassigned; numStudents = 0;Display error message4“unassigned” state numStudents = 10addStudent ()offeringStatus = unassigned; numStudents = 10;Display message5“unassigned” state numStudents = 10removeStudent ()offeringStatus = unassigned; numStudents = 9;6“unassigned”

39、 stateaddProfessor ()offeringStatus = assigned7“unassigned” statecloseOffering ( )offeringStatus = cancelled 举例:CourseOffering74IDPreconditionEventPredicted Result8“unassigned” statecloseRegistration ( )offeringStatus = cancelled9“unassigned” statecancelOffering ( )offeringStatus = cancelled10“assig

40、ned” state numStudents = 0addStudent ()offeringStatus = assigned; numStudents = 111“assigned” state numStudents = 0removeStudent ()offeringStatus = assigned; numStudents = 0;Display error message12“assigned” state numStudents = 9addStudent ()offeringStatus = full; numStudents = 10;13“assigned” state

41、 numStudents = 9removeStudent ()offeringStatus = assigned; numStudents = 8;14“assigned” stateremoveProfessor ()offeringStatus = unassigned15“assigned” stateaddProfessor ()offeringStatus = assigned; Display message 举例:CourseOffering75IDPreconditionEventPredicted Result16“assigned” state numStudents =

42、 2closeOffering ( )offeringStatus = cancelled17“assigned” state numStudents = 3closeOffering ( )offeringStatus = committed18“assigned” state numStudents = 3closeRegistration ( )offeringStatus = committed19“assigned” statecancelOffering ( )offeringStatus = cancelled20“full” statecancelOffering ( )off

43、eringStatus = cancelled21“full” statecloseOffering ( )offeringStatus = committed22“full” statecloseRegistration ( )offeringStatus = committedYou can choose some cases for exceptional transition in any state 举例:二进制加法器.5.Press button “C”:clear the resultPress button “0”:input 0 Press button “1”

44、:input 1 Press button “+”:addPress button “=”:display the result76 举例:二进制加法器KeyPress( "C" ) / Op1="0":Op2="0"Enter Op1KeyPress( "1" ) / Op1="1"do/ Dis play Op1 in the resultevent KeyPress( "0" ) Op1<>"0" and Len(Op1)<20 /

45、 Add "0" after Op1 event KeyPress( "1" ) Op1<>"0" and Len(Op1)<20 / Add "1" after Op1 event KeyPress( "1" ) Op1="0 " / Op1="1"KeyPress( "0" ) / Op1="0"KeyPress( "C" ) / Op1="0":Op2="0"Display resultKeyPress( "=" ) / Op2="0"KeyPre ss( "+" ) / Op2="0"KeyPress( "+" ) / Op2="0 &quo

温馨提示

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

评论

0/150

提交评论