第六章管理信息系统的实施_第1页
第六章管理信息系统的实施_第2页
第六章管理信息系统的实施_第3页
第六章管理信息系统的实施_第4页
第六章管理信息系统的实施_第5页
已阅读5页,还剩144页未读 继续免费阅读

下载本文档

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

文档简介

第六章管理信息系统的实施第1页,共149页,2023年,2月20日,星期三系统实施的任务是实现系统设计阶段提出的物理模型,按实施方案完成一个可以实际运行的信息系统,交付用户使用。理解系统实施的工作内容;了解软件测试的概念和方法;掌握系统转换的方式。本章学习目标第2页,共149页,2023年,2月20日,星期三第六章管理信息系统的实施

6.1物理系统的实施6.2程序设计6.3软件测试与调试6.4人员培训6.5系统转换第3页,共149页,2023年,2月20日,星期三第六章管理信息系统的实施

系统实施概述

系统实施的任务系统实施的任务是以系统设计方案为依据,按照系统实施方案进行具体的实现,最终组建出一个能够实际运行的系统,交付用户使用。具体任务包括:硬件准备、软件准备、人员培训、数据准备第4页,共149页,2023年,2月20日,星期三1、硬件准备

硬件准备包括计算机主机、输入输出设备、存储设备、辅助设备(稳压电源、空调设备)、通信设备等。2、软件准备

软件包括系统软件、数据库管理系统以及一些应用软件。第六章管理信息系统的实施第5页,共149页,2023年,2月20日,星期三3、人员培训

主要指用户培训,包括主管人员和业务人员。4、数据准备

没有一定的基础数据的准备,系统调试就不能很好的进行。第六章管理信息系统的实施第6页,共149页,2023年,2月20日,星期三系统实施的工作流程第7页,共149页,2023年,2月20日,星期三第六章管理信息系统实施

系统实施的特点工作量大投入人力、物力多组织管理工作繁重第8页,共149页,2023年,2月20日,星期三第六章管理信息系统实施

系统实施的方法划分版本的基本原则确定版本的规模实现复杂模块的方法安排实现模块的顺序第9页,共149页,2023年,2月20日,星期三自顶向下的实现方法版本的划分需要考虑以下几个方面:(1)先实现控制部分,后实现执行部分,先上层后下层。(2)根据开发力量、设备、培训等方面的情况确定每个版本实现多少模块、实现哪些模块。(3)复杂的模块分散在几个版本中逐步实现。(4)兼顾功能模块和数据库的实现。(5)兼顾硬件、软件、人员培训方面的情况。

第10页,共149页,2023年,2月20日,星期三MIS物理系统的实施是计算机系统和通信网络系统设备的订购、机房的准备和设备的安装调试等一系列活动。6.1.1选择供应商的标准系统安装主要是指对各种软、硬件设备的购置、安装以及整个系统调试运行选择供应商的标准是:实力雄厚、信誉可靠、质优价低、售后服务好6.1物理系统的实施第11页,共149页,2023年,2月20日,星期三6.1.2选择安装地点的思路

考虑系统对电缆、电话或数据通讯服务、工作空间和存储、噪音和通讯条件及交通情况的要求例如,使用专门的地板,让电缆通过地板孔道,连接中央处理机及各设备,保证安全;提供不中断电源,以免丢失数据6.1物理系统的实施第12页,共149页,2023年,2月20日,星期三编程(Coding)就是为系统各个模块编写程序。根据结构化方法设计了详细方案,又有了高级语言,初级程序员都可以参加这一阶段的工作。6.2程序设计第13页,共149页,2023年,2月20日,星期三⑴可维护性由于信息系统需求的不确定性,系统需求可能会随着环境的变化而不断变化,因此,就必须对系统功能进行完善和调整,为此,就要对程序进行补充或修改。此外,由于计算机软硬件的更新换代也需要对程序进行相应的升级。

程序设计的目标第14页,共149页,2023年,2月20日,星期三⑵可靠性:程序应具有较好的容错能力。正常情况下能正确工作。意外情况下应便于处理,不至产生意外的操作,从而造成严重损失。

⑶可理解性:程序不仅要求逻辑正确,计算机能够执行,而且应当层次清楚,便于阅读。

程序设计的目标第15页,共149页,2023年,2月20日,星期三⑷效率:程序能否有效地利用计算机资源程序效率的地位:已不像以前那样举足轻重了,因为硬件价格大幅度下降,而其性能却不断完善和提高。程序设计人员工作效率的地位日益重要。不仅能降低软件开发成本;而且可明显降低程序的出错率,进而减轻维护人员的工作负担。为了提高程序设计效率,应充分利用各种软件开发工具。

程序设计的目标第16页,共149页,2023年,2月20日,星期三在过去的小程序设计中,主要强调程序的正确和效率。对于大型程序,人们则倾向于首先强调程序的可维护性、可靠性和可理解性,然后才是效率。注意程序效率、可维护性、可理解性三者之间的关系第17页,共149页,2023年,2月20日,星期三程序设计的基本要求程序的功能必须按照规定的要求,正确地满足预期的需要程序内容清晰、明了、便于阅读和理解程序结构严谨、简捷、算法和语句选用合理,执行速度快,节省机时程序和数据的存储、调用安排得当,节省存储空间程序适应性强。程序交付使用后,若应用问题或外界环境有了变化时,调整和修改程序比较简便易行6.2程序设计

第18页,共149页,2023年,2月20日,星期三6.2程序设计1.程序设计的任务根据系统设计说明书中关于模块的详细描述和处理过程的描述,选择合适的计算机语言来编制程序的工作。第19页,共149页,2023年,2月20日,星期三6.2程序设计程序设计的方法结构化程序设计方法程序设计就是处理过程的设计面向对象程序设计方法程序设计主要指对象的设计可视化编程工具或开发环境

