
集成测试
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
目录
简介
方法
实施
完成标准
目的
步骤
常用方案选型
集成测试计划书模版展开
编辑本段
简介
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有
集成测试
进程。
集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。
集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。
集成测试是单元测试的逻辑扩展。在现实方案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报。
所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中
集成测试
,几乎不存在软件单元组装过程中不出任何问题的情况。从图1可以看出,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。
集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性。
编辑本段
方法
集成测试应该考虑以下问题:
1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
2、各个子功能组合起来,能否达到预期要求的父功能;
3、一个模块的功能是否会对另一个模块的功能产生不利的影响;
4、全局数据结构是否有问题;
5、单个模块的误差积累起来,是否会放大,从而达到不
集成测试
可接受的程度。
因此,单元测试后,有必要进行集成测试,发现并排除在模块连接中可能发生的上述问题,最终构成要求的软件子系统或系统。对子系统,集成测试也叫部件测试。
任何合理地组织集成测试,即选择什么方式把模块组装起来形成一个可运行的系统,直接影响到模块测试用例的形式、所用测试工具的类型、模块编号和测试的次序、生成测试用例和调试的费用。通常,有两种不同的组装方式:一次性组装方式和增值式组装方式。
编辑本段
实施
集成测试是一种正规测试过程,必须精心计划,并与单元测试的完成时间协调起来。在制定测试计划时,应考虑如下因素:
1、是采用何种系统组装方法来进行组装测试;
2、组装测试过程中连接各个模块的顺序;
3、模块代码编制和测试进度是否与组装测试的顺序一致
4、测试过程中是否需要专门的硬件设备;
解决了上述问题之后,就可以列出各个模块的编制、测
集成测试
试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期、集成测试全部完成的日期、以及需要的测试用例和所期望的测试结果。
在缺少软件测试所需要的硬件设备时,应检查该硬件的交付日期是否与集成测试计划一致。例如,若测试需要数字化仪和绘图仪,则相应测试应安排在这些设备能够投入使用之时,并需要为硬件的安装和交付使用保留一段时间,以留下时间余量。此外,在测试计划中需要考虑测试所需软件(驱动模块、桩模块、测试用例生成程序等)的准备情况。
编辑本段
完成标准
怎样判定集成测试过程完成了, 可按以下几个方面检查:
1、成功地执行了测试计划中规定的所有集成测试;
2、修正了所发现的错误;
3、测试结果通过了专门小组的评审。
集成测试应由专门的测试小组来进行,测试小组由有经验的系统设计人员和程序员组成。整个测试活动要在评审人员出席的情况下进行。
在完成预定的组装测试工作之后,测试小组应负责对测试结果进行整理、分析,形成测试报告。测试报告中要记录实际的测试结果、在测试中发现的问题、解决这些问题的方法以及解决之后再次测试的结果。此外还应提出目前不能解决、还需要管理人员和开发人员注意的一些问题,提供测试评审和最终决策,以提出处理意见。
编辑本段
目的
是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试。
编辑本段
步骤
集成测试过程
集成测试过程
单元测试工作内容及其流程
单元测试工作内容及其流程
集成测试需求获取
集成测试需求所确定的是对某一集成工作版本的测
集成测试
试的内容,即测试的具体对象。集成测试需求主要来源于设计模型(Design Model)和集成构件计划(Integration Build Plan)。集成测试着重于集成版本的外部接口的行为。因此,测试需求须具有可观测、可测评性。
1. 集成工作版本应分析其类协作与消息序列,从而找出该工作版本的外部接口。
2. 由集成工作版本的外部接口确定集成测试用例。
3. 测试用例应覆盖工作版本每一外部接口的所有消息流序列。
注意:一个外部接口和测试用例的关系是多对多,部分集成工作版本的测试需求可映射到系统测试需求,因此对这些集成测试用例可采用重用系统测试用例技术。
集成测试工作机制
软件集成测试工作由产品评测部担任。需要项目组相关角色配合完成。如图示:
软件评测部
软件评测部:
软件项目组:
软件项目组
集成测试工作内容及其流程工作流程:
集成测试工作内容及其流程工作流程
集成测试产生的工件清单
1、 软件集成测试计划
2、 集成测试用例
3、 测试过程
4、 测试脚本
5、 测试日志
6、 测试评估摘要
编辑本段
常用方案选型
综述
集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一些经实践检验和一些证实有效的集成测试方案。
自顶向下集成测试
自顶向下集成(Top-Down Integration)方式是一个递增的组装软件结构的方法。从主控模块(主程序)开始沿控制层向下移动,把模块一一组合起来。分两种方法:
第一:先深度:按照结构,用一条主控制路径将所有模块组合起来;
第二:先宽度:逐层组合所有下属模块,在每一层水平地
集成测试
沿着移动。
组装过程分以下五个步骤:
步骤一:用主控模块作为测试驱动程序,其直接下属模块用承接模块来代替;
步骤二:根据所选择的集成测试法(先深度或先宽度),每次用实际模块代替下属的承接模块
步骤三:在组合每个实际模块时都要进行测试;
步骤四:完成一组测试后再用一个实际模块代替另一个承接模块;
步骤五:可以进行回归测试(即重新再做所有的或者部分已做过的测试),以保证不引入新的错误。
自底向上集成测试
自底向上的集成(Bottom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地继承、吸收了这种集成方式的思想。自底向上集成方式从程序模块结构中最底层的模块开始组装和测试。因为模块是自底向上进行组装的,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)事前已经完成组装并经过测试,所以不再需要编制桩模块(一种能模拟真实模块,给待测模块提供调用接口或数据的测试用软件模块)。自底向上集成测试的步骤大致如下:
步骤一: 按照概要设计规格说明,明确有哪些被测模块。在熟悉被测模块性质的基础上对被测模块进行分层,在同一层次上的测试可以并行进行,然后排出测试活动的先后关系,制定测试进度计划。图2给出了自底向上的集成测试过程中各测试活动的拓扑关系。利用图论的相关知识,可以排出各活动之间的时间序列关系,处于同一层次的测试活动可以同时进行,而不会相互影响。
步骤二: 在步骤一的基础上,按时间线序关系,将软件单元集成为模块,并测试在集成过程中出现的问题。这里,可能需要测试人员开发一些驱动模块来驱动集成活动中形成的被测模块。对于比较大的模块,可以先将其中的某几个软件单元集成为子模块,然后再集成为一个较大的模块。
步骤三: 将各软件模块集成为子系统(或分系统)。检测各自子系统是否能正常工作。同样,可能需要测试人员开发少量的驱动模块来驱动被测子系统。
步骤四: 将各子系统集成为最终用户系统,测试是否存在各分系统能否在最终用户系统中正常工作。
方案点评: 自底向上的集成测试方案是工程实践中最常用的测试方法。相关技术也较为成熟。它的优点很明显: 管理方便、测试人员能较好地锁定软件故障所在位置。但它对于某些开发模式不适用,如使用XP开发方法,它会要求测试人员在全部软件单元实现之前完成核心软件部件的集成测试。尽管如此,自底向上的集成测试方法仍不失为一个可供参考的集成测试方案。
核心系统先行集成测试
核心系统先行集成测试法的思想是先对核心软件部件进行集成测试,在测试通过的基础上再按各外围软件部件的重要程度逐个集成到核心系统中。每次加入一个外围软件部件都产生一个产品基线,直至最后形成稳定的软件产品。核心系统先行集成测试法对应的集成过程是一个逐渐趋于闭合的螺旋形曲线,代表产品逐步定型的过程。其步骤如下:
步骤一: 对核心系统中的每个模块进行单独的、充分的测试,必要时使用驱动模块和桩模块
步骤二: 对于核心系统中的所有模块一次性集合到被测系统中,解决集成中出现的各类问题。在核心系统规模相对较大的情况下,也可以按照自底向上的步骤,集成核心系统的各组成模块。
步骤三: 按照各外围软件部件的重要程度以及模块间的相互制约关系,拟定外围软件部件集成到核心系统中的顺序方案。方案经评审以后,即可进行外围软件部件的集成。
步骤四: 在外围软件部件添加到核心系统以前,外围软件部件应先完成内部的模块级集成测试。
步骤五: 按顺序不断加入外围软件部件,排除外围软件部件集成中出现的问题,形成最终的用户系统。
方案点评: 该集成测试方法对于快速软件开发很有效果,适合较复杂系统的集成测试,能保证一些重要的功能和服务的实现。缺点是采用此法的系统一般应能明确区分核心软件部件和外围软件部件,核心软件部件应具有较高的耦合度,外围软件部件内部也应具有较高的耦合度,但各外围软件部件之间应具有较低的耦合度。
高频集成测试
高频集成测试是指同步于软件开发过程,每隔一段时间对开发团队的现有代码进行一次集成测试。如某些自动化集成测试工具能实现每日深夜对开发团队的现有代码进行一次集成测试,然后将测试结果发到各开发人员的电子邮箱中。该集成测试方法频繁地将新代码加入到一个已经稳定的基线中,以免集成故障难以发现,同时控制可能出现的基线偏差。使用高频集成测试需要具备一定的条件: 可以持续获得一个稳定的增量,并且该增量内部已被验证没有问题大部分有意义的功能增加可以在一个相对稳定的时间间隔(如每个工作日)内获得测试包和代码的开发工作必须是并行进行的,并且需要版本控制工具来保证始终维护的是测试脚本和代码的最新版本必须借助于使用自动化工具来完成。高频集成一个显著的特点就是集成次数频繁,显然,人工的方法是不胜任的。
高频集成测试一般采用如下步骤来完成:
步骤一: 选择集成测试自动化工具。如很多Java项目采用Junit+Ant方案来实现集成测试的自动化,也有一些商业集成测试工具可供选择。
步骤二: 设置版本控制工具,以确保集成测试自动化工具所获得的版本是最新版本。如使用CVS进行版本控制。
步骤三: 测试人员和开发人员负责编写对应程序代码的测试脚本。
步骤四: 设置自动化集成测试工具,每隔一段时间对配置管理库的新添加的代码进行自动化的集成测试,并将测试报告汇报给开发人员和测试人员。
步骤五: 测试人员监督代码开发人员及时关闭不合格项。
按照步骤三至步骤五不断循环,直至形成最终软件产品。
方案点评: 该测试方案能在开发过程中及时发现代码错误,能直观地看到开发团队的有效工程进度。在此方案中,开发维护源代码与开发维护软件测试包被赋予了同等的重要性,这对有效防止错误、及时纠正错误都很有帮助。该方案的缺点在于测试包有时候可能不能暴露深层次的编码错误和图形界面错误。
以上我们介绍了几种常见的集成测试方案,一般来讲,在现代复杂软件项目集成测试过程中,通常采用核心系统先行集成测试和高频集成测试相结合的方式进行,自底向上的集成测试方案在采用传统瀑布式开发模式的软件项目集成过程中较为常见。读者应该结合项目的实际工程环境及各测试方案适用的范围进行合理的选型。
编辑本段
集成测试计划书模版
引言
1.1编写目的
本文是描述****集成测试的大纲文章,主要描述如何进行集成测试活动?如何控制集成测试活动?集成测试活动的流程以及集成测试活动的工作安排。本文主要的读者对象是项目负责人,集成部门经理,集成测试设计师。
1.2背景
项目名称:***集成测试
项目相关对象:******************
1.3定义
**********:********************
1.4参考资料
《*********》
测试项目
本测试主要为***系统的集成测试,目前***的版本为2.0,测试是***的最终集成测试,是建立在开发组程序员开发完毕自己的测试以及开发组测试的基础之上
被测特性
3.1 *** 作性测试
主要测试 *** 作是否正确,有无误差?分为两部分:
3.1.1返回测试
由主界面逐级进入最终界面,按EXIT键逐级返回,检查返回时候屏幕聚焦是否正确
比如:
1. 进入“系统设置”
2. 进入“频道搜索”
3. 进入“自动频道搜索”
4. 按EXIT键返回,检查当前聚焦是否为“频道搜索”
5. 按EXIT键返回,检查当前聚焦是否为“系统设置”
3.1.2进入测试
由主界面逐级进入最终界面,按MENU键返回主界面,再次进入,检查是否聚焦正确
比如:
1. 进入“系统设置”
2. 进入“频道搜索”
3. 进入“自动频道搜索”
4. 按MENU键返回主界面
5. 当前聚焦是否为“系统设置”
6. 进入“系统设置”,当前聚焦是否为“频道搜索”
3.2功能测试
测试机顶盒中每个应用的功能是否正确
3.3性能测试
3.3.1疲劳性测试
测试连续开机1个月不关机器,每3天去运行一次应用。看系统的稳定性
3.3.2大容量数据测试
前段***数据库表中含有大量数据,测试***功能
不被测特性
测试方法
1. 书写测试计划
2. 审核测试计划,未通过返回第一步
3. 书写测试用例;
4. 审核测试用例,未通过返回第三步
5. 测试人员按照测试用例逐项进行测试活动,并且将测试结果填写在测试报告上;(测试报告必须覆盖所有测试用例)
6. 测试过程中发现bug,将bug填写在bugzilla上发给集成部经理;(bug状态NEW)
7. 集成部经理接到bugzilla发过来的bug
7.1 对于明显的并且可以立刻解决的bug,将bug发给开发人员;(bug状态ASSIGNED)
7.2 对于不是bug的提交,集成部经理通知测试设计人员和测试人员,对相应文档进行修改(bug状态RESOLVED,决定设置为INVALID)
7.3 对于目前无法修改的,将这个bug放到下一轮次进行修改;(bug状态RESOLVED,决定设置为REMIND)
8. 开发人员接到发过来的bug立刻修改(bug状态RESOLVED,决定设置为FIXED)
9. 测试人员接到bugzilla发过来的错误更改信息,应该逐项复测,填写新的测试报告(测试报告必须覆盖上一次中所有REOPENED的测试用例);
10. 如果复测有问题返回第六步(bug状态REOPENED)
11. 否则关闭这项BUG(bug状态CLOSED)
12. 本轮测试中测试用例中有95%一次性通过测试,结束测试任务;
13. 本轮测试中发现的错误有98%经过修改并且通过再次测试(即bug状态CLOSED),返回第五步进行新的一轮测试;
14. 测试任务结束后书写测试总结报告;
15. 正规测试结束进入非正规测试,首先是ALPHA测试,请公司里其他非技术人员以用户角色使用系统。发现bug通知测试人员,测试人员以正规流程处理bug事件;
16. 然后是BETA测试,请用户代表进行测试。发现bug通知测试人员,测试人员以正规流程处理bug事件。
几点说明:
O 测试回归计划为三次;
O 测试用例应该写得比较详尽,步骤一定要标明清楚(应该包括:编号,测试描述,前置条件,测试步骤以及测试希望结果);
O 对于测试人员觉得应该进行的测试项目,测试人员应该报告测试设计人员,完善和健全测试用例;
O 测试报告与测试用例分开,测试报告标明测试用例序号以及是否通过Y/N;
O 对于集成部经理无法决定的上交项目负责人决定;
O 性能测试中的疲劳性测试可以结合在功能测试部分,即测试期间不关闭机器;
O 性能测试中的大容量数据测试放在测试后部分轮次(第二步,只需要进行一次)
测试通过标准
测试结果与测试用例中期望的结果一致,测试通过,否则标明测试未通过。
6.1测试结果审批过程
6.1.1测试回归申请结束
测试人员提出申请这轮测试结束,提交集成部经理;
集成部经理召集本组人员开会讨论;
讨论通过,进行下一轮测试,并且部署下一轮测试的注意事项,流程等内容;
如果发现这轮测试目前还存在问题没有解决,延期下一轮测试时间,讨论下一步工作应该如何进行。
6.1.2测试结果申请结束
测试人员提出申请测试结束,提交集成部经理;
集成部经理召集本组人员开会讨论;
1. 讨论通过,结束测试任务;
2. 如果发现目前测试还存在问题没有解决,延期测试结束时间,并且讨论下一步工作应该如何进行。
测试挂起和恢复条件
7.1挂起条件
O 进入第一轮测试,测试人员大体了解一下产品情况,如果在一小时之内发现5个以上(含5个) *** 作性错误,或者3个以上(含3个)功能性错误,退回测试组测试;
O 遇到有项目优先级更高的集成测试任务;
O 遇到有项目优先级更高的集成任务;
O 在测试复测过程中发现产品无法运行下去;
O 人员,设备不足。
7.2恢复条件
O 符合进入集成测试条件(一小时之内发现5个以下(不含5个) *** 作性错误,或者3个以下(不含3个)功能性错误);
O 项目优先级更高的集成测试任务暂告完成;
O 项目优先级更高的集成任务暂告完成;
O 复测过程中产品可以运行下去;
O 人员,设备到位。
应提供的测试文件
O 测试计划书
O 测试用例
O 测试报告
O 测试总结
测试任务
O 制定审核测试计划
O 制定和审核测试用例
O 进行测试活动
O 书写测试报告
测试环境需求
10.1硬件需求
***********
10.2软件需求
************
10.3测试工具
*************
10.4测试需要的条件
**************
10.4.1 需要的文档
O 用户手册
O 应用手册
O 安装说明
10.4.2需要完成的任务
O 程序员本人测试
O 测试组完成测试
角色和职责
O 集成(测试)经理:控制并完成测试任务和测试过程,决定测试人员提交上来的bug是否需要修改;
O 测试设计人员:书写集成测试用例;
O 测试人员:按照测试用例进行测试活动;
O 开发人员:MHP程序bug修改;
O 用户代表:进行BETA测试。
人员和培训
O 集成测试经理有责任对测试相关人员进行测试流程,规章制度培训;
O 测试设计人员有责任对测试人员进行测试 *** 作培训
测试进度
测试工作 进度(人*工作日)
测试计划 8
测试设计 60
测试执行总共进度 30
每次回归进度 10
测试报告 2
风险及应急计划
设备不到位:加紧设备购买
人员不到位
人员请假:请假人员回来加班或赶紧测试进度/申请调配新的人员;
人员离职:调配新的人员;
人员调配到其他部门或项目:调配新的人员;
开发人员开发频频出错:通知开发部门,商量策略;
其他原因的测试工作频频被挂起或者挂起后迟迟恢复不了:加班或延期
审批
集成部经理 技术部经理
姓名: 姓名:
日期: 日期: 【作者介绍】 jerry
97年毕业于北京某高校计算级专业,先后在软件公司和网络公司从事软件开发,系统分析和设计工作。2001年涉及软件质量保证,先后担任测试工程师,测试部经理,副经理。精通软件工程和测试流程,精通RUP, CMM, ISO, 6SIGMA软件质量保证工作。
比如:数据冗余,功能和性能方面存在的问题已经严重影响应用软件的使用。软件测试人员往往重视对软件功能和编码的测试,而忽略对软件性能,特别是数据库访问并发测试。因为,他们固有的思想中认为数据库设计存在问题对系统性能影响不大,或从根本上忽略了数据库在软件开发中的地位,直到出现了问题,才想到对数据库的测试,但往往也是仅仅通过对编码的测试工作中捎带对数据库进行一定的测试,这远远是不够的。目前,中铁网上订票系统在大用户同时在线订票中系统频频瘫痪,就是最好的佐证。 所以,在应用软件的测试工作中,应该将数据库作为一个独立的部分进行充分的测试,这样才可以得到应用软件所需要的性能优化的数据库。那么,应该对哪些内容进行测试,如何进行测试呢? 2、数据库设计的测试 数据库是应用的基础,其性能直接影响应用软件的性能。为了使数据库具有较好的性能,需要对数据库中的表进行规范化设计。规范化的范式可分为第一范式、第二范式、第三范式、BCNF范式、第四范式和第五范式。一般来说,逻辑数据库设计应满足第三范式的要求,这是因为满足第三范式的表结构容易维护,且基本满足实际应用的要求。因此,实际应用中一般都按照第三范式的标准进行规范化。但是,规范化也有缺点:由于将一个表拆分成为多个表,在查询时需要多表连接,降低了查询速度。故数据库设计的测试包括前期需求分析产生数据库逻辑模型和后期业务系统开发中的测试两部分(这里指的是后者),我在这里称为实体测试。 数据库是由若干的实体组成的,包括(表,视图,存储过程等),数据库最基本的测试就是实体测试,通过对这些实体的测试,可以发现数据库实体设计得是否充分,是否有遗漏,每个实体的内容是否全面,扩展性如何。 实体测试,可以用来发现应用软件在功能上存在的不足,也可以发现数据冗余的问题。经过测试,测试人员对有异议的问题要及时和数据库的设计人员进行沟通解决。 3、数据一致性测试 在进行实体测试后,应进一步检查下面的内容以保障数据的一致性: 3.1 表的主键测试根据应用系统的实际需求,对每个表的主键进行测试,验证是否存在记录不唯一的情况,如果有,则要重新设置主键,使表中记录唯一。 3.2 表之间主外键关系的测试数据库中主外键字段在名称,数据类型,字段长度上的一致性测试。 3.3 级联表,删除主表数据后,相应从报表数据应同时删除的问题例如学生表和学生成绩表,学生数据已经删除,成绩表中相应学生的成绩记录应同时删除。 3.4 存储过程和触发器的测试存储过程可以人工执行,但触发器不能人工处理,所以在对存储过程和触发器执行的过程中针对SQL SERVER2005及以上版本可以使用Microsoft SQL Server Profiler性能测试工具进行测试。 Microsoft SQL Server Profiler 是 SQL 跟踪的图形用户界面,用于监视数据库引擎或 Analysis Services 的实例。测试人员可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析。例如:可以对生产环境进行监视,了解哪些存储过程由于执行速度太慢影响了性能。 4、数据库的容量测试 随着数据库系统的使用,数据量在飞速增长,如何在使用前对数据容量的增长情况进行初步估算,为最终用户提供参考,这在数据库使用和维护过程中,是非常重要的。可以通过对数据库设计中基本表的数据大小,和每天数据表的数据产生量进行初步估算。 记录数据量=各个字段所占字节数的总和表的数据量=记录数据量*记录数数据库大小=各表数据量的总和 当然,数据库的大小不仅仅只是基本表的大小,还有系统表,视图,存储过程等其它实体所占的容量,但最基本的数据是表的数据。另外,数据库的容量还包括数据库日志文件的容量,一般应预留数据库文件的2倍左右。 5、数据库的性能测试 应用软件除了功能外,很重要的一部分就是软件的性能,而对于数据库系统,数据库性能的好坏会直接影响应用软件的性能,这部分的测试,一般手工测试就显得无能为力了,这时就要借助自动化的测试软件,例如:DataFactory,DataFactory是一种强大的数据产生器,它允许开发人员和测试人员很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle、Sybase、SQL Server数据库。这样,就可以模拟出应用软件长期使用后,海量数据存储的数据库的性能状况。从而尽早发现问题,进行数据库性能的优化。 这里要注意,进行性能测试的时候,一定要注意测试环境的一致性,包括: *** 作系统、应用软件的版本以及硬件的配置等,而且在进行数据库方面的测试的时候一定要注意数据库的记录数、配置等要一致,只有在相同条件下进行测试,才可以对结果进行比较。否则无法和用户对软件的性能的观点达成一致。 6、数据库的压力测试 说起测试,我们首先想到的就是软件正确性的测试,即常说的功能测试。软件功能正确仅是软件质量合格指标之一。在实际开发中,还有其它的非功能因素也起着决定性的因素,例如软件的响应速度。影响软件响应速度的因素有很多,有些是因为算法不够高效;还有些可能受用户并发数的影响。 在众多类型的软件测试中,压力测试正是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户的访问时,软件的抗压能力。但压力测试往往是手工难以测试的,必须借助自动化测试工具。常用的压力测试有:Web测试、数据库测试等。 数据库在大多数软件项目中是不可缺少的,对于它进行压力测试是为了找出数据库对象是否可以有效地承受来自多个用户的并发访问。这些对象主要是:索引、触发器、存储过程和锁。通过对SQL语句和存储过程的测试,自动化的压力测试工具可以间接的反应数据库对象是否需要优化。 这些自动化的测试工具很多,各有特点,基于Java的项目可以使用JMeter,.Net项目可以采用.Net集成开发环境中提供的测试方案。 7、结束语 总之,在应用系统的测试中,把数据库应当作为独立的系统来测试,这无疑会为应用软件的质量增加可靠的保障,同时还必须结合应用软件进行集成测试,只有二者有机结合起来,才能最大限度的发挥数据库和应用软件的功能。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)