C语言程序设计课程设计报告景点查询系统课程实验报告.docx_第1页
C语言程序设计课程设计报告景点查询系统课程实验报告.docx_第2页
C语言程序设计课程设计报告景点查询系统课程实验报告.docx_第3页
C语言程序设计课程设计报告景点查询系统课程实验报告.docx_第4页
C语言程序设计课程设计报告景点查询系统课程实验报告.docx_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告题目: 景点查询系统课程实验报告 课程名称: C语言程序设计 专业班级: 信息安全201302班 学 号: 姓 名: 指导教师: 报告日期: 2014年10月10日 计算机科学与技术学院任务书题目:景点查询系统一、主要内容建立景点信息系统,提供创建、编辑和综合查询等基本业务管理和服务。二、任务要求收集与阅读相关文献资料,确定系统目标与范围,分析系统需求,确定系统功能;设计系统方案,完成系统实现;提交课程设计报告。三、参考文献1曹计昌,卢萍,李开. C语言程序设计,北京:科学出版社,20132李开,卢萍,曹计昌. C语言实验与课程设计,北京:科学出版社,20113张引. C程序设计基础课程设计, 杭州: 浙江大学出版社,20074黄明,梁旭,万洪莉. C语言课程设计,北京: 电子工业出版社,2006四、基本要求只能使用C语言,源程序要有适当的注释,使程序容易阅读。要有用户界面。要求至少采用教材p215-p216类似的简易菜单;鼓励采用文本菜单界面甚至采用图形菜单界面。必须使用结构和十字交叉链表等数据结构。使用文件保存数据。鼓励自行增加新功能。设计测试的模拟数据,完成系统测试。撰写课程设计报告(要求正规双面打印,A4幅面)内容包括:题目、系统功能模块结构图、数据结构设计及用法说明、程序结构(画流程图)、各模块的功能、试验结果(包括输入数据和输出结果)、体会、参考文献和附录:程序清单。课程设计报告封面统一格式,标准格式详见本科生课程设计规范化要求。课程设计资料(包括课程设计报告、源程序、目标程序和测试用例等)刻录光盘。目 录1 引言1.1 课题背景和意义41.2 国内外研究现状41.3 主要研究工作52 系统需求分析与总体设计2.1 系统需求62.2 系统设计73 系统详细设计3.1 有关数据结构的定义93.2 主要算法设计124 系统实现与测试4.1 系统实现244.2 系统测试285 总结与展望5.1 全文总结505.2 工作展望50体会51参考文献52附录 源程序代码531 引言1.1 课题背景和意义在当今网络化、信息化、数字化的社会中, 我们已经步入了大数据时代。我们每日所面对的数据之大,是以前难以想象的。在海量的信息前,在获得了沟通的便利的同时,我们不得不面对信息搜索的难题。此时,一个能在海量数据中快速高效的得到我们所需要的信息的查询系统就变得尤为重要。而我们这次景点信息查询系统就是为这个做准备。1.2 国内外研究现状 近年来,旅游信息查询系统的建设越来越受到人们的关注。在设计其功能时主要注重其向旅游者提供全面的旅游信息查询功能。它所提供的旅游信息查询有助于旅游者策划和组织其旅游线路。国外旅游信息查询系统主要有三种:第一种是以国家为中心,一般是以国家旅游政部门为中心,在全国各地旅游问讯处、地方旅游行政部门、饭店和旅游公司、名胜风景区、驻外办事处设立网络节点,这种信息系统存储全国各地旅游设施等方面的信息,例如丹麦数据库信息系统(DANDATA)。第二种是以地区为中心的,主要是旅游发达地区建立的覆盖本地区旅游机构的信息系统。这种系统只存储本地区旅游机构和旅游设施等方面的信息。比较有代表性的是欧洲蒂洛尔(TYROL)信息系统。第三种是地区性的网络结构,既是由多个地区性的信息系统联网形成。荷兰率先建立了地区性的联网系统,并且英国和荷兰正在努力实现国家之间的系统联网。国内旅游信息查询系统的应用现状我国旅游信息查询系统的研究应用起于20世纪90年代初。当时,中国科学遥感应用研究所以海南为例,研制了一个面向游客的区域旅游信息查询系统(TORTIS)。这个系统实质上是提供旅行社、大饭店或有关部门使用的一个主要为旅游者服务的信息系统软件工具,提供功能有限,主要是有限查询和显示功能。它是用C语言和FOXBASE开发的。后来旅游信息系统开发多是在GIS的软件支持下或基于GIS概念下开发出来的,并且多以光盘的形式出现。主要有以下几种:1997年,由地质矿产部北京计算机中心所属的计算机公司研制的北京通光盘。主要内容包括“北京之窗”、“旅游休闲”、“公用信息”、“企事业大全”等几部分。主要是提供游客咨询所应用。1997年,中科院地理信息产业中心基于GIS技术自主开发了ActiveMap的构件库,研制了香港之窗的电子地图。它集地图、图片、视频、语言和文字为一体,给去香港的游客提供信息咨询服务。1998年,桂林市推出了中、英、日三种语言版本的桂林旅游光盘。该光盘主要用于旅游资源宣传之用。以科院地理信息产业为中心,在1999年相继推出了南宁之窗和澳门之窗电子地图光盘。它们所提供的服务和香港之窗大同小异。我国旅游信息查询系统的不足以上分析可知我国旅游信息查询系统的整体状况与国际先进水平相比存在显著差距,与旅游信息查询系统的国际化、市场化、信息化环境要求,也有很大的落差。我国旅游信息查询系统还没有走出技术驱动、信息技术厂商推动以及从技术和系统中寻找应用的格局。以上的各个系统都是由专业的信息技术公司设计的,忽视了实际旅游发展的需要。另外我国旅游信息查询系统的信息往往只停留在表层,缺乏对旅游信息资源有效的、深层次的分析和加工利用。因此难以高效的把信息资源化转化为效益和财富,在一定程度上制约了旅游业的发展。另外,我国旅游信息查询系统是单向传播的,没有很好的利用旅游信息查询系统这一平台,应加强旅游行政部门、旅游企业、旅游者之间的信息交流。 1.3 课程设计的主要研究工作 本次课程设计的主要研究工作是通过C语言在Code :Blocks的环境下开发设计出一个景点查询系统,完成人机交互界面的设计,数据保存,修改,删除,和查找等功能。并且系统能将输入的信息备份,保存,初步完成一个较完善的景点查询系统。 其次是通过此次课设,熟练的掌握链表,学习了解程序设计的方法及软件设计的知识。2 系统需求分析与总体设计2.1 系统需求分析用户需求大体上可以分为两个,城市,景区,景点信息的存储,修改和城市,景区,景点信息的查询。对于城市,景区,景点信息的存储,修改,系统需要实现的目标:1. 有较完善的人机交互界面,方便用户操作。2. 定义对应城市,景区,景点的结构变量,动态申请存储空间,建立循环链表。3. 建立城市-城市,景区-景区,景点-景点,城市-景区,景区-景点之间链表的连接,方便用户输入信息。4. 对输入的信息储存备份,以防止丢失。5. 能自主加载系统中的信息,若无,可让用户选择输入信息。 对于城市,景区,景点信息的查询:1.对于自己输入存储城市,景区,景点信息的用户,给定城市,景区,景点编号,方便用户随时由编号直接调出相应的信息。2.允许用户直接输入城市名来查询城市,景区,景点的信息。3.允许用户有景区所属的城市名来查找出景区的信息。4.允许用户由景区的价格大于X的方式查找所需景区,景点的信息。2.2 系统总体设计景区查询系统首先应该分为数据及文件维护保存,查询,人机交互界面和帮助四个大系统模块:1、 数据及文件维护保存需要允许用户初始化系统信息,自行创建城市,景区,景点信息,可将信息备份,保存。允许用户在不删除所以信息的条件下对部分数据修改,即添加信息,修改信息,删除信息,且支持分城市,景区,景点分开进行或按城市-景区-景点方式进行。2、 查询功能应支持用户对于自己输入存储城市,景区,景点信息的用户,给定城市,景区,景点编号,方便用户随时由编号直接调出相应的信息;允许用户直接输入城市名来查询城市,景区,景点的信息;允许用户有景区所属的城市名来查找出景区的信息;允许用户由景区的价格大于X的方式查找所需景区,景点的信息。3、 人机交互界面应有代码表加载.系统界面初始化.清屏.显示菜单栏.显.下拉菜单.显示弹出窗口.弹出窗口屏幕信息维护.关闭顶层弹出窗口.绘制边框.主菜单下拉菜单定位.显示状态栏.标记被选中的主菜单项.标记被选中的子菜单项.控制台输入处理.设置热区.系统功能模块的选择和运行.功能模块的调用功能的系统模块。4、 帮助界面应包含显示程序相关信息和开机问候语的系统模块。删除修改添加数据修改数据保存数据创建数据及文件维护保存帮助人机交互界面查询 景点查询系统3 系统详细设计3.1 有关数据结构的定义这部分要写的:(1)首先描述系统中要处理那些数据,如药房、药品、出入库记录等,每种类型的数据包括哪些数据项,每个数据项的数据类型,最后可用一个表格表示出来;(2) 描述这多种数据在系统中如何关联,如采用多重链表的方式组织起来,最后通过多重链表的图直观的说明。需要处理数据主要为城市,景区,景点三个方面信息。城市: char Name30; /*城市的名称*/ int Number; /*城市的编号*/ int Rate; /*景区级别*/ int Support_Hotline; /*监督电话*/ int Advisory_telephone; /*咨询电话*/景区: char City30; /*所属城市的名称*/ int Number; /*景区编号*/ char Name30; /*景区的名称*/ char Adress30; /*景区地址*/ int Price; /*门票价格*/ char Time30; /*开放时间*/ int Telephone; /*咨询电话*/*/景点: char Scenery30; /*所属景区的名称*/ int Number; /*景点号*/ char Name30; /*景点名*/ char Adress30; /*景点位置*/ char Time30; /*浏览时间*/ char Feature30; /*特点*/ City char Name30 int Number int Rateint Advisory_telephoneScenery char City30 int Numberchar Name30char Adress30int Pricechar Time30int TelephoneSpotchar Scenery30int Numberchar Name30char Adress30char Time30char Feature30 head 景区11 景区12 景区1m 城市1 城市2 城市n景点111 景点11p 图3景点查询系统的链表结构示意图 城市-城市,景区-景区,景点-景点链表是以对应的struct City *next;struct Scenery *next;struct Spot *next指向下一个,直至NULL。 城市-景区,景区-景点是以对应struct Scenery *head_b;struct Spot *head_h;指向下一个链表的起始。3.2 主要算法设计这部分主要描述系统中的模块实现的流程,可采用流程图的方式表示各模块的算法流程。1.人机交互界面: 人机交互界面键盘和鼠标输入信息的获取设定弹出窗口设定在屏幕指定位置输出信息设定控制台窗口和屏幕缓冲区设定系统文本菜单界面初始化在屏幕指定位置输出信息模块设定在屏幕上显示主菜单ShowMenu清除屏幕信息ClearScreen在指定主菜单上置选中标准TagMainMenu用putchar,printf,puts等输入信息设定窗口缓冲区大小系统文本菜单界面初始化显示系统主菜单清屏设定窗口颜色背景设定窗口标题设定窗口缓冲区大小获取标准输入设备句柄获取标准输出设备句柄设定光标位置输出字符串在字符串输出位置填充指定的文本属性用标准函数Putchar,printf,puts输出字符串信息弹出窗口设定:确定输出信息的屏幕大小和位置将新窗口弹出后所要覆盖的区域的字符信息读入到一块内存缓冲区在新窗口输入信息,模拟弹出效果弹出窗口内的操作完成后,把保存着内存缓冲区的字符信息写到原来所在的屏幕位置弹出窗口模块设定完成键盘和鼠标输入信息的获取设定输入处理菜单操作与系统功能函数的调用鼠标输入处理键盘输入处理从输入缓冲区读取一条输入信息键盘输入处理完成非Alt组合键再按其他对应相应处理若是,进一步判断与Alt组合的另一个键,并做出反应判定如果左或者右Alt键被按下提取ASCII码提取虚拟键码判定其输入类别是否为KEY_EVENT,且事件有键被按下所触发,若是,继续执行系统界面初始化鼠标输入处理模块完成用一个字符数组ScrAtt存放屏幕上所以字符单元的属性值执行弹出窗口信息出栈操作使主界面中五个主菜单项显示区域为热区,依次编号.5,热点类型为按钮型。编辑完成后,鼠标输入处理时,去鼠标所在字符单元的属性值。回复弹出窗口前屏幕字符单元的属性弹出窗口关闭时,用所保存的弹出窗口区域字符原先的属性值修改数组ScrAtt对应元素值根据字符单元的层数,热区编号和热区类型,结合鼠标事件类型作出相应处理。2. 十字链表创建模块:遍历指针指向同级的遍历指针next判定是否输入同级下一城市链表,若是,执行下一步输入信息申请动态存储区域判断是否创建城市链表,若是,进行下一步(以字符Y判断)创建对应结构(本系统包含城市-景区-景点3个).重复上述,直至不创建同级是,最后一个遍历指针指向NULL。对某一个链表,判断是否创建下一级链表(如城市对应景区),若是,执行下一步。头指针指向下一级别链表的头指针,其余重复上述,如不创建下一级链表,其头指针指向NULL。十字链表创建完成3. 十字链表修改和删除模块:若是删除,修改指向它的指针内容,上一级指向NULL,同级的遍历指针指向它遍历指针原来指的位置。十字链表修改和删除模块完成。释放动态存储空间。若是修改,直接更改链表内对应信息。假定搜索景点信息,制定3个循环,由城市-景区-景点顺序从外到内,寻找所要修改的链表。4. 十字链表查询模块:制定循环,由printf函数输出相应信息。十字链表查询模块完成。按照函数判断搜寻假定搜索景点信息,制定3个循环,由城市-景区-景点顺序从外到内,寻找所要修改的链表。 4 系统实现与测试4.1 系统实现数据类型:typedef struct City /*城市信息结构*/ char Name30; /*城市的名称*/ int Number; /*城市的编号*/ int Rate; /*景区级别*/ int Support_Hotline; /*监督电话*/ int Advisory_telephone; /*咨询电话*/ struct City *next; /*指向此城市信息结构的指针*/ struct Scenery *head_b; /*指向此城市的景区信息链的头指针*/ Co;typedef struct Scenery /*景区信息结构*/ char City30; /*所属城市的名称*/ int Number; /*景区编号*/ char Name30; /*景区的名称*/ char Adress30; /*景区地址*/ int Price; /*门票价格*/char Time30; /*开放时间*/int Telephone; /*咨询电话*/ struct Scenery *next; /*指向此景区信息结构的指针*/ struct Spot *head_h; /*指向此景区的景点信息链的头指针*/ Bu;typedef struct Spot /*景点信息结构*/ char Scenery30; /*所属景区的名称*/ int Number; /*景点号*/ char Name30; /*景点名*/ char Adress30; /*景点位置*/ char Time30; /*浏览时间*/ char Feature30; /*特点*/ int City; struct Spot *next; /*指向此景区信息结构的指针*/ Ho;1.人机交互界面调用函数:1.int LoadCode(char *filename, char *ppbuffer); /*代码表加载*/2.void InitInterface(void); /*系统界面初始化*/3.void ClearScreen(void); /*清屏*/4.void ShowMenu(void); /*显示菜单栏*/5.void PopMenu(int num); /*显示下拉菜单*/6.void PopPrompt(int num); /*显示弹出窗口*/7.void PopUp(SMALL_RECT *, WORD, LABEL_BUNDLE *, HOT_AREA *); /*弹出窗口屏幕信息维护*/8.void PopOff(void); /*关闭顶层弹出窗口*/9.void DrawBox(SMALL_RECT *parea); /*绘制边框*/10.void LocSubMenu(int num, SMALL_RECT *parea); /*主菜单下拉菜单定位*/11.void ShowState(void); /*显示状态栏*/12.void TagMainMenu(int num); /*标记被选中的主菜单项*/13.void TagSubMenu(int num); /*标记被选中的子菜单项*/14.int DealConInput(HOT_AREA *phot_area, int *pihot_num); /*控制台输入处理*/15.void SetHotPoint(HOT_AREA *phot_area, int hot_num); /*设置热区*/16.void RunSys(Co *pphd); /*系统功能模块的选择和运行*/17.BOOL ExeFunction(int main_menu_num, int sub_menu_num); /*功能模块的调用*/2. 文件调用函数:1.void Creat_List(Co *head) /*创建新的链表*/2.void load(Co *head) /*将保存的文件中的数据加载到内存中的链表上*/3.void save(Co *head) /*将链表中的数据保存到文件中*/3. 数据维护调用函数:1.void add1(Co *head) /*添加城市信息*/2.void add2(Co *head) /*添加景区信息*/3.void add3(Co *head) /*添加景点信息*/4.void delete1(Co *head) /*删除城市信息*/5.void delete2(Co *head) /*删除景区信息*/6.void delete3(Co *head) /*删除景点信息*/7.void modify1(Co *head) /*修改城市信息*/8.void modify2(Co *head) /*修改景区信息*/9.void modify3(Co *head) /*修改景点信息*/4. 查询调用函数:1. void query1(Co *head) /*按名字搜索城市*/ 2.void query2(Co *head) /*查询景区级别大于X的城市*/3.void query3(Co *head) /*按编号搜索城市*/4.void query4(Co *head) /*按城市搜索景区*/5.void query5(Co *head) /*按编号搜索景点*/6.void query6(Co *head) /*查询景区价格大于X的景区*/4.2 系统测试 首先叙述一下常用的软件测试方法,在选择几个主要的功能模块(自行掌握数量,关键要体现你的水平的一些模块)描述测试过程,(1)先明确模块的功能、设计目标等(2)分析、叙述如何选取测试数据(3)运行结果(这时可用截图)(4)分析运行结果、确认程序满足该模块的设计目标。常见软件测试方法:随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。以下是一些常用的软件测试方法:测试_Beta测试测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT)。测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。测试_Alpha测试测试,英文是Alpha testing。又称Alpha测试.Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。可移植性测试可移植性测试,英文是Portability testing。又称兼容性测试。可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。用户界面测试-UI测试用户界面测试,英文是User interface testing。又称UI测试。用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对像的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。用户界面测试用户分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息 (Menu 和Help content)等方面的测试。比如,测试Microsoft Excel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。冒烟测试冒烟测试,英文是Smoke testing。冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形像地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。冒烟测试的对像是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。随机测试随机测试,英文是Adhoc testing。随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(Test Case)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试 (Regressive testing)一起进行。本地化测试本地化测试,英文是Localization testing。本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。本地化测试的对像是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。本地化能力测试本地化能力测试,英文是Localizability testing。本地化能力测试是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力侧是通常在软件的伪本地化版本上进行。本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了固定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。国际化测试国际化测试,英文是International testing。又称国际化支持测试。国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。国际化支持测试是指验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的 Windows XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的 Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。安装测试安装测试,英文是Installing testing。安装测试是确保软件在正常情况和异常情况下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。异常情况包括磁盘空间不足、缺少目录创建权限等场景。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。白盒测试-结构测试-逻辑驱动测试白盒测试,英文是White Box Testing。又称结构测试或者逻辑驱动测试。白盒测试是把测试对像看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒测试常用工具有:Jtest、VcSmith、Jcontract、C+ Test、CodeWizard、logiscope。黑盒测试-功能测试-数据驱动测试黑盒测试,英文是Black Box Testing。又称功能测试或者数据驱动测试。黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。黑盒测试常用工具有:AutoRunner、winrunner、loadrunner。自动化测试自动化测试,英文是Automated Testing。使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。通过录制测试脚本,然后执行这个测试脚本来实现测试过程的自动化。国内领先的自动化测试服务提供商是泽众软件。自动化测试工具有AutoRunner和TAR等。回归测试回归测试,英文是Regression testing。回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化测试。验收测试验收测试,英文是Acceptance testing。验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。验收测试一般有三种策略:正式验收、非正式验收或Alpha 测试、Beta 测试。动态测试动态测试,英文是Moment Testing。动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤:1、单元测试2、集成测试3、系统测试4、验收测试5、回归测试探索测试探索测试,英文是Exploratory Testing。探索测试是指通常用于没有产品说明书的测试,这需要把软件当作产品说明书来看待,分步骤逐项探索软件特性,记录软件执行情况,详细描述功能,综合利用静态和动态技术来进行测试。探索测试人员只靠智能、洞察力和经验来对bug的位置进行判断,所以探索测试又被称为自由形式测试。单元测试单元测试,英文是Unit Testing。单元测试是最微小规模的测试;以测试某个功能或代码块。典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。这个工作不容易做好,除非应用系统有一个设计很好的体系结构; 还可能需要开发测试驱动器模块或测试套具。集成测试集成测试,英文是Integration Testing。集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。一般集成测试以前,单元测试需要完成。集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元,并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别系统测试系统测试,英文是System Testing。系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统测试的对像不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。端到端测试端到端测试,英文是End to End Testing。端到端测试类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。端到端架构测试包含所有访问点的功能测试及性能测试。端到端架构测试实质上是一种灰盒测试,一种集合了白盒测试和黑盒测试的优点的测试方法。健全测试健全测试,英文是Sanity testing。健全测试是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试能力。例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,目前不具备进一步测试的条件。衰竭测试衰竭测试,英文是Failure Testing。衰竭测试是指软件或环境的修复或更正后的“再测试”。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。接受测试接受测试,英文是Accept Testing。接受测试是基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。一般从功能、用户界面、性能、业务关联性进行测试。负载测试负载测试,英文是Load testing。负载测试是测试一个应用在重负荷下的表现。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对像承担不同的工作量,以评测和评估测试对像在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。强迫测试强迫测试,英文是Force Testing。强迫测试是在交替进行负荷和性能测试时常用的术语。也用于描述像在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。压力测试压力测试,英文是Stress Testing。和负载测试差不多。压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测试。性能测试性能测试,英文是Performance Testing。性能测试是在交替进行负荷和强迫测试时常用的术语。理想的“性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。性能测试一般包括负载测试和压力测试。通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。可用性测试可用性测试,英文是Practical Usability Testing。可用性测试是对“用户友好性”的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查、用户对话的录像和其他一些技术都可使用。程序员和测试员通常都不宜作可用性测试员。卸载测试卸载测试,英文是Uninstall Testing。卸载测试是对软件的全部、部分或升级卸载处理过程的测试。主要是测试软件能否卸载,卸载是否干净,对系统有无更改,在系统中的残留与后来的生成文件如何处理等。还有原来更改的系统值是否修改回去恢复测试恢复测试,英文是Recovery testing。恢复测试是测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩

温馨提示

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

评论

0/150

提交评论