第20页,共149页,2023年,2月20日,星期三结构化程序设计结构化程序设计包括以下四方面的内容:(1)限制使用GOTO语句只用顺序结构、选择结构、循环结构这三种基本结构就能表达任何一个只有一个入口和一个出口的程序逻辑。为实际使用方便,往往允许增加多分支结构、REPEAT型循环等两三种结构。程序中可以完全不用GOTO语句。(2)逐步求精的设计方法在一个程序模块内,先从该模块功能描述出发,一层层地逐步细化,直到最后分解、细化成语句为止。第21页,共149页,2023年,2月20日,星期三结构化程序设计(3)自顶向下的设计、编码和调试这是把逐步求精的方法由程序模块内的设计推广到一个系统的设计与实现。(4)主程序员制的组织形式这是程序人员的组织形式。程序资料员(或秘书)一人。其他技术人员按需要随时加入组内。主程序员负责整体项目的开发,并负责关键部分的设计、编码和调试。第22页,共149页,2023年,2月20日,星期三结构化程序设计作为这种组织形式中的一个程序员,为使自己的工作融人整个系统,与组内其他成员协调致地工作。必须严格遵守:①不使用可能干扰其他模块的命令或函数;②按总体设计的要求传递参数,不随意修改其内容与含义;③按规定的统一格式操作公用文件或数据库;④按统一的原则使用标识符;⑤按统一要求编写文档;⑥保持程序风格的一致。第23页,共149页,2023年,2月20日,星期三面向对象的程序设计

面向对象程序设计在OOP方法中,一个对象即是一个独立存在的实体,对象有各自的属性和行为,彼此以消息进行通信。对象的属性只能通过自己的行为来改变,实现了数据封装,这便是对象的封装性。而相关对象在进行合并分类后,有可能出现共享某些性质,通过抽象后使多种相关对象表现为一定的组织层次,底层次的对象继承其高层次对象的特性,这便是对象的继承性。另外,对象的某一种操作在不同的条件环境下可以实现不同的处理,产生不同的结果,这就是对象的多态性。第24页,共149页,2023年,2月20日,星期三可视化编程技术

主要思想:用图形工具和可重用部件来交互地编制程序。它把现有的或新建的模块代码封装于标准接口封包中,作为可视化编程编辑工具中的一个对象,用图符来表示和控制。可视化编程一般基于事件驱动的原理。面向对象编程技术和可视化编程开发环境的结合,改变了应用软件只有经过专门技术训练的专业编程人员才能开发的状况。它使软件开发变得容易,由于大量软件模块的重用和可视控件的引入,技术人员在掌握这些技术之后,就能有效地提高应用软件的开发效率,缩短开发周期,降低了开发成本,并且使应用软件界面风格统一,有很好的易用性。第25页,共149页,2023年,2月20日,星期三程序的内部文档

程序的“内部文档”,指程序内部带有的说明材料,用注释语句书写。程序适当加注释后,阅读时就不必再看其他说明材料了。因此,这是提高程序可阅读性的有力手段。注释可以出现在程序的任何位置,但要与程序结构配合起来,效果才好。注意以下几点:(1)注释必须与程序一致(2)注释不是重复程序语句,而应提供从程序本身难以得到的信息。(3)对程序段作注释,而不是对每个语句作注释。

第26页,共149页,2023年,2月20日,星期三程序错误的分类

语法错误程序设计人员对程序设计语言的理解不够,或程序设计基本功不扎实造成的结果。逻辑错误指那些虽然不违反系统规则,但是却不合逻辑或不合题目语义的错误。第27页,共149页,2023年,2月20日,星期三程序设计语言的选择语言的结构化机制与数据管理能力选用高级语言应该有理想的模块化机制、可读性好的控制结构和数据结构,同时具备较强的数据管理能力语言可提供的交互功能有较丰富的软件工具开发人员的熟练程度软件可移植性要求系统用户的要求6.2程序设计

第28页,共149页,2023年,2月20日,星期三6.2程序设计软件开发工具编程语言类数据库类可视化编程类专业系统类客户/服务器类[电子表格软件开发工具][数据库管理系统提供的开发工具][套装软件工具][可视化图形界面编程工具]⑴MSVisualFoxpro

⑵MSVisualBASlC

⑶PowerBuilder:例如:第29页,共149页,2023年,2月20日,星期三6.3.1软件测试测试是指软件产品生存周期内所有的检查、评审和确认活动,如设计评审、系统测试。狭义上讲,测试是对软件产品质量的检验和评价,它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。测试的目的:软件测试是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷为了发现错误而执行程序的过程;测试是为了证明程序有错,而不是证明程序没有错误;一个成功的测试是发现了至今未发现的错误的测试。整个生命周期不同阶段可能的测试活动和测试技术:6.3软件测试与调试第30页,共149页,2023年,2月20日,星期三1.软件测试的特征挑剔性复杂性不彻底性经济性6.3.1软件测试第31页,共149页,2023年,2月20日,星期三6.3.1软件测试2.测试基本原则测试队伍的建立测试用例的设计测试数据的选择测试功能的确定测试文档的管理第32页,共149页,2023年,2月20日,星期三6.3.1软件测试3.测试文档测试计划测试项目的名称、目的、步骤、进度、测试用例测试用例={测试数据+期望结果}测试报告测试项目的名称、实测结果与期望结果的比较、发现的问题、测试达到的效果测试结果={测试数据+期望结果+实际结果}第33页,共149页,2023年,2月20日,星期三6.3.1软件测试4.测试步骤模块测试是在每个单独的模块中进行,包括模块界面、内部数据结构、独立路径错误处理和边界条件等项目集成测试将各模块集中,形成一个完整的软件,对该软件进行测试第34页,共149页,2023年,2月20日,星期三6.3.1软件测试系统测试将被测软件放在系统环境中进行测试验收测试用户参与的测试,对系统的最后确认第35页,共149页,2023年,2月20日,星期三测试种类1)静态测试:目的是通过对程序静态结构的检查,找出编译时不能发现的错误。静态分析器分析(自动方式)代码评审(人工方式):代码会审、走查、办公桌检查2)动态测试:是把事先设计好的测试用例作用于被测程序,比较测试结果和预期的结果是否一致,如果不一致,则说明被测程序可能存在错误。黑盒测试白盒测试6.3.1软件测试通过运行软件来检验软件的动态行为和运行结果的正确性约可找出30~70%的逻辑设计错误

