版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着计算机的发展,越来越多的行业实现了管理的信息化和自动化,医务行业也不例外。在很多医院中,挂号作为医院工作中最重要的一个环节还没有完全实现信息化管理,因此本系统选择医院预约挂号为研究对象,以实现网上预约挂号、缓解医院现场挂号难、提高医院工作效率为目标。本次设计采用C#语言及VS2013和MySQL为开发工具,并结合软件工程的设计思想,以B/S为模式设计并实现了医院预约挂号系统,实现了患者的预约、查询以及管理员对预约信息的管理等功能。医院预约挂号系统有着很好的应用前景,用它来代替医院现场挂号,实现患者看病挂号网络化是一个必然趋势。随着计算机技术和网络技术的发展,它的功能将会得到不断的发展和完善。关键词:C#;VS2013;数据库;B/S模式;挂号
目录21101可行性分析 1261571.1项目开发背景 1193201.2项目开发意义 1229771.3可行性研究的主要内容 25421.3.1技术可行性 298031.3.2操作可行性 3238471.3.3经济可行性 373922项目开发计划 414032.1编写目的 456982.2项目概述 4323392.3功能描述 4185272.4项目开发计划 5120792.5交付期限 522623需求分析 6314333.1系统需求分析 6278213.2系统流程图 6129233.3数据描述 7303573.3.1数据流图 7291623.3.2数据字典 8205933.4系统E-R图 9127993.5需求规定 11190143.5.1功能需求 11260623.5.2性能需求 12140323.5.3运行需求 1299623.5.4其他需求 128764系统概要设计 1394454.1总体设计 1390054.1.1总体设计原理 13105334.1.2系统功能模块设计 13230394.1.3功能分析 15285724.2数据库设计 1594584.2.1数据库概念设计 1557244.2.2数据库逻辑结构设计 16291975详细设计 20252465.1人机界面设计 2029865.1.1一般交互设计 20202835.1.2信息显示设计 21316455.1.3数据输入设计 21142445.2程序设计过程 2232615.2.1登陆界面设计 22194145.2.2程序流程设计 2514156测试 2974106.1测试描述 29196906.1.1测试目的 30202976.1.2测试方案 30293216.2测试计划 3097646.2.1测试过程 3076656.2.2进度安排及里程碑 32324116.2.3系统资源 33175586.2.4项目风险分析 33148906.3测试计划设计说明 34175526.3.1测试用例选取原则 34242976.3.2测试内容及其选取策略 35129136.3.3功能测试 3788506.4医院挂号系统覆盖率测试 38232176.4.1逻辑覆盖率 38324486.4.2语句覆盖 41152276.4.3判定覆盖 4181976.4.4条件覆盖 4186746.5医院挂号系统黑盒测试 42201706.5.1等价类划分测试 42117226.5.2边界值法 43102617设计总结 45230457.1心得体会 45280777.2存在的问题 4521114致谢 4613384参考文献 471可行性分析1.1项目开发背景随着计算机技术的飞速发展,计算机在系统管理中的应用越来越普及,利用计算机实现各个系统的管理显得越来越重要。对于一些大中型管理部门来说,利用计算机支持管理高效率完成日常事务的管理,是适应现代管理制度要求、推动管理走向科学化、规范化的必要条件。我国由于人口多,进而带来医院看病难的问题,由于人口众多,需要排队进行挂号,这样会浪费患者的时间,而且医院的效率也不高。患者挂号是一项琐碎、复杂而又十分细致的工作,患者数量之庞大,一般不允许出错,如果实行手工操作,每天挂号的情况以及挂号时间等须手工填制大量的表格,这就会耗费医院管理工作人员大量的时间和精力,患者排队等候时间长,辗转过程多,影响了医疗的秩序。如何利用现代信息技术使企业拥有快速、高效的市场反映能力和高效率,已是医院特别关心的问题。尽快建立一个医院预约挂号系统,完善现代医院的信息化管理机制,已成为医院生存发展的当务之急。所以,建立网上预约挂号系统势在必行。本系统以医院为背景,在认真调研和分析了医院的现状之后,根据用户的需求和各个功能的关系,作出了积极的设计方案。在新的管理资源和管理模式上,一定能使工作质量、工作效率等得到提高,推动医院发展的步伐。1.2项目开发意义开发医院预约挂号系统,使患者就诊系统化,规范化,自动化,从而达到提高管理效率的目的。本系统开发设计思想是实现患者预约挂号的数字化。尽量采用现有软硬件环境,及先进的管理系统开发方案,提高系统开发水平和应用效果的目的;系统应符合医院管理的规定,满足日常管理的需要,并达到操作过程中的直观,方便,实用,安全等要求;系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充,维护;系统应具备数据库维护功能,及时根据用户需求进行数据的添加,删除,修改等操作。网上预约挂号系统是一种基于互联网的新型挂号系统,利用该预约挂号系统,患者就可以在家里预约医院的专家,而无需受排队之苦。它能更好的改善就医环境,简化就医环节,节约就医时间,真正体现了一切以病人为中心,一切从方便患者出发,符合当今医院人性化服务温馨服务的理念。目前,门诊一直是阻挠医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院。而造成门诊量难以提高的因素主要有两个方面:一是集中式挂号,就诊人员流量不均,具有不确定性,有明显的就诊高峰和低谷。高峰期患者挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生就诊时间短、不仔细、服务差。而低谷期,医生无患者可看,医院资源浪费。二是专家号难挂,特别是名专家,会出现倒号、炒号现象,严重损害患者利益,影响医院的声誉。而采用网上预约挂号,可有效解决这一现象,通过网上有效的身份验证,杜绝倒、炒专家号的现象,提高医院门诊服务质量,取得良好的社会效益和经济效益。此外,患者到医院就诊前对医院的相关信息了解不多,对所要挂的专科医生的情况不太了解,只能凭经验和印象进行选择,具有较大的盲目性。而当医院开通网上预约挂号服务以后,求医者只需坐在家中轻点下鼠标,就可以挂上医院专家门诊号,可以做到“足不出户选医生”。网上预约正悄然改变着求医者的看病观念。所以,预约看病应用将越来越广泛。1.3可行性研究的主要内容可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计过程,也就是在较高层系上以较抽象的方式进行的系统分析和设计过程。在进行可行性研究时首先要进一步分析和澄清问题定义。在问题定义阶段初步确定系统的规模和目标,如果正确就进一步加以肯定,如果有错误就应该及时改正,如果对目标约束和限制,必须把他们一一列出来。从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。对于每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三个方面研究每种解法的可行性。1.3.1技术可行性(1)对系统的简要描述基于MicrosoftVisualStudio2013开发环境和使用MySQL数据库开发的面向患者、医院管理员和专家的网上信息管理系统。系统在安装了WindowsXP操作系统的个人电脑上使用。(2)系统处理流程患者登录该系统后,根据自己病情,查询医院内自己所需的专家信息及专家简历,选中专家后,登记患者的姓名及电话号码以及简要病历,并填写预约时间。患者预约信息反馈到医院系统管理员后,管理员对预约信息进行整理,产生预约清单。预约清单开放给医院预约挂号号码发放处和医院内各专家,医院预约挂号号码发放处根据预约清单打印并在预约当日按照预约清单发放挂号号码,医院内各专家可以进入系统根据预约清单查询预约自己的患者的数量及患者的简要病历。1.3.2操作可行性操作可行性主要研究系统的操作方式在该用户组织内是否可行。在当前的社会条件下,Internet网已经在中国全面覆盖,在中国各地,均可以通过硬件设备联网。而且各商业组织也拥有属于自己的内部局域网,所以该系统可以实现联网。该系统在联网情况下,可以通过PC机访问系统的数据,所以该系统的操作方式符合该用户组织。而且本系统操作方法简单,只需掌握基本上网知识,用户即可以轻易学会使用方法及操作流程。系统管理员需要进行简单培训。1.3.3经济可行性经济可行性主要研究该系统的经济效益能否超过它的开发成本。目前在中国,到医院就医的人流量是非常庞大的,所以人们对医院的依赖性非常强。在这样的背景下,为医院设计这样的一个系统,其经济效益是十分可观的而且取消了人们就医挂号的烦恼。又由于通过网络传递信息可以不受距离的限制,因此可以节省大量的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高医院的执行效率,即提高了医院的经济效益,所以从经济上完全是可行的。
2项目开发计划2.1编写目的此系统在可行性分析的基础上,进一步的说明对医院预约挂号系统的要求,准确的定义出医院预约挂号系统要完成的任务,确定该系统要完成哪些工作,使系统尽可能的满足用户的要求,尽可能的简单方便的运行。2.2项目概述医院挂号系统主要功能包括:后台管理和前台操作,其中:后台管理主要包括:用户管理、预约信息管理、专家信息管理、相关业务的查询和系统维护等;用户管理:在数据库中存储有各角色用户的信息信息,当某个角色的信息需要变化是时,可以随时进行信息的变更包括增加、删除、修改等功能,同时数据库中信息相应变化,并保持数据的时效性和完整性。预约信息管理主要包括:随时查询患者的预约信息,如患者姓名、病例、所属科室等,而且可及时更新数据库数据。专家信息管理主要包括:专家信息的增、删、改、查等。在需要时(可每隔一个时间段查询一次)查询预约该专家的患者数量及各方面的情况,如预约量超过专家的可以预约的人数后(大于某一自定的数量)时,可生成预约名额已满报告,方便患者在进行预约时查看可以有效防止预约成功由于人数原因而不能就诊的情况。2.3功能描述1.预约挂号实现患者从网上直接预约挂号。预约的时候需要填写患者的姓名、预约日期、电话以及简单的病情症状。2.预约查询预约完成后患者可以查询自己的预约信息,当患者想改变专家则可取消本次预约。3.取消预约患者查询到自己的预约信息后,可以从次功能对先前的预约进行取消操作。4.登录管理员以及专家用户可以从登录功能模块进行登录而患者通过注册可以获得登录权限进而进行一系列操作。5.整理专家信息管理员登录以后可以对用户进行添加、删除和修改,实现对用户的管理。6.调配专家管理员登录后通过次模块可以查看患者预约信息,并对患者预约的专家进行调配。7.门诊流量统计管理员登录后可以通过次模块对每天的预约人数进行统计并导出。8.专家查询专家用户登录以后可以查询预约自己的患者信息。通过查询患者信息,可以对工作有一个合理的安排与准备。2.4项目开发计划1.任务分解分三个大的阶段进行开发第一阶段完成本系统的数据流图跟E-R图。第二阶段完成概要设计跟详细设计。第三阶段书写文档。2.关键问题各模块之间的联系和后台数据库的完成。使用目前的设备与现有开发技术完全可以开发出该系统,总的来说该项目没有较大的技术难点与其他的一些风险因素。对于出现的一些小难点总都能得到解决。2.5交付期限本系统的开发时限为两个星期,该系统的交付期限为2015年12月25日。
3需求分析3.1系统需求分析目前,门诊一直是困扰医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院,而造成门诊质量难以提高的因素主要有两方面:
一方面集中式挂号(现在流行的分层挂号只是相对而言一个范围较小的集中式挂号),就诊人员流量不均、具有不确定性,有明显的就诊高峰和低谷(表现在整个医院不同门诊时间段及同科室的不同时间段)。高峰期病人挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生问诊时间短、不仔细、态度差。而低谷期,医生无病人看、溜号,医院资源浪费。
另一方面专家号(特别是名专家号)难挂,出现倒号、炒号现象,严重损害病人利益,影响到医院的声誉。而采用网上预约挂号,可有效的解决这一现象,还通过有效的身份验证,杜绝倒、炒专家号的现象,提高医院门诊服务质量,取得良好的社会效益和经济效益。
为了解决这一问题,我们需要一种能够方便快捷的挂号方式来满足各方面的需求,减少排队挂号的痛苦和时间的浪费,而本课题所研究的基于JSP的医院网上挂号预约系统正好是为了解决这一问题而设计的方案,因此,本系统拥有很大的用户需求。3.2系统流程图系统流程图通过图形的形式描述系统的各功能模块以及各个权限的操作者之间的交互情况,如下图3.1所示。
门诊流量统计报告患者登陆程序用户注册显示专家信息专家查询程序门诊流量统计报告患者登陆程序用户注册显示专家信息专家查询程序管理员管理程序显示治疗情况患者预约信息用户信息管理用户注册患者登陆程序患者登陆程序用户注册专家查询程序显示专家信息显示治疗情况管理员管理程序门诊流量统计报告管理员管理程序显示治疗情况显示专家信息专家查询程序专家查询程序显示专家信息显示治疗情况管理员管理程序门诊流量统计报告管理员管理程序显示治疗情况显示专家信息专家查询程序 图3.1系统流程图3.3数据描述3.3.1数据流图数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图有四种基本符号:正方形表示数据的源点或终点;圆角矩形代表变换数据的处理;开口矩形代表数据存储;箭头表示数据流。医院网络预约挂号系统中需要处理的信息有登录信息,专家信息以及患者预约信息,根据数据信息的流向画出本系统的数据流图。医院预约挂号系统顶层数据流图如下图3.2所示。预约系统预约系统患者专家管理员预约信息登录信息反馈信息登录信息图3.2顶层数据流图3.3.2数据字典数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存储、数据处理五部分,其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义描述数据流、数据存储的逻辑内容。根据数据流图,得出了相应的数据字典卡片,每张卡片上主要应该包括名字、描述、定义。名称:预约信息别名:预约报表描述:患者预约时填写的信息定义:患者姓名+专家姓名+患者身份证+病历+科室+日期+患者电话位置:输出到打印机名称:预约信息别名:预约报表描述:患者预约时填写的信息定义:患者姓名+专家姓名+患者身份证+病历+科室+日期+患者电话位置:输出到打印机患者清单名称:管理员登陆信息别名:管理员信息描述:系统管理员的登陆信息定义:用户名+密码+用户权限位置:名称:治疗信息别名:患者治疗情况描述:患者预约完成就诊后的信息定义:患者姓名+专家姓名+科室+治疗日期+治疗情况位置:输出到打印机治疗清单名称:专家信息别名:患者预约查询信息描述:患者挂号时查询的各个专家的信息定义:专家姓名+专家号+专家性别+科室+专家特长+预约人数+当前人数+专家电话位置:显示在患者客户端保存到磁盘3.4系统E-R图为了把用户的数据清楚、准确地描述出来,系统分析员通常要建立一个概念数据模型。概念结构独立于支持数据库的DBMS,具有能充分反映现实世界、易于理解、易于更动、易于向关系、网状或层次等各种数据模型转换。可根据实体间的关系和属性得到E-R图。E-R图中的三个基本符号:矩形表示实体型,矩形框内写明实体名;椭圆形表示属性,并用无向边将其与相应的实体型连接起来;菱形表示联系,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。医院预约挂号系统是针对医院管理员,医院专家和患者的系统。所以,在本系统中有患者、系统管理员、医院专家三个实体。患者在预约的时候必须填写相关的预约信息,即患者姓名、身份证号、联系方式、预约时间、预约的专家以及患者简单病情症状,这些都是“患者”实体的属性。系统管理员有自己的登录用户名和密码,还可以修改自己的密码,这些是“管理员”实体的属性。专家为了能让在网上预约的患者清晰的了解自己,所以系统里有专家的姓名、电话、科室、编号、特长、可以预约的人数,已经预约的人数,专家进系统查询预约患者信息时还需要登录系统,所以专家还有登录系统所需要的用户名和密码,这些是“专家”实体的属性。患者及其属性如下图3.3所示。
患者患者患者姓名身份证专家姓名科室病例电话图3.3患者实体及其属性图管理员及其属性如下图3.4所示。管理员管理员用户名密码权限图3.4管理员实体及其属性图专家及其属性如下图3.5所示。专家专家专家号性别科室专家特长预约人数当前人数专家电话专家姓名图3.5专家实体及其属性图通过以上描述的各个实体的属性图,这样就可以了解系统的实体信息,实体属性图中描述了各个实体的属性,这些也是在进行系统操作时可以得到的信息。这是以需求说明为基础设计的局部概念模型,然后以这些局部模型为基础集成为一个全局的概念模型,在概念模型设计中多是采用这种自底向上的设计方式,称为系统集成法。分析得出系统中实体属性后,每个实体之间都有一定的联系,“管理员”实体与“专家”实体之间的关系为管理员管理专家,“管理员”与“患者”实体之间的关系是管理员管理患者的预约信息,“专家”与“患者”两实体之间的关系为专家对患者进行诊治。所以得出的医院预约挂号系统E-R图如图3.6所示。患者专家治疗信息患者专家治疗信息治疗N1图3.6医院预约挂号系统E-R图3.5需求规定3.5.1功能需求医院预约挂号系统主要实现一下几部分功能:内部人员权限管理,预约挂号,门诊流量统计,公告栏管理,专家信息管理。内部人员权限管理模块:管理员以及专家的登录以及修改密码。管理员可以从登录模块进入系统对预约信息以及专家基本信息进行整理。专家可以从登录模块进入系统查询患者预约情况。预约挂号模块:全国各地患者可以通过此模块进行预约挂号,并填写自己的挂号信息。可以查询自己先前的预约信息,也可以通过此系统取消先前的预约。门诊流量统计:记录每天门诊的患者流量,对其进行统计。专家信息管理:管理员可以对医院专家的信息进行增加、修改和删除。3.5.2性能需求统应具有配置灵活、易于维护、便于扩展、性能可靠等突出优点,支持面向对象的大型数据库系统。如:SQLServer等,可处理大容量数据,并具有高安全性和可靠性。1.时间特性操作响应时间一般在1~3秒之内,随之数据量的增大,操作的响应时间就要延长。2.数据精度各种数据的输入,输出要满足各种对数据精度的要求,严格按照系统要求的格式。3.适应性适应现有Windows系统的需求,并有可能适应更高级别的系统。3.5.3运行需求1.用户界面用户界面简单直观,一目了然,给用户带来极大的便利,让用户能够简单直接的运用本系统2.硬件接口不需要特定的硬件或硬件接口进行支撑,一般微机均可运行。3.软件接口运行于WindowsXP或者更高版本的操作系统上。3.5.4其他需求1.保密需求:必须输入相关的正确的用户名和密码才能进入系统,并且不同的用户选择相应的权限才能登录成功。2.数据要求:对于患者和专家的联系电话,必须有严格的位数限制,经过分析研究,联系电话位数必须限制11位。3.身份证要求:为杜绝无关人员对系统进行恶意的破坏,在患者预约挂号时,必须填写自己真实的18位身份证号,输入的位数不对以及输入的身份证格式不对,系统则会提示身份证输入有误,不予存到系统数据库里,预约失败。4.可维护性:平时由管理人员可以维护,遇到大问题或难解决的问题由开发人员进行维护。5.可扩展性:在系统使用过程中,如果有医院在预约挂号方面有新的要求,则应能在本系统中进行扩展,增加新的功能。4系统概要设计4.1总体设计4.1.1总体设计原理经过需求分析,已经清楚了系统所要完成的全部功能,现在决定“怎么做”,总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题。因此总体设计又称为概要设计或初步设计。通过这个阶段的工作,将划分出组成该系统的物理元素——程序、文件、数据库、人工过程和文档等,但是这些物理元素仍然处于黑盒子级别。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成,以及这些模块间的相互关系。总体设计过程首先要寻找实现目标系统的的各种不同的方案,需求分析阶段得到的数据流图是设想的各种可能方案的的基础,然后从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图。然后分析比较这些合理的方案,选出最佳的方案,进一步为这个最佳方案设计软件结构,设计出初步的软件结构后还要进行多方改进,从而得到更合理的结构,进行数据库设计。进行总体设计,可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。4.1.2系统功能模块设计在需求分析的时候已经对系统的的功能进行了初步分析,在这里对系统功能进行详细的设计。由于系统中面向的是医院的系统管理员,医院的坐诊专家,以及广大患者,所以对系统分为三大主功能模块,即管理、专家、患者三大主功能模块。管理模块是针对管理员对系统的管理进行设计的功能模块,管理员需要进行登录系统后方可进行系统信息管理,所以首先要有登录模块。管理员登录系统后需要对专家的信息进行增加、删除和修改,所以在此主功能模块下设计了一个整理专家信息模块,管理员可以通过此模块对专家信息进行管理。管理员还需要对每天患者预约的信息进行查看整理,所以设计了一个调配专家,调配专家模块用于当患者预约的专家在预约当日临时有事不能按时坐诊的话,管理员可以通过此模块给相关患者进行专家调配,就是给相关预约患者调配一个与患者预约的专家同科室的专家,然后保存到数据库里,以便患者查询预约信息。系统要求有一个统计门诊流量的功能,统计每天预约的人数,所以在管理模块下设计了一个统计门诊流量的功能模块。在主页面有一个公告栏,来公示医院的通知以及医院的新闻动态,公告栏由管理员管理,所以在管理主功能模块下设计了一个公告栏模块。专家主功能模块下设计了一个专家查询模块,专家从此模块查询患者预约信息。专家登录系统则从管理模块下的登录模块进行登录,登录的时候选择登录相应的登录权限。患者主功能模块下设计了三个分模块:预约、查询信息和取消预约。患者从网上进行预约挂号时,需要填写预约的各种信息,患者可以进入预约模块填写自己的预约信息,并保存,预约成功。当患者预约成功后,患者想查询先前的预约信息,则需要一个查询模块,所以在患者主功能模块下设计了一个查询信息模块。当患者在预约当日有事不能按时就诊,患者需要取消先前的预约,所以在患者主功能模块下设计了一个取消预约的模块。医院预约挂号系统的功能模块如下图4.1所示。医院预约挂号系统医院预约挂号系统管理员专家患者登录用户管理统计门诊流量治疗信息管理登录预约信息查询登录注册预约专家取消预约对患者治疗图4.1系统功能模块图
4.1.3功能分析1.登录:当管理员、专家及患者用户需要进入系统时,可以从登录模块输入用户名和密码,并选择自己权限进行登录。当输入错误的信息时系统拒绝访问。2.统计门诊流量:管理员可以用此功能进行每天预约的患者数量,做出统计。3.调配专家:当患者预约的专家在预约的时间临时有事情不能给患者看病的情况下,管理员可以对此患者进行专家调配,调配为同一科室的专家。4.整理专家信息:管理员通过此功能添加、修改和删除专家信息,及时更细医院里专家的信息,以方便患者进行预约。5.专家查询:专家用户登录系统后,进入到查询信息模块,查询预约自己的患者信息,以方便专家做好合理的安排和准备。6.预约:患者进入系统后,可以查看各个科室的各个专家信息,根据自己的病情预约适合的专家。7.查询信息:当患者预约完毕后,可以通过查询功能,对自己先前的预约信息进行查询、核对。8.取消预约:当患者临时有事不能到医院看病时,可以通过查询信息查询到自己的预约信息,然后取消自己先前的预约。4.2数据库设计4.2.1数据库概念设计数据库一般分为三级模式:外模式、模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述。在该系统中具体的模式有:用户(用户名,密码,权限)专家信息(专家编号,专家姓名,性别,科室,特长,预约人数,当前人数,电话)预约记录(患者姓名,专家姓名,患者身份证,科室,病历,就诊日期,电话)治疗记录(患者姓名,专家姓名,科室,治疗日期,治疗情况)4.2.2数据库逻辑结构设计数据库是信息系统的核心和基础,数据库设计的质量将直接关系到信息系统开发的成败和优劣。数据库设计是根据业务需求,信息需求,和处理需求,确定系统中的数据结构、数据操作和数据一致性约束的过程。数据库设计是在一个给定的应用环境中,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境,包括数据库的存取效率、数据库存储空间的利用率、数据库系统运行管理的效率等。根据医院挂号系统的功能要求,选取MySQL作为后台数据库。在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。具体内容如下各表所示。登录信息表中存储的是管理员和专家以及患者登录系统时所需要的用户名和密码,以及识别登录权限信息。具体如下表4.1所示。表4.1用户登录信息表属性名字段名类型长度Null备注姓名usernamevarchar50否主键密码passwordvarchar50否权限issysvarchar50否预约信息表主要存储患者的预约信息,患者预约挂号时填写的各种信息都存储到预约信息表中。具体如下表4.2所示。表4.2预约信息表属性名字段名类型长度Null备注患者姓名patientnamevarchar50否主键专家姓名specialistnovarchar50否患者身份证zhuanjiavarchar50否病历binglivarchar50是科室kehsivarchar50否预约日期orderdatevarchar50否患者电话telvarchar50否专家信息表用于存储医院专家的信息,专家的姓名、科室、电话、联系方式、预约人数等信息都存储啊在专家信息表中。具体如下表4.3所示。表4.3专家信息表属性名字段名类型长度Null备注专家姓名specialistnamevarchar50否专家号specialistnovarchar50否主键专家性别specialistsexvarchar50否科室keshivarchar50否专家特长techangvarchar50否预约人数ordernameint10否当前人数currentnumint10否专家电话telvarchar50否治疗信息表用于存储患者就诊的信息,管理员可以通过该表查询患者的治疗情况,同时进行就诊量的统计。具体如下表4.4所示。表4.4治疗信息表属性名字段名类型长度Null备注患者姓名hznamevarchar50否主键专家姓名zjnamevarchar50否科室keshivarchar50否治疗日期zldatavarchar50否治疗情况zlqkvarchar50否
5详细设计结构化详细设计是对概要设计的进一步细化,其目标是为软件结构图中每个模块提供可供程序员编程实现的具体算法。详细设计阶段的根本目标是确定应该具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计阶段的任务还不具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。因此,详细设计的结果基本上决定了最终的程序代码的质量。考虑程序代码的质量时必须注意,程序的“读者”有两个人。那就是计算机和人。在软件的生命周期中,设计测试方案、诊断程序错误、修改和改进程序等等都必须首先读懂程序。实际上对于长期使用的软件系统而言,人读程序的时间可能比写程序的时间还要长的多。因此,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。详细设计的目标不仅仅是逻辑上正确的实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。[2]详细设计常采用的描述方式有三类:图形描述、语言描述和表格描述。图形描述包括程序流程图和问题分析图;语言描述主要是程序设计语言;表格描述包括判定表等。这里主要运用了程序流程图来分析医院预约挂号系统。5.1人机界面设计5.1.1一般交互设计一般交互设计涉及信息显示、数据输入和系统整体控制。保持一致性。为客户交互界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式。提供信息的反馈。向用户及时提供视觉和听觉的信息反馈,以保证在用户和系统之间及时地建立双向通信。在本系统设计过程中,基本做到了信息的及时反馈,当用户操作完一步后系统会对数据库中的数据进行及时地显示。执行有较大影响的操作前提示用户确认。在设计过程中,如果用户要执行删除操作,以及对数据库的读写操作时,都会有窗体弹出询问继续操作或者予以提示。减少两次操作间需要记忆的内容。为了避免用户为下一步操作而记忆大量数据,所以在设计过程中在需要数据传递的窗体中设置全局变量,来传递数据。提高对话、移动和思考的效率。尽量减少用户击键的次数,在设计时考虑用户屏幕的布局以减少用户鼠标移动的距离,尽量避免用户在操作中发生疑问的情况。允许犯错误。允许用户的误操作尽量不对系统造成伤害。按功能对动作分类,并据此设计屏幕布局。屏幕布局尽量将软件所具有的所有功能在主页面展示,界面一目了然。5.1.2信息显示设计系统在显示用户所需要的信息时应该尽量完整、清晰和易于理解。这样才能满足用户的需求。使用不同的方式显示信息:用文字、图形、声音,按位置、移动和大小,使用颜色和省略等方式传达信息。只显示与当前工作有关的信息。在用户操作有关系统的特定功能的信息时,不必看到与之无关的数据、菜单和图形。使用便于用户迅速吸收数据的方式来表示数据。使用一致的标记、标准的缩写和可预知的颜色。显示的含义应该非常准确,用户无须参照其他信息源就能理解。产生有意义的错误信息。对于系统在运行过程中产生的错误尽量给用户返回一个容易理解的错误信息,以使用户保持对系统的信任,和系统的可用性。使用窗口分隔不同类型的信息。使用不同的窗口显示、保存不同类型的信息。高效率的使用显示屏。当使用多窗口时,应该有足够的空间使得每个窗口至少都能显示出一部分。5.1.3数据输入设计用户的大部分时间用在选择菜单命令、键入数据和向系统提供输入。在系统中,键盘是主要的输入介质,但是鼠标等设备的也是重要的输入手段,所以,对于他们的数据输入操作有如下约定:尽量减少用户的输入动作。为了方便用户的使用,鼠标应当尽量减少操作的幅度。保持显示信息和输入信息之间的一致性。对于用户来说,要保证其输入的数据在显示上与其他显示的视觉特征(例如:文字大小、颜色、位置等)要一致。允许用户自定义输入。用户可能希望定义自己专用的命令或略去某些类型的警告信息和动作确认,人机界面应该为用户提供这样做的机制。交互应该是灵活的,并且可调整成用户最喜欢的输入方式。用户类型与喜欢的输入方式有关,不同的用户喜欢不同的输入方式。使用当前动作语境中不适用的命令不起作用。这可使得用户不去做那些肯定会导致错误的动作。让用户控制交互流。用户应该能跳过不必要的动作,改变所需做的动作的顺序,以及在不退出程序的情况下从错误状态中恢复正常。消除冗余的输入。除非可能发生误解,否则不要要求用户指定输入数据的单位;尽可能提供默认值,绝对不要要求用户提供程序可以自动获得或计算出来的信息。对于不同类型的用户在登录到系统后,由于有不同的权限,所以在主界面中会有一些项目受到限制而无法使用,所以要使这些项目不发生作用,以保证系统安全。5.2程序设计过程程序过程设计主要是在借助过程设计工具的情况下,对程序的具体实现过程进行设计。程序的主要部分设计在这个环节完成。在这个任务说明书中我们采用盒图的形式来表达程序的具体的设计过程,我们的系统设计为C/S结构,所以是客户端登陆系统的形式,盒图没有箭头,所以不允许随意转移控制,坚持使用盒图可以使程序员养成用用结构化的方式来思考问题。5.2.1登陆界面设计在用户登录时,在输入用户名和密码及用户类型的前提下将其与数据库中的数据进行比对,若一致,则打开主窗体;若不一致提示错误,并要求重新输入。注册后保存用户信息,登陆界面的的程序盒图如图5.1所示。privatevoidbutton1_Click(objectsender,EventArgse){stringMyConnectionString="Server=localhost;Database=guahao;Uid=root;Pwd=123456;PersistSecurityInfo=True;Charset=utf8;";stringusername=textBox1.Text.Trim();stringpasswd=textBox2.Text.Trim();stringrol=comboBox1.Text.Trim();stringloginsql="SELECT*FROMloginWhereusername='"+username+"'andpassword='"+passwd+"'andissys='"+rol+"'";MySqlConnectionconnection=newMySqlConnection(MyConnectionString);connection.Open();MySqlCommandmycmd=newMySqlCommand(loginsql,connection);MySqlDataReadermyread=mycmd.ExecuteReader();try{if(myread.HasRows){if(myread.Read()){if(myread["username"].ToString()==textBox1.Text&&myread["password"].ToString()==textBox2.Text&&myread["issys"].ToString()=="管理员"){Form3f3;f3=newForm3();f3.Show();this.Hide();}elseif(myread["username"].ToString()==textBox1.Text&&myread["password"].ToString()==textBox2.Text&&myread["issys"].ToString()=="客户"){Form5f2;f2=newForm5();f2.Show();this.Hide();}elseif(myread["username"].ToString()==textBox1.Text&&myread["password"].ToString()==textBox2.Text&&myread["issys"].ToString()=="医生"){ user=username;Form4f2;f2=newForm4();f2.Show();this.Hide();}}}else{MessageBox.Show("Pleaseenterthecorrectusernameandpassword!!!");}}catch(Exceptionex){MessageBox.Show(string.Format("出错,出错原因{0}"),ex.Message);}finally{connection.Close();connection.Dispose();mycmd.Dispose();}}
连接数据库连接数据库否是用户名和密码输入提示输入否是账户是否存在提示错误显示提示框“登录成功”图5.1登陆界面程序盒图5.2.2程序流程设计程序流程图又称程序框图,是描述过程设计的方法。程序流程图中使用的符号如下:椭圆形表示开始或停止;长方形表示处理;菱形表示多分支;箭头表示控制流。1.管理员、专家和患者登录程序流程图管理员、专家和患者登录流程图用于描述管理员和专家登录系统的过程。用户进入主页后,在登录框输入用户名、密码和登录权限,若输入正确,则登录系统。若输入错误,则提示输入用户名和密码不对,请重新输入。管理员登录成功后则进入后台管理页面,专家登录成功后则进入后台专家查询页面,患者登陆成功后进入就诊预约界面。具体流程图如下图5.2所示。
开始开始进入用户登录界面输入用户名、登录密码和权限输入是否有误登录成功进入相应的界面结束是否 图5.2用户登陆程序流程图2.预约挂号程序流程图患者预约挂号程序流程用于描述患者预约挂号的过程。当患者进入主页后,点击预约,进入到预约挂号页面,患者在这里填写自己的信息以及选择要预约的专家,然后保存预约,预约挂号程序结束。患者预约挂号流程图如下图5.3所示。
是否预约成功预约信息是否预约成功预约信息取消预约结束否是开始进入预约界面填写预约信息提交开始提交填写预约信息进入预约界面提交填写预约信息进入预约界面图5.3预约挂号程序流程图专家查询预约信息流程图专家查询预约信息流程图可以让专家充分了解患者的基本信息以及以前的病历情况,可以合理的安排患者的就诊同时提高就诊效率。同时对前来就诊的患者进行就诊情况的填写,方便统计就诊量。具体流程图如下图5.4所示。
患者基本信息患者基本信息开始预约信息查询界面输入专家姓名是否完成治疗填写治疗情况结束是否图5.4专家查询预约信息流程图
6测试6.1测试描述测试是为了发现程序中的错误而执行的程序。好的测试方案是极有可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。为了能设计出有效的测试方案,软件工程师必须深入理解并正确运用软件测试的基本准则:(1)所有测试都应该能追溯到用户需求。从用户角度看,最严重的错误是导致程序不能满足用户需求的哪些错误。(2)应该预案在测试开始之前就制定出测试计划。实际上,一旦完成了需求模型就可以着手制定测试计划,在建立了设计模型之后就可以立即开始详细设计的测试方案。(3)把pareto原理应用到软件测试中。Pareto原理说明,测试发现的错误当中的80%很可能是由程序中20%的模块造成的。(4)完全测试是不可能的,测试需要终止。测试无法显示软件潜在的缺陷,“测试只能证明软件存在错误而不能证明软件没有错误”。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。在测试中不可能运行路径的每一种组合。然而,充分覆盖程序逻辑,并确保程序设计中使用的所有条件是有可能的。(5)应由独立的第三方来构造测试。第三方测试最大的特点在于它的专业性、独立性、客观性和公正性。对于软件开发商来说,经过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软件错误,帮助开发商提升软件的品质,而且可以对软件有一个客观、科学的评价,有助于开发商认清自己产品的定位。对于行业主管部门以及软件使用者来说,由于第三方测试机构独立公正的地位,可以对被测试的软件有一个客观公正的评价,帮助用户选择合适、优秀的软件产品。(6)充分注意测试中的群集现象。测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。不要在某个程序段中找到几个错误就误认为该程序段就没有错误而不再测试,相反应该对错误群集的程序段进行重点测试。6.1.1测试目的本测试计划主要用于控制整个医院挂号系统项目测试,本文档主要实现以下目标:(1)通过此测试计划能够控制整个测试项目合理、全面、准确、协调地完成。(2)为软件测试提供依据:(3)项目管理人员根据此计划,可以对项目进行宏观调控。(4)测试人员根据此计划,能够明确自己的权利、职责,准确地定位自己在项目的任务。(5)相关部门,可以根据此计划,对相关资源进行准备。6.1.2测试方案该系统主要运用的是黑盒测试,黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。只在程序借口进行测试,检查程序功能是否能按照正常的规定使用,程序是否能适当的接受输入数据并产生正确的输出信息,程序运行过程中是否保持外部信息的完整性。该测试项目将通过设计和执行接受测试、界面测试、功能测试和性能测试,对软件实现的功能,以及软件的性能、兼容性、安全性、实用性、可靠性、扩展性各个方面进行全面系统的测试。基于本系统的业务复杂性和开发周期短的特性,系统测试的重点将放在功能测试和性能测试上。通过测试提高软件的质量,为用户提供最好的服务,并合理地避免软件的风险和减少软件的成本。6.2测试计划6.2.1测试过程在项目开发确定好之后就开始进行测试计划的设计,伴随项目的结束而结束,整个过程是一个连贯的互相协调进行的。具体流程如图6.1所示。
成立项目组成立项目组制定测试计划测试方案设计测试方案评审测试执行项目新版本提交测试报告测试报告评审测试计划测试方案测试报告图6.1系统测试过程6.2.2进度安排及里程碑给出进行各项测试的日期和工作内容(如熟悉环境、培训、准备输入数据、实施测试等),具体安排如下表6.1所示。里程碑任务执行者开始日期结束日期指定测试计划张润第一周周一周二设计测试张润周三周五实施测试张润第二周周一周三对测试进行评估张润周三周四表6.1进度安排表6.2.3系统资源测试项目所需的系统资源如表6.2所示。表6.2系统资源信息表系统资源资源名称、类型数据库服务器MySql网络或子网服务器名称数据库名称chaoshi客户端测试PCWindows特殊配置需求测试存储库Bugs硬件环境IntelCore(TM)CPU2.0GHz;内存4GB6.2.4项目风险分析从质量风险维度来看,软件测试可以被定义为“对软件系统中潜在的各种风险进行评估的活动”。软件测试自身的风险性是公认的,测试的覆盖度不能做到100%。测试的这种风险定义一方面源于这层含义,另外软件测试的标准有时不清楚,所以常常强调软件测试人员应该站在客户的角度去进行测试,除了发现程序中的错误,还要发现需求定义的错误、设计上的缺陷,可以针对产品去报Bug。具体的风险分析如下表6.3所示。表6.3风险分析表风险类型风险综述在确保质量的前提下人力资源与项目周期比列失调,因此人员不到位将存在项目风险。增加人员在不同环境下运行存在风险使用统一的环境资源进行测试进度存在风险实际进度按照开发进度进行,当实际开发进度变更时将按照实际发进度及时调整测试进度客户需求发生变更常与客户进行沟通,达成一致协议人员变动风险通过培训等措施使变更后的人员了解统的业务流程,对系统深入了解,以求在最大限度内保证测试质量数据库测试中存在的风险因测试周期的限制,因此根据实际情况选择的测试策略存在的风险情况反应给客户,与客户商议达成一致版本部署风险版本在部署的时候,可能会由于数据库的导入错误等原因导致系统出错。因此在实际给客户部署时同样存在此种风险。6.3测试计划设计说明6.3.1测试用例选取原则系统:根据《系统需求说明书》对系统进行单元测试、集成测试、系统测试、验收测试、性能测试,并结合可能的用户测试。全面:要求测试用例能够覆盖每一个测试点的要点。合理:从可行性角度考虑,测试不可能全面覆盖,所以设置好等价类划分,测试的用例的选择避免重复测试、选择最好的测试方法将测试点合理覆盖。6.3.2测试内容及其选取策略本测试将通过用户界面测试、集成测试,系统测试、验收测试、性能测试、负载测试、强度测试、容量测试、安全性和访问控制测试、故障转移和恢复测试、配置测试、安装测试方面对系统进行测试。用户界面测试用于核实用户与软件之间的交互,测试用户界面的正确性和易用性。(1)用户界面及其易用性测试目的:确保用户界面通过测试对象的功能来为用户提供相应的访问或浏览功能;另外,UI测试还可以确保UI中的对象按照预期的方式运行,并符合公司或行业的标准。内容:对系统的功能页面进行各种可操作性测试。重点:容错检测,易用性。集成测试目的:检测系统是否达到需求,对业务流程及数据流的处理是否符合标准,检测系统对业务流处理是否存在逻辑不严谨及错误,检测需求是否存在不合理的标准和要求。内容:利用有效的和无效的数据来执行各个用例,用例流或功能,以核实在使用有效数据时得到的预期结果,在使用无效数据时显示相应的错误消息或警告消息,个业务规则都得到了正确的应用。重点:测试的单元模块之间的接口和调用是否正确,集成后是否实现了某个功能。系统测试目的:将软件整合为一体,看各个功能是否全部实现。内容:将整个软件系统看做一个整体进行测试,测试功能是否能满足需求,是否全部实现,后期主要包括看系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。重点:系统在配置好的环境中是否可以正常运行。压力测试目的:了解(被测应用程序)一般能够承受的压力,同时能够承受的用户访问量(容量),最多支持有多少用户同时访问某个功能。内容:①因为事先我们不知道将有多少用户访问是临界点,所以在测试过程中需要多次改变用户数来确定。②计划的设置,每x时间后加载10用户(根据总用户数设置),完全加载后持续运行不超过5分钟(根据需要设置)。③当运行中的用户数100%达到集合点时释放。重点:找到系统的临界值点。性能测试目的:核实性能是否满足用户需求,将测试对象的性能行为当做条件的一种函数来进行评测和微调。内容:负载测试、强度测试。①单个事务单个用户时候,在每个事务所语气时间范围内成功完成测试脚本,没有发生任何故障;多个事务多个用户时,可完成脚本没有发生故障的情况临界值。②使测试系统承担不同的工作量,得出系统持续正常运行的能力。③找出因资源不足或资源争用导致的错误。重点:确保性能指标满足用户需求。容量测试目的:所计划的测试全部执行,而且达到或超出指定的系统限制时没有出现任何软件故障。内容:在客户机长时间内执行相同的、最坏的业务时候系统维持的时间。重点:核实系统能否在连续或模拟了最多数量的客户机下正常运行。安全性和访问控制测试目的:保证只有访问权限的用户才能访问系统,核实用户以不同身份登录有不同的访问权限。内容:数据或业务功能访问的安全性,包括系统登录或远程访问。重点:确保治具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。故障转移和回复测试目的:检测系统可否在意外数据损失、数据完整性破坏、各种硬件、软件、网络故障中恢复数据。内容:①客户机断电、服务器断电看事务可否发生回滚。②网络服务器中断。重点:看数据库的恢复情况,以及系统在经历意外时间时候是否会发生崩溃现象。6.3.3功能测试测试的重点将主要放在功能测试上,按照三种角色:管理员、患者和专家,每种角色包括如下模块:1.管理员:管理员的具体功能模块和测试项如下表6.4所示。表6.4管理员功能测试表模块编号测试项登录1以管理员身份登录,登录成功则跳转到用户管理主界面2用户账号被屏蔽,无法登录成功3用户权限不符合,提示用户权限错误4输入用户名错误,提示用户不存在5输入密码错误,提示密码错误用户管理1可设置每个用户的开启或屏蔽权限,进行开启用户或删除用户2单击角色修改按钮,进入角色修改页面,点选角色,修改成功,跳转登录界面3对用户信息进行修改,输入已注册用户新信息,提交后跳转到登录界面4被管理员屏蔽或删除的用户,无法进行设置,提示重新激活账号2.患者:患者的具体功能模块和测试项如下表6.5所示。表6.5患者模块功能测试模块编号测试项注册1两次输入的密码不相同,提示两次输入的密码不相同,不能注册2非法字符注册,提示输入的用户名不合法登陆3用户权限不符合,提示用户权限错误4输入用户名错误,提示用户不存在5输入密码错误,提示密码错误专家预约1预约信息填写不完整,不能预约2必须输入要参加就诊的患者的真实身份证号3对专家进行查询,填写完预约信息提交后即可预约专家4预约成功后可以查询预约信息且可以取消预约,跳转到预约界面专家:专家的功能模块和测试项如下表6.6所示。表6.6专家查询模块功能测试模块编号测试项登录1以专家身份登录,登录成功则跳转到专家查询处理主界面2用户账号被屏蔽,无法登录成功3用户权限不符合,提示用户权限错误4输入用户名错误,提示用户不存在5输入密码错误,提示密码错误用户管理1输入专家的姓名查询预约该专家的患者的基本信息2某个患者就诊结束后填写就诊信息并提交,产生就诊清单3被管理员屏蔽或删除的用户,无法进行设置,提示重新激活账号6.4医院挂号系统覆盖率测试6.4.1逻辑覆盖率逻辑覆盖测试主要是针对程序的内部逻辑结构设计测试用例的技术,它通过运行测试用例达到逻辑覆盖的目的。包括以下3种类型的逻辑覆盖:(1)语句覆盖(2)判定覆盖(3)条件覆盖if(myread.HasRows){if(myread.Read()){if(myread["UserID"].ToString()==tbxUsr.Text&&myread["UserPassword"].ToString()==tbxPwr.Text&&myread["UserRight"].ToString()=="管理员"){user=username;Form8f3;f3=newForm8();f3.Show();}}}入口密码不空入口密码不空语句块2内容是否匹配出口NNYdcehifg用户名不空语句块1YNabY语句块3语句块3图6.2程序流程图6.4.2语句覆盖语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行的语句至少执行一次。根据概念,为了对上面的函数进行语句覆盖,只要设计一个测试用例就可以覆盖2个执行语句块中的语句。针对程序的判断语句,可在入口处设计测试用例。测试用例输入为:{登陆界面输入的登陆信息不为空}如果程序只运行上面的测试用例,虽然可以执行模块中的所有语句,但并不能检查判断逻辑是否有问题。例如在第一个判断中错误地把==写成!=,则上面的测试用例仍可以覆盖所有的执行语句。可以说语句覆盖率是最弱的逻辑覆盖准则。6.4.3判定覆盖判定覆盖(也称为分支覆盖),设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少各执行一次。根据上面的定义,对于上面的程序,只要设计两个测试用例则可以满足条件覆盖的要求。测试用例的输入为:{登陆界面输入的登陆信息不为空} {输入的用户名、密码和权限是否匹配}上面的两个测试用例虽能够满足判定覆盖的要求,但是有时候也不能对判定条件进行检查。6.4.4条件覆盖设计足够多的测试用例,运行所测程序,使程序中每个判断内的每个条件的各个可能取值至少执行一次。为了清楚的设计测试用例,对例子中的所有条件取值加以标记。例如:对于第一个判断:条件登录信息不为空,取真值为1,假值为0;对于第二个判断:条件登录信息是否匹配,取真值为1,假值为0;设计测试用例如下表6.7所示。表6.7测试用例用例编号输入数据期望输出实际输出GH-01Null用户名和密码不能为空用户名和密码不能空GH-02张润张润张润GH-031234561234561234566.5医院挂号系统黑盒测试已经知道了系统已经具有的功能,可以通过测试来验证是否每个功能都能正常使用,这种测试方法就是所谓的黑盒测试。对于软件测试而言,黑盒测试把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试根据规格说明设计测试用例,不涉及程序的内部结构,因此有两个显著的有点:黑盒测试与软件的具体实现无关,如果软件具体实现发生率变化,测试用例依然可以使用,不影响软件测试。设计黑盒测试用例可以和软件实现同时进行,因此可以压缩项目开发时间。6.5.1等价类划分测试等价类划分如下表6.8所示。表6.8等价类划分测试编制人张润审定人张润时间2015-12-25软件名称医院挂号系统版本Version1.0测试目的检查功能是否与需求相符用例编号GH依赖关系无用例描述输入注册用户名称以及权限,必填;输入数据管理员期望输出管理员实际输出管理员等价类测试用例如下表6.9所示。表6.9等价类测试用例用例编号输入数据期望输出实际输出GH-04张润张润张润GH-05空用户名或密码不能为空用户名不许为空GH-06管理员管理员管理员GH-07用户权限正确用户权限不正确6.5.2边界值法边界值测试用例如下表6.10所示。表6.10边界值法测试用例编制人张润审定人张润时间2015-12-22软件名称医院挂号系统版本Version1.0测试目的检查功能是否与需求相符用例编号GH依赖关系无用例描述输入用户名,其中字符长度在2到4之间【2,4】只能为汉字输入数据输入错误用户名期望输出输出提示用户不存在的警示框实际输出边界值测试用例如下表6.11所示。表6.11边界值测试用例用例编号输入数据期望输出实际输出GH-08王用户名不合法用户名不合法GH-09无忌无忌无忌GH-10张三丰张三丰张三丰GH-11上官欧阳上官欧阳上官欧阳GH-12西门大官人用户名不合法用户名不合法
7设计总结7.1心得体会通过这次软件工程课程设计的实践训练,进一步掌握了软件工程的方法和技术,拓宽了知识面,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。学习和实践了分析和设计软件系统的各种知识,包括面向对象的系统分析与设计,编码和测试方面的知识。同时掌握了开发工具Visual
studio2013,并将其运用与软件开发的全过程。进一步加强和提高软件工程文档的编写能力。而且本次课程设计让我懂得通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,对我们来说,实际能力的培养至关重要。通过课程设计,让我找出自身状况与实际需要的差距并在以后的学习期间及时补充相关知识。通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深的学习。本系统实现了最基本的功能模块,在功能上基本满足用户的需求,但是由于时间较紧,有些模块以及整个系统还有许多不完善的以及考虑不周全的地方。总之,此次课程设计最大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂区除草合同范例
- 劳务人员雇佣合同范例
- 哈尔滨校外培训合同范例
- 产业规划合同范例
- 培训专项合同范例
- 全媒体合作合同范例
- 修理厂合同模板模板
- 内墙涂料销售合同模板
- 写字楼出售合同范例
- 征收补偿协议书模板
- 2024年消防宣传月知识竞赛考试题库500题(含答案)
- 2024年典型事故案例警示教育手册15例
- 高一历史(中外历史纲要上册)期中测试卷及答案
- 20K607 防排烟及暖通防火设计审查与安装
- 一氧化碳中毒培训课件
- 教案(餐巾折花)
- 设计方案——喷漆烘干房
- Humpty儿童跌倒评估量表
- 金山江天寺规约
- 三相四线制功率计算原理及计算方法(讲得很好)
- 南邮综合设计报告(课程设计)proteus和Keil
评论
0/150
提交评论