• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试之资源分配测试——失败及恢复

发布: 2009-7-10 10:55 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 44次 | 进入软件测试论坛讨论

领测软件测试网

软件测试之资源分配测试——失败及恢复  软件测试技术

我们知道所有程序都会和各种资源打交道,硬件资源类型如硬盘,系统资源如句柄,因此如何做好资源相关的测试很重要。大家熟知的是测试资源的泄漏,但这里我想更多的从资源分配失败及恢复角度去谈资源分配测试。

  对于资源通常有如下操作:

  1.分配资源

  我们熟知的一个典型例子就是 C语言中’malloc()’ 系列函数。

  2.释放资源

  同样的一个例子就是C语言中’free()’系列函数。

  3.资源计数

  比较常见的例子就是性能计数器,比如文件句柄计数器,它能够提供“有多少文件句柄被打开”的信息

  我们编写软件的时候,我们一般都会经常使用这些资源管理类函数来帮助我们,从而得以申请和释放多种类型的资源。当然我们也会编写一些自己的代码来申请和释放资源。一般情况下,这些代码会处于我们的软件架构的相对底层上。我们可能有一个系统,在这个系统里,我们分配资源,使用资源,还可能管理并监控资源,最后当处理完后释放掉这些资源。同时还存在着当代码运行时替我们分配资源的情况。

  由于各种原因,资源的申请和分配并不总是能够成功的。其中一个原因可能是某种特殊的资源被消耗殆尽了。比如在磁盘空间不够时,我们申请使用更多磁盘资源的话就会失败;还比如内存总是是有限的;句柄空间总是那么多。总之软件有可能因为各种原因而出错,但一个主要的原因就是资源的消耗。

  对于服务型软件而言,提供长期稳定的服务是重要的设计目标之一。从而,相对于客户端程序,它需要运行得更加可靠、健壮。为了确保软件的可靠性和健壮性,我们必须确保它在资源可用率发生异常变动的情况下,它还是可以正常运行。如果某一个程序消耗了所有的内存,那么我们可以假定它肯定会出错了;但如果由于系统内存的不足导致内存分配的偶尔失败,那么我们的软件应不应该完全崩溃?还是应该仅仅让当前操作出错并让软件其他部分能够继续正常运行?同样的问题也适用于其他类型的动态分配并被共享的资源,比如磁盘空间,内存,文件,网络连接等。

  致错测试是一个重要的测试场景,可以帮助我们了解当资源使用达到极限的时候会发生什么。简单地说, 这种测试可以用以下伪代码描述:

  Pallocatedthing[<use more than enough space here>]

  counter n

  While(Pallocatedthing[n++]=allocate(<whatever size you like>))

  While(n)

  free(Pallocatedthing[n–])

  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 软件测试 软件测试技术 失败 资源

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网