基本特征是在对软件进行分析、检查和测试,不实际运行被测试的软件约可找出30~70%的逻辑设计错误第36页,共149页,2023年,2月20日,星期三

代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。会审小组由组长、2~3名程序设计和测试人员及程序员组成。会审小组在充分阅读待审程序文本、控制流程图及有关要求、规范等文件基础上,召开代码会审会,程序员逐句讲解程序的逻辑,并展开热烈的讨论甚至争议,以揭示错误的关键所在。需要注意两点:一是在代码审查时,必须要检查被测软件是否通过编译,只有正确了之后才进行代码会审;二是一定要保证有足够的时间让测试小组对问题进行充分的讨论,只有这样才能有效地提高测试效率,避免走弯路。6.3.1软件测试第37页,共149页,2023年,2月20日,星期三白盒测试时,测试者清楚被测试程序的内部结构。它从程序的逻辑结构人手,按照一定的原则来设计测试用例,设定测试数据。黑盒测试时,测试者把被测程序看成一个黑盒,完全用不着关心程序的内部结构。设计测试用例时,仅以程序的外部功能为根据。测试中标常见病错误种类:功能错误系统错误过程错误编码错误6.3.1软件测试第38页,共149页,2023年,2月20日,星期三测试用例:为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据,称之为测试用例。测试用例可以被定义为如下6元组:测试索引测试环境测试输入测试操作预期结果评价标准兼顾合理的输入和不合理的输入数据不仅检查程序是否实现预期功能,还应检查程序是否作了不该做的事6.3.1软件测试第39页,共149页,2023年,2月20日,星期三测试用例的用途:在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。测试用例的使用令软件测试的实施重点突出、目的明确。在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升。6.3.1软件测试第40页,共149页,2023年,2月20日,星期三

白盒测试方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,对所有逻辑路径进行测试,得出测试数据。白盒测试的主要方法:逻辑驱动、路径测试等,主要用于软件验证,检验语法错误、编译错误、性能问题、逻辑问题、判定条件问题、编程规范等。

白盒测试第41页,共149页,2023年,2月20日,星期三白盒测试

优点知道所设计的测试用例在代码级上哪些地方被忽略掉帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题

白盒测试第42页,共149页,2023年,2月20日,星期三白盒测试

缺点

程序运行会有很多不同路径,不可能测试所有运行路径;

测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;

系统庞大时,测试开销会非常大。

123

白盒测试第43页,共149页,2023年,2月20日,星期三白盒测试

测试用例的设计语句覆盖法测试用例覆盖路径A=2B=0X=3aceA>1ANDB=0X=X/AA=2ORX>1X=X+1是a是否bcdeace第44页,共149页,2023年,2月20日,星期三白盒测试判断覆盖法序号测试用例覆盖路径12A=3B=0X=1acdA=2B=1X=3abeA>1ANDB=0X=X/AA=2ORX>1X=X+1是a是否bcdeacdabe第45页,共149页,2023年,2月20日,星期三白盒测试条件覆盖法A>1ANDB=0X=X/AA=2ORX>1X=X+1是a是否bcde判断条件取值A>1A≤1TFB=0B≠0TFA=2A≠2TFX>1X≤1TF第46页,共149页,2023年,2月20日,星期三白盒测试条件判断条件取值条件记为条件1A>1A≤1TFT1F1条件2B=0B≠0TFT2F2条件3A=2A≠2TFT3F3条件4X>1X≤1TFT4F4条件一条件二第47页,共149页,2023年,2月20日,星期三设计的测试用例子序号测试用例覆盖路径条件记为1A=2B=0X=4aceT1T2T3T42A=1B=1X=1abdF1F2F3F43A=2B=0X=1acdT1T2T3F44A=1B=1X=2abeF1F2F3T4白盒测试设计测试用例第48页,共149页,2023年,2月20日,星期三白盒测试条件组合覆盖法A>1ANDB=0X=X/AA=2ORX>1X=X+1是a是否bcde第一判断式1A>1B=03A≤1B=02A>1B≠04A≤1B≠0第二判断式5A=2X>17A≠2X>16A=2X≤18A≠2X≤1第49页,共149页,2023年,2月20日,星期三设计的测试用例序号测试用例覆盖路径覆盖条件组合1A=2B=0X=4ace1,52A=2B=1X=1abd2,63A=1B=0X=2abe3,74A=1B=1X=1abd4,8设计的测试用例白盒测试第50页,共149页,2023年,2月20日,星期三白盒测试路径覆盖法a→b→da→c→ea→b→ea→c→dA=1B=1X=1A=1B=1X=2A=3B=0X=1A=2B=0X=4A>1ANDB=0X=X/AA=2ORX>1X=X+1是a是否bcde第51页,共149页,2023年,2月20日,星期三黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试发现的错误类型有:功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止错误等。黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测等,主要用于软件确认测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。黑盒测试第52页,共149页,2023年,2月20日,星期三黑盒测试

优点黑盒测试的优点比较简单,不需要了解程序内部的代码及实现

与软件的内部实现无关

从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题

基于软件开发文档,所以也能知道软件实现了文档中的哪些功能黑盒测试第53页,共149页,2023年,2月20日,星期三黑盒测试

