5.2.2需要进行集成测试的原因_第1页
5.2.2需要进行集成测试的原因_第2页
5.2.2需要进行集成测试的原因_第3页
5.2.2需要进行集成测试的原因_第4页
5.2.2需要进行集成测试的原因_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

软件质量保证与测试SoftwareQualityAssuranceandTesting5.2集成测试第5章软件测试过程5.2.2需要进行集成测试的原因需要进行集成测试的原因一个单元模块虽然能够单独的正常工作,但并不能保证多个单元模块连接起来后也能正常工作。每一个单元模块功能都正确,并不意味着多个单元模块组成的业务流仍然正确无误。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来。单元测试之后之所以还需要进行集成测试,包括以下多种原因和情况。需要进行集成测试的原因①一个模块可能对另一个模块产生不利的影响例如,A模块发送数据,B模块接收数据并进行加工,如果A模块发送数据的速度快于B模块加工数据的速度,则两个模块集成起来后连续工作的时间长了,就会出现阻塞或者是数据丢失。需要进行集成测试的原因②将子功能合成时不一定产生所期望的主功能。例如,某成绩管理软件,把成绩输入功能设计成两个子功能,输入百分制成绩和输入五级记分制成绩,但集成测试时发现,这两项子功能合起来并不能覆盖所有可能的成绩输入,因为成绩输入时还可能出现“缺考”、“作弊”等特殊情况!主功能子功能1子功能2......功能缺失需要进行集成测试的原因③独立可接受的误差,在多个模块组装后可能会被放大,超过可接受的误差限度。例如,设某模块A中变量X有误差X,在后续的模块B中对X进行了求立方运算,那么运算后的相对误差就是3倍的X。因为Y=X3两边微分得dY=3X2dX,两边再同除以Y和X3得:dY/Y=3dX/X需要进行集成测试的原因我们再来看一个关于误差被放大到难以接受的实例。某计算利息的程序,计算过程是模块A由年利率计算得出单日的利率I_day,计算结果提供给模块B乘以金额和天数,得出总的利息I_all。设年利率为3%。如果I_day保留5位小数,则I_day≈0.00008,设某客户存款1亿元,存期100天,算出的利息为80万元。如果I_day保留7位小数,则I_day≈0.0000822,算出的利息应为82.2万元。这两者之间的误差达到了2.2万元。需要进行集成测试的原因④可能会有单元测试中未发现的接口方面的错误。例如模块A有三个形式参数Str_1,Str_2,Str_3,功能是实现把Str_1中包含的Str_2去掉后保存到Str_3中。模块B调用模块A时参数位置写反了,把原始字符串作为第二个参数,而把要删除的字符串作为了第一个参数。这种情况单元测试时有可能没有发现,因为单元测试主要关注模块内部的具体实现,而通过集成测试是可以发现的。需要进行集成测试的原因⑤在单元测试中无法发现时序问题。例如,某购票软件中有购票和退票模块,这两个模块单独运行时都没有问题,但集成测试时不执行购票模块,而是直接执行退票模块软件就出现问题了,因为退票时读不到有效购票数据,在对退票模块做单元测试时是默认已经先执行了购票模块,是已经有购票数据的。需要进行集成测试的原因⑤在单元测试中无法发现时序问题。还有就是在程序并发中,也很容易出现时序问题。单元测试时一个一个模块单独执行,相互之间没有影响,测试运行可能都没有发现问题,但集成测试时,多个模块并发执行,操作的次序存在不确定性,如果对时序问题考虑不周,就会出现错误。需要进行集成测试的原因⑤在单元测试中无法发现时序问题。还是以购票软件为例,当购票和退票模块并发执行,如果出现以下情形,软件就出错了:

购票模块read票数............write票数=票数-1

退票模块......read票数write票数=票数+1......时间T需要进行集成测试的原因⑤在单元测试中无法发现时序问题。购票模块执行过程中,并发执行了退票模块,两个模块都读取到了相同的初始“票数X”,退票模块执行后,“票数X”加了1,但由于购票模块已经读取过了“票数”,所以这一修改并没有更新到购票模块,购票操作执行后,票数X=X-1被写回到了数据池,这样就出错了。正常结果应当是:余票X=X+1-1退回一张票卖出一张票,余票仍然=X;而实际结果是:余票X=X-1少了一张票,退回的票“丢失了”!需要进行集成测试的原因⑥在单元测试中无法发现资源竞争问题例如,A模块和B模块运行时都同时需要资源X和Y,当前运行环境下资源X和Y各有1个,A模块先申请到了资源X,B模块先申请到了资源Y,然后A模块等待资源Y,B模块等待资源X,A、B陷入死锁。模块A模块B资源X资源Y占用等待等待占用需要进行集成测试的原因⑦共享数据或全局数据的问题例如,成绩管理软件中,成绩是全局数据,在输入模块获得初值后传入统计模块进行统计。但集成测试时发现,输入模块为方便接收各种不同类型的成绩,把成绩数据默认为字符类型,而在统计模块,为便于计算,把成绩数据默认为数值类型,这样两个模块一对接,就出现了数据类型不一致的问题。需要进行集成测试的原因⑧数据单位、环境参数不统一的问题例如,某收费软件系统中有两个模块单元,一个称重,一个计费,但称重模块中重量单位为克,而计费模块中把重量的数据单位默认为公斤,这样当称重结果数据传到计费模块后,费用的计算结果肯定是错误的。需要进行集成测试的原因⑧数据单位、环境参数不统一的问题称重重量:X=1500(克)

X=1500计费1500*8=12000(元)需要进行集成测试的原因⑧数据单位、环境参数不统一的问题下面用具体的数据来说明,设称重模块称重的结果为

温馨提示

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

评论

0/150

提交评论