缺点不可能覆盖所有的代码,覆盖率较低。

自动化测试的复用性较低。黑盒测试第54页,共149页,2023年,2月20日,星期三黑盒测试等价类划分等价类划分法的基本思想:是将所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同.可从每个子集中选取一组数据来测试程序第55页,共149页,2023年,2月20日,星期三等价类划分等价类划分有两种情况合理等价类:测试模块是否实现了规定的功能和性能不合理等价类:测试模块是否能够拒绝无效输入,被测试对象在运行条件错误时的可靠性如何第56页,共149页,2023年,2月20日,星期三等价类划分划分等价类规则如果输入条件代表一个范围,可定义一个有效等价类和两个无效等价类

例如,输入条件规定:项数可从1到999

1999

有效等价类无效等价类

>999无效等价类

<1第57页,共149页,2023年,2月20日,星期三等价类划分划分等价类规则如果输入条件代表一个范围,可定义一个有效等价类和两个无效等价类如果输入条件代表集合的某个元素,则可定义一个有效等价类和一个无效等价类第58页,共149页,2023年,2月20日,星期三等价类划分划分等价类规则如果输入条件代表一个范围,可定义一个有效等价类和两个无效等价类如果输入条件代表集合的某个元素,则可定义一个有效等价类和一个无效等价类例:北京地区的电话号码前为“010”。则,有效等价类(以“010”开头的电话号码);无效等价类(不以“010”开头的电话号码)第59页,共149页,2023年,2月20日,星期三等价类划分划分等价类规则如规定了输入数据的一组值,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)例:某个待测程序的输入参数“职称”的输入值可以是助教、讲师、副教授、教授四种。则,有效等价类(取四个职称中的一个值);无效等价类(四个职称之外的任意值)第60页,共149页,2023年,2月20日,星期三等价类划分划分等价类规则如果规定了输入数据必须遵守的规则,则可划分符合规则等价类和一个违反规则的等价类。例:如果程序对不同职称有不同的处理方案,如“住房分配”程序。则,有效等价类(四个职称每个值为一类);一个无效等价类(四个职称之外的任意值)。第61页,共149页,2023年,2月20日,星期三等价类划分划分等价类规则如果规定了输入数据是整型,则可划分出正整数、零、负整数三个等价类如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类第62页,共149页,2023年,2月20日,星期三等价类划分用等价类划分法设计测试用例步骤划分等价类形成等价类表,每一等价类规定一个唯一的编号设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖设计一新测试用例,使其只覆盖一个无效等价类,重复此步骤直到所有无效等价类均被覆盖第63页,共149页,2023年,2月20日,星期三等价类划分用等价类划分法设计测试用例步骤例,某城市电话号码由三部分组成地区码:空白或3位数字前缀:非‘0’或‘1’开头的三位数字后缀:4位数字第64页,共149页,2023年,2月20日,星期三第一步:电话号码等价类划分输入条件地区码前缀后缀第65页,共149页,2023年,2月20日,星期三第一步:电话号码等价类划分输入条件有效等价类地区码

空白(1)3位数字(2)前缀从200到999之间的3位数字(3)后缀4位数字(4)第66页,共149页,2023年,2月20日,星期三第一步:电话号码等价类划分输入条件有效等价类无效等价类地区码空白(1)3位数字(2)有非数字字符(5)少于3位数字(6)多于3位数字(7)前缀从200到999之间的3位数字(3)有非数字字符(8)起始位为‘0’

(9)起始位为‘1’

(10)少于3位数字(11)多于3位数字(12)后缀4位数字(4)有非数字字符(13)少于4位数字(14)多于4位数字(15)第67页,共149页,2023年,2月20日,星期三第二步:确定测试用例对表中4个有效等价类可共用下面两个测试用例测试数据

测试范围期望结果()276-2345等价类(1)(3)(4)有效(635)805-9321等价类(2)(3)(4)有效第68页,共149页,2023年,2月20日,星期三第二步:确定测试用例对表中11个无效等价类应选择11个测试用例测试数据

测试范围期望结果(20A)123-4567无效等价类(5)无效(33)234-5678无效等价类(6)无效(7777)345-6789无效等价类(7)无效………第69页,共149页,2023年,2月20日,星期三黑盒法边界值测试被测试子域测试内点测试外点边界值测试不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件第70页,共149页,2023年,2月20日,星期三边界值测试设计测试用例原则如输入条件代表以a和b为边界的范围,测试用例应包含a、b、略大于a和略小于b的值第71页,共149页,2023年,2月20日,星期三边界值测试设计测试用例原则例:每日保险扣除额在0~1165.25元则:应设计测试用例使其恰好产生0元和1165.25元的结果,此外还应考虑设计结果为负值或>1165.25元的测试用例。(如:-0.01元和1165.26元)第72页,共149页,2023年,2月20日,星期三边界值测试设计测试用例原则如输入条件代表一组值,测试用例应当执行其中的最大值和最小值,还应测试略大于最大值和略小于最小值的值第73页,共149页,2023年,2月20日,星期三边界值测试设计测试用例举例例:邮件收费规定1~5kg收费2元则:应设计测试用例:

0.9,1,5,5.1kg或0.99,1,5,5.01kg例:一个数据库表可有1~255个记录则:应设计测试用例:

1个、255个、0个、256个记录第74页,共149页,2023年,2月20日,星期三边界值测试设计测试用例原则如程序数据结构有预定的边界,应测试其边界的数据项如输出条件规定了取值范围,取边界上下浮动值做测试用例第75页,共149页,2023年,2月20日,星期三黑盒法错误推测测试基本思想:列举出程序中可能有错和容易出错的情况,并且根据它们选择测试方案如对一个数据库表进行操作,需要特别检查的情况有:表为空、表中只有一个记录第76页,共149页,2023年,2月20日,星期三综合策略黑盒法为主、白盒法为辅任何情况下都应该使用边界值测试设计测试用例必要时采用等价分类法补充用例必要时再用错误推测法补充用例对照程序逻辑,检查设计用例的逻辑覆盖标准。根据程序可靠性要求,补充用例使之达到规定的覆盖标准第77页,共149页,2023年,2月20日,星期三黑盒测试练习程序TRI读入三个整数值,这三个整数代表同一个三角形三条边的长度,程序根据这三个值判断三角形属于等腰、等边、还是一般三角形。使用黑盒方法设计测试用例第78页,共149页,2023年,2月20日,星期三黑盒测试要测试的情况–

正常的不等边三角形–

正常的等边三角形–

正常的等腰三角形–

三条边不构成三角形–

一条边的长度为0–两条边的长度为0–

三条边全为0–输入数据中包含负整数–

输入数据不全–

输入数据中包含非整数型数据第79页,共149页,2023年,2月20日,星期三第80页,共149页,2023年,2月20日,星期三2.软件测试基本原则严格按照测试计划来测试尽早并不断地进行测试程序员应尽可能避免检查自己的程序测试用例应当兼顾合理的输入条件和不合理的输入条件测试用例应包括输入数据和预期的输出结果两部分测试用例应当兼顾有用功能和无用功能全面检查每个测试结果,保留测试用例充分注意测试中的集群现象注意回归测试的关联性注意遵守“经济性”原则6.3.1软件测试第81页,共149页,2023年,2月20日,星期三3.软件测试步骤

6.3.1软件测试第82页,共149页,2023年,2月20日,星期三规范化的测试过程与内容包括如下内容:拟定测试计划:测试的内容、进度安排、测试所需的环境和条件、测试培训安排等。编制测试大纲:明确详细地规定了在测试中针对系统的每一项功能或特性所必须完成的基本测试项目和测试完成的标准。无论是自动测试还是手动测试,都必须满足测试大纲的要求。设计和生成测试用例:产生测试设计说明文档,其内容主要有:被测项目、输入数据、测试过程、预期输出结果等。实施测试:测试的实施阶段时由一系列的测试周期组成的。生成测试报告:对测试进行概要说明,列出测试的结论,指出缺陷和错误,另外,给出一些建议。例如,可采用的修改方法,各项修改预计的工作量等。3.软件测试步骤第83页,共149页,2023年,2月20日,星期三错误种类

测试中可能发现的错误按其性质可分为:

(1)功能错误由于处理功能说明不够完整或不够确切,致使编程时对功能有误解而产生的错误(2)系统错误指与外部接口错误、子程序调用错误、参数使用错误等。第84页,共149页,2023年,2月20日,星期三

(3)过程错误主要指算术运算错误、逻辑错误等。

(4)数据错误数据结构、实体、属性错误,参数与控制数据混淆等。

(5)编程错误语法错误、逻辑错误、编程书写错误等。错误种类

第85页,共149页,2023年,2月20日,星期三第86页,共149页,2023年,2月20日,星期三第87页,共149页,2023年,2月20日,星期三程序错误一般包括数据缺陷控制缺陷计算缺陷接口缺陷输入/输出缺陷存储管理缺陷异常处理缺陷等类型3.软件测试步骤第88页,共149页,2023年,2月20日,星期三单元测试:单元测试是对源程序中的每一个程序单元进行测试,验证每个模块是否满足系统设计说明书的要求。可使用白盒测试方法测试单元的内部结构,使用黑盒测试方法测试单元的功能和可观测的行为。3.软件测试步骤第89页,共149页,2023年,2月20日,星期三单元测试主要从模块的5个特征进行检查:(1)模块接口测试。对被测的模块,信息能否正常无误地流入和流出。例如,用被测模块的输入参数和形式参数在个数、属性、单位上是否一致;调用其他模块时所给的实际参数和被调模块的形式参数在个数、属性、单位上是否一致;全局变量在各模块中的定义和用法是否一致;输入是否仅改变了形式参数。(2)局部数据结构测试。在模块工作过程中,其内部的数据能否保持其完整性,包括内部数据的内容、形式及相互关系不发生错误。例如,变量的说明是否合适;是否使用了尚未赋值或尚未初始化的变量;是否出现上溢、下溢或地址异常的错误等。3.软件测试步骤第90页,共149页,2023年,2月20日,星期三单元测试主要从模块的5个特征进行检查:(3)路径测试。模块的运行能否达到满足特定的逻辑覆盖。(4)错误处理测试。模块工作中发生了错误,其中的出错处理设施是否有效。例如,在对错误进行处理之前,系统已经对错误条件干预;出错的提示信息不足以确定错误或确定造成错误的原因;错误的描述难于理解等。(5)边界测试。在为限制数据加工而设置的边界处,模块是否能够正常工作。3.软件测试步骤第91页,共149页,2023年,2月20日,星期三单元测试过程由于每个模块在整个软件中并不是孤立的,在对每个模块进行单元测试时,也不能完全忽视它们和周围模块的相互联系。为模拟这一联系,在进行单元测试时,需设置若干辅助测试模块。辅助模块有两种:一种是驱动模块,用以模拟被测模块的上级模块;另一种是桩模块,用以模拟被测模块工作过程中所调用的模块。在测试过程中,需要对整个测试过程进行有效的管理,保证测试质量和测试效率。3.软件测试步骤第92页,共149页,2023年,2月20日,星期三3.软件测试步骤驱动模块:是模拟待测模块X的调用模块,其作用是将测试数据传送给待测模块X,并显示待测模块X的结果AXY………………待测模块X驱动集成测试:第93页,共149页,2023年,2月20日,星期三3.软件测试步骤桩模块:作用是模拟待测模块X的下层模块E。其作用是接受待测模块X的控制并模拟下层模块E的功能AXY……………待测模块X桩1集成测试:E第94页,共149页,2023年,2月20日,星期三例:下图是新生管理子系统的功能层次图:3.软件测试步骤新生基本信息管理招生数据导入报到预处理新生报到管理新生信息查询与统计预分学号班级编排寝室安排预处理查询现场报到处理欠费查询统计报到情况统计新生比例分布高考成绩统计考第95页,共149页,2023年,2月20日,星期三例:下图是新生管理子系统的功能层次图:要测试“新生信息查询与统计”模块,由于它不是独立运行的程序,需要有一个驱动模块来调用它,驱动模块要说明必需的变量、接收测试数据----模拟总控模块来调用它。另外还需要准备桩模块来代替被调用的子模块(新生比例分布、高考成绩统计),对于多个子模块可以用一个桩模块来代替。在测试时,用控制变量DISCOUNT—TYPE标记是新生比例分布还是高考成绩统计。新生基本信息管理招生数据导入报到预处理新生报到管理新生信息查询与统计预分学号班级编排寝室安排预处理查询现场报到处理欠费查询统计报到情况统计新生比例分布高考成绩统计。

3.软件测试步骤第96页,共149页,2023年,2月20日,星期三下面是伪码编写的驱动模块和桩模块。驱动模块的伪码:TESTDRIVERWHILE未到文件尾部读取输入信息IF输入信息是调用“新生信息查询与统计”模块调用“新生信息查询与统计”模块ENDIFENDWHILEENDTESTDRIVER

3.软件测试步骤第97页,共149页,2023年,2月20日,星期三桩模块的伪码:TESTSTUBIFDISCOUNT—TYPE=“新生比例分布”输出“新生比例分布模块”ELSE输出“高考成绩统计模块”ENDIFENDTESTSTUB

3.软件测试步骤第98页,共149页,2023年,2月20日,星期三集成测试:集成测试是将已测试过的模块组合成子系统,重点测试各模块之间接口和联系。它所测试的内容包括:单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能,并且对以前的集成进行回归测试。

3.软件测试步骤第99页,共149页,2023年,2月20日,星期三集成测试方法:一种是分别测试各个模块,再把这些模块组合起来进行整体测试,这种方法称为非增量式集成。非增量式集成可以对模块进行并行测试,能充分利用人力,加快工程进度。但这种方法容易混乱,出现错误不容易查找和定位。另一种是把一个要测试的模块组合到已测试好的模块中,测试完后再将一个需要测试的模块组合进来测试,逐步把所有模块组合在一起,并完成测试。该方法称为增量式集成。增量式测试的范围是一步步扩大的,所以错误容易定位,而且已测试的模块可在新的条件下进行测试,程序测试得更彻底。增量式测试有自顶向下的增量方式和自底向上的增量方式两种测试方法。3.软件测试步骤第100页,共149页,2023年,2月20日,星期三1)自顶向下的增量方式模块按程序的控制结构,从上到下的组合方式。再增加测试模块时有先深度后宽度和先宽度后深度两种次序。如图所示的自顶向下组合示例中,先深度后宽度的方法是把程序结构中的一条主路径上的模块相组合。3.软件测试步骤第101页,共149页,2023年,2月20日,星期三1)自顶向下的增量方式测试顺序可以是M1→M2→M5→M6→M3→M7→M4。先宽度后深度的方法是把模块按层次进行组合,测试顺序是M1→M2→M3→M4→M5→M6→M7。自顶向下的增量方式可以较早地验证控制和判定点,如果出现问题能够及时纠正。在测试时不需要编写驱动模块,但需要桩模块。另外,如果高层,模块依赖性很大,需要返回大量信息,在用桩模块代替时,桩模块的编写就复杂,必然会增加开销。这时可以用下面的自底向上的增量方式。3.软件测试步骤第102页,共149页,2023年,2月20日,星期三2)自底向上的增量方式自底向上的增量方式是从最底层的功能模块开始,边组合边测试,从下向上地完成整个程序结构的测试。例如,在图7.4所示的“新生基本信息管理”系统中,在单元测试的基础上,从最底层模块开始,按功能组合模块,从下到上的进行测试。这样的测试方式可以较早地发现底层关键性模块出现的错误。在测试时不需要编写桩模块,但需要驱动模块。另外,对程序中的主要控制错误发现较晚。3.软件测试步骤第103页,共149页,2023年,2月20日,星期三集成测试

两种方法的比较缺点:1.需要驱动程序2.要在功能测试前进行大量测试

自底向上测试

缺点:1.需专门编写程序模拟模块

2.难以全面测试每个模块3.一些逻辑条件不能被测试自顶向上测试

缺点

比较集成测试第104页,共149页,2023年,2月20日,星期三确认测试通过集成测试后,软件已完全组装起来,接口方面的错误也已排除,确认测试即可开始。确认测试应检查软件能否按合同要求进行工作,即是否满足系统说明书中的确认标准。首先要进行有效性测试以及软件配置评审,然后进行验收测试和安装测试,在通过了鉴定之后,才能成为可交付的软件。确认测试的步骤:3.软件测试步骤第105页,共149页,2023年,2月20日,星期三1)确认测试标准实现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。无论是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法。

3.软件测试步骤第106页,共149页,2023年,2月20日,星期三2)配置复审确认测试的另一个重要环节是配置复审。复审的目的在于保证软件配置齐全、分类有序,并且包括软件维护所必须的细节。3.软件测试步骤第107页,共149页,2023年,2月20日,星期三3.软件测试步骤测试:由用户在开发环境下模拟实际操作环境运行程序系统目的是评价软件产品的功能、可用性、可靠性、性能和支持,系统的界面的特色方法是由开发者在场记录系统出错情况及使用中存在的问题第108页,共149页,2023年,2月20日,星期三3.软件测试步骤测试:由系统一个或多个用户在实际操作环境中运行系统目的是评价系统的可支持性,包括文档的完整性、用户培训和支持、使用系统的能力和满意程度方法是开发者不在测试现场,由用户记录的问题可能是系统存在的错误,也可能是用户的主观认定第109页,共149页,2023年,2月20日,星期三系统测试系统测试是对整个系统进行总的功能、性能等方面的测试。将已经确认的软件、硬件等其他元素结合在一起,进行系统的各种集成测试和技术测试。其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。1)系统测试需求获取系统测试需求所确定的是测试的内容,即测试的具体对象。系统测试需求主要来源于需求规格说明书。在分析测试需求时,可应用以下几条一般规则:测试需求必须是可观测、可测评的行为。如果不能观测或测评的测试需求,就无法对其进行评估,以确定需求是否已经满足。

3.软件测试步骤第110页,共149页,2023年,2月20日,星期三在每个用例或系统的补充需求与测试需求之间不存在一对一的关系。用例通常具有多个测试需求;有些补充需求将派生一个或多个测试需求,而其他补充需求(如市场需求或包装需求)将不派生任何测试需求。在需求规格说明书中每一个功能描述将派生一个或多个测试需求,性能描述、安全性描述等也将派生出一个或多个测试需求。2)系统测试策略测试策略用于说明某项特定测试工作的一般方法和目标。系统测试策略主要针对系统测试需求确定测试类型及如何实施测试的方法和技术。3.软件测试步骤第111页,共149页,2023年,2月20日,星期三系统测试的测试类型一般包括:功能测试(FunctionalTesting)性能测试(PerformanceTesting)负载测试(LoadTesting)强度测试(StressTesting)容量测试(VolumeTesting)安全性测试(SecurityTesting)配置测试(ConfigurationTesting)故障恢复测试(RecoveryTesting)安装测试(InstallationTesting)文档测试(DocumentationTesting)用户界面测试(GUITesting)3.软件测试步骤第112页,共149页,2023年,2月20日,星期三[功能测试]功能测试是系统测试中最基本的测试,它不管软件内部的实现逻辑,主要根据软件需求规格说明和测试需求列表,验证产品的功能实现是否符合需求规格。功能测试主要发现以下错误:是否有不正确或遗漏的功能?功能实现是否满足用户需求和系统设计的隐藏需求?能否正确地接受输入?能否正确地输出结果?[性能测试]对于那些实时和嵌入式系统,软件部分即使满足功能要求,也未必能够满足性能要求,虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试运行性能系统性能测试是为了完成这一任务。性能测试有时与强度测试相结合,经常需要其他软硬件的配套支持。3.软件测试步骤第113页,共149页,2023年,2月20日,星期三[安全性测试]安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。下面列举一些安全性测试的例子:想方设法截取或破译口令;专门定做软件破坏系统的保护机制;故意导致系统失败,企图趁恢复之机非法进入;试图通过浏览非保密数据,推导所需信息。3.软件测试步骤第114页,共149页,2023年,2月20日,星期三[恢复测试]恢复测试是检验系统从软件或者硬件失败中恢复的能力,即采用各种人工干预方式使软件出错,而不能正常工作,从而检验系统的恢复能力。下面列举一些恢复测试的例子:当供电出现问题时的恢复恢复程序的执行对选择的文件和数据进行恢复恢复处理日志方面的能力通过切换到一个并行系统来进行恢复3.软件测试步骤第115页,共149页,2023年,2月20日,星期三[安装测试]系统验收之后,需要在目标环境中进行安装。安装测试的目的是保证应用程序能够被成功地安装,它重点考虑以下方面:应用程序是否可以成功地安装在以前从未安装过的环境中?应用程序是否可以成功地安装在以前已有的环境中?配置信息定义正确吗?考虑到以前的配置信息吗?在线文档安装正确吗?安装应用程序是否会影响其他的应用程序吗?对于该应用程序来说,计算机资源是否充足?安装程序是否可以检测到资源的情况并做出适当的反应?3.软件测试步骤第116页,共149页,2023年,2月20日,星期三

编写测试文档,该文档应该描述要执行的软件测试及测试的结果,主要包括以下部分:测试计划:测试计划是测试工作的指导性文档,它规定测试活动的范围、方法、资源和进度,明确正在测试的项目、要测试的特性、要执行的测试任务、每个任务的负责人,以及与计划相关的风险。其主要内容包括测试目标、测试方法、测试范围、测试资源、测试环境和工具、测试体系结构、测试进度表等。

3.软件测试步骤第117页,共149页,2023年,2月20日,星期三测试计划

测试计划的内容

五制定衡量测试成功与完成的准则。

四建立用于计划和进行测试以及报告测试结果的规程和标准;

三确定工具、设施和测试库的可用性;

二确定每项测试活动的进度和职责;

一建立每个测试阶段的目标;第118页,共149页,2023年,2月20日,星期三

编写测试文档,该文档应该描述要执行的软件测试及测试的结果,主要包括以下部分:测试用例:测试用例是数据输入和期望结果组成的对,其中“输入”是对被测软件接收外界数据的描述,“期望结果”是对于相应输入软件应该出现的输出结果的描述,测试用例还应明确指出使用具体测试案例产生的测试程序的任何限制。测试用例可以被组织成一个测试系列,即为实现某个特定的测试目的而设计的一组测试用例。

3.软件测试步骤第119页,共149页,2023年,2月20日,星期三缺陷报告:缺陷报告是编写在需要调查研究的测试过程期间发生的任何事件,即记录软件缺陷。其主要内容包括缺陷编号、题目、状态、提出、解决、所属项目、测试环境、缺限报告执行步骤、期待结果、附件等。在报告缺陷时,一般要讲明缺限的严重性和优先级。其中严重性表示软件的恶劣程度,反映其对产品和用户的影响;优先级表示修复缺陷的重要程度和应该何时修复。测试总结报告:该文档列出测试中发现的和需要调查的所有失败情况。从测试总结报告中,开发人员对每次失效进行分析并区分优先次序,进而为系统和模型中的变化进行设计。

3.软件测试步骤第120页,共149页,2023年,2月20日,星期三案例研究微软的测试工作第121页,共149页,2023年,2月20日,星期三微软的测试工作

基本情况测试在微软公司是一项非常重要的工作,微软公司在此方面的投入是非常巨大的。微软对测试的重视表现在工程开发队伍的人员构成上,微软的项目经理、软件开发人员和测试人员的比例基本是1:3:3。对于测试的重视还表现在最后产品要发布的时候,此产品的所有相关部门都必须签字,而测试人员则具有绝对的否决权。

第122页,共149页,2023年,2月20日,星期三微软的测试工作

测试计划测试计划是测试人员管理测试项目,在软件中寻找Bug的一种有效的工具。测试计划主要有两个作用:评判团队的测试覆盖率以及效率,让测试工作很有条理的逐步展开;有利于与项目经理、开发人员进行沟通。

第123页,共149页,2023年,2月20日,星期三测试计划

测试文档测试人员在编写测试计划之前,应获得以下文档:程序经理编写的产品功能说明书或产品开发计划;程序经理或开发人员提供的开发进度表。第124页,共149页,2023年,2月20日,星期三测试计划

测试计划的内容测试目标和发布条件给出清晰的测试目标描述定义产品的发布条件待测产品范围软件主要特性/功能说明特性/功能测试一览第125页,共149页,2023年,2月20日,星期三测试计划

测试计划的内容测试方法描述定义测试软件产品时使用的测试方法;描述每一种特定的测试方法可以覆盖哪些测试范围。测试进度表定义测试里程碑;定义当前里程碑的详细测试进度。第126页,共149页,2023年,2月20日,星期三测试计划

测试计划的内容测试资源和相关的程序经理/开发工程师定义参与测试的人员;描述每位测试人员的职责范围;给出与测试有关的程序经理/开发工程师的相关信息。配置范围和测试工具给出测试时使用的所有计算机平台列表;描述测试覆盖了哪些硬件设备;测试时使用的主要测试工具。第127页,共149页,2023年,2月20日,星期三微软的测试工作

测试用例开发

一个好的测试用例就是有一个合理的概率来找到Bug,不要冗余,要有针对性,一个测试只针对一件事情。测试用例开发中主要使用的技术有等价类划分,边界值的分析,ErrorGuessingTesting。

第128页,共149页,2023年,2月20日,星期三微软的测试工作

Bug跟踪过程

测试工程师向项目组报告该Bug的位置、表现、当前状态等信息,项目组在Bug数据库中添加该Bug的记录

开发经理对已发现的Bug进行集中讨论,根据Bug对产品的影响来评估其优先级,制定Bug的修正策略

开发工程师对特定的Bug进行处理,找出代码中的错误原因,修改代码,重新生成产品版本

测试人员对处理后的结果进行测试,工程师验证Bug是否已被修正并确定开发人员有无在改代码时引入新Bug1234第129页,共149页,2023年,2月20日,星期三微软的测试工作

Bug的不同处理方式

在某些情况下,Bug已处理并不意味着Bug已经被修正。开发工程师可以推迟Bug的修正时间,也可以在分析之后告知测试工程师这实际上不是一个真正的Bug。

第130页,共149页,2023年,2月20日,星期三Bug的不同处理方式

Bug的状态已修正

开发工程师已经修正了相应的程序代码,该Bug不会出现了。可推迟

该Bug的重要程度较低,不会影响当前应提交版本的主要功能,可安排在下一版本中再行处理。

设计问题

该Bug与程序实现无关,其所表现出来的行为完全符合设计要求,对此应提交给程序经理处理。

无需修正

该Bug的重要程度非常低,根本不会影响程序的功能,项目组没有必要在这些Bug上浪费时间。

第131页,共149页,2023年,2月20日,星期三帕雷托分析你相信吗?

80%的软件错误是由20%的代码引起的

20%的模块消耗80%的资源

20%的模块包含80%的错误

20%的错误消耗80%的修改成本

20%的模块占用了80%的执行时间

80%的商业利润是由20%的客户带来的微软的测试工作第132页,共149页,2023年,2月20日,星期三1.软件调试过程6.3.2软件调试第133页,共149页,2023年,2月20日,星期三1.5.4MIS的结构从技术角度来看,查找错误的难度在于:现象与原因所处的位置可能相距甚远。当其它错误纠正时,此错误所表现的现象可能会暂时消失,但并未实际排除。现象实际上是由一些非错误原因(如舍入不精确)引起的。现象可能是由于一些不容易发现的人为错误引起的。错误是由于时序问题引起的,与处理过程无关。现象是由于难于精确再现的输入状态引起。现象可能是周期出现的,在嵌入式系统中常常遇到。6.3.2软件调试第134页,共149页,2023年,2月20日,星期三6.3.2软件调试调试方法试探法基本思路:先分析错误的表现形式,猜想程序故障的大致位置,然后使用一些简单、常用的纠错技术,获取可疑区域的有关信息,判断猜想是否正确。经过多次试探,找到错误根源跟踪法基本思路:正向跟踪的思路是沿着程序的控制流,从头开始跟踪,逐步检查中间结果,找到最先出错的地方

基本思路:反向跟踪的思路是从发现错误症状的地方开始回溯,即人工沿着程序的控制流往回追踪程序代码,一直到找出错误的位置或确定故障的范围为止。

对分查找法基本思路:若已知每个变量在程序内若干个关键点的正确值,则可以用

温馨提示

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

评论

0/150

提交评论