功能性测试的测试方法三

上一篇 / 下一篇  2013-04-10 09:40:09 / 个人分类:转载

1.1 方法16:文件系统超载 
案例: 
按容量填满文件系统会确保应用程序能很好地处理满磁盘的情况.一旦Canned HEAT 模拟了满状态下的磁盘,就应该抓住每个机会试着强制应该程序打开,关闭,读取,写入和修改文件.这样能发现访问文件的位置,但是对满状态下的磁盘,软件无法实施检查. 
1.1.1 分析缺陷产生的原因 
随着时间的推移,文件系统越来越满.许多用户从来不清理回收站,并在有严重碎片的硬盘上操作;另外,用户保存的文件也越来越大,比如几小时的DV摄像内容,因此巨大的硬盘很容易被填满. 
大多数开发开人员也习惯于过大的存储器,可能会忘记编写代码处理满状态的文件.他们完全忽略了诸如CreateFile,WriteFile等操作系统API的错误检查代码,没有这样的代码,当显示满状态的文件系统时,API调用就会失效,软件就会在没有任何警告的情况下崩溃 
1.1.2 如何发现问题 
分析应用程序,并记录下属于通过输入或输出访问文件系统的操作.如打开,保存,另存为,新建,关闭文件等菜单项,都需要用户操作才能访问文件系统.另一种情况是应用程序自动启动的文件读取和写入,如自动保存文件功能(如在word中设置每隔10分钟自动存储文件),简单的页面交换等不需要用户操作就可以访问文件的操作 
创建满容量或近乎满容量的文件系统,然后强制执行各种通过输入或输出访问文件系统的操作;或者打开足够多的文件,打开文件时会强制备份创建的副本,从而占有双倍的存储空间,这种操作达到一定程序时,会达到该系统的容量,于是就能测试应用程序处理超载状态的文件系统的能力 
但是执行这种测试所必需的满文件系统的维护很繁琐,如果每次测试都要删除文件并重新生成,就会增加大量的工作量.所以可使用一些测试工具模拟满磁盘的状况 
1.1.3 测试方法小结 
应用场合:系统较大,运行时需要较大的空间 
测试方法:强制磁盘系统满容量或容量小于等于被测软件运行时所需容量后,运行被测软件或利用测试工具模拟磁盘状况 
测试知识储备:全面掌握被软件的需求,了解被测软件处理超载状态的文件系统的能力 
--------------------------------------------------------------------------------------------- 
1.2 方法17:介质忙或不可用 
案例分析: 
(1)读取文件.测试需求,如果"读文件"按钮被单击两次以上,系统就会给出错误提示信息:文件正在被应用程序读取 
(2)运行程序后,实际结果:Run-time error '55': 
                      File already open 
1.2.1 分析缺陷产生的原因 
大多数操作系统都能同时运行许多应用程序(多任务),一些应用程序在后台运行,且用户不可见(服务程序);用户应用程序也能同时运行,在windows中,利用alt+tab键在用户启动的前台和后台应用程序之间进行切换 
当多个应该程序同时访问硬盘(或其他存储器),操作系统为提供多请求服务会慢下来,并且必须对应用程序进行编程以处理这些延迟,当延迟时间变得很长时,没有对这些错误进行响应的应用程序就会出现错误 
1.2.2 如何发现这类问题 
启动多个应用程序,强制它们打开并保存文件使文件系统处于忙碌状态;或者同时下载大量文件也可以使后台拥挤;或者使用测试工具模拟磁盘的状况,例如,模拟系统打开了太多的文件.检查被测软件能否正确处理这种情况,应用程序应该给出错误信息或等待提示,提示用户正在处理 
1.2.3 测试方法小结 
应用场合:应用程序的运行需要消耗大量内存或运行时需求其他相关软件同时运行 
测试方法:启动大量程序或利用测试工具模拟磁盘状况 
测试知识储备:全面掌握被测软件的需求,了解被测软件运行时对系统的需求 
--------------------------------------------------------------------------------------------- 
1.3 方法18:介质损坏 
案例分析: 
强制介质忙或不可用会保证与存在问题的存储设备相关的错误条件得到测试.其思想是,当应用程序访问硬盘驱动,软件盘驱动或其他外部存储设备时,强制错误返回码标明介质存在的问题.如果开发人员无法对这些条件编写适当的错误处理程序,应用程序就会失效 
1.3.1 分析缺陷产生的原因 
1.损坏的介质可能会使操作系统传回错误代码,这些错误代码没有在应用程序中编程处理(无法通知应用程序编程进行处理) 
2.操作系统不能检测出所有这样的错误,操作系统自己也有错误或者损坏的介质损坏了部分操作系统 
1.3.2 如何发现这类问题 
使用介质损坏的方法,大多是开发操作系统,设备驱动程序以及以安全性为主的应用程序的公司会采用.确定是否使用该方法,主要要考虑数据对用户的重要性 
用该方法时,只能使用实际损坏了的介质,例如,刮伤,灰尘,磁干扰等.检查应用程序对错误的处理能力,应用程序可以对错误进行处理或者将问题告诉用户,并要确保用户数据文件不丢失,不损坏 
1.3.3 测试方法小结 
应用场合:应用程序对安全要求较高,对灾难恢复的要求较高 
测试方法:用实际损坏介质的方法测试应用程序 
测试知识储备:全面掌握被测软件的需求,了解被测软件运行时对系统的要求 
--------------------------------------------------------------------------------------------- 
1.4 方法19:文件名不合法 
案例分析: 
在windows 2000中使用word 2000,打开新文件,输入任意文本,然后另存为,输入文件名"test;filename-5.1.2004",由于字符在文件名中的组合存在问题,使得文件不能被保存成扩展名为.doc的文件,而得到.2004 
1.4.1 分析缺陷产生的原因 
操作系统本身具有自己的文件命名规范,例如,dos的8.3格式(8个字符的文件和3个字符的扩展名).在windows中,文件名不能超过255个字符,并且文件名不可以含有/\:<>?*|这8个字符,以及AUX,COM1,COM2,COM3,COM4,CON,LPT1,LPT2,LPT3,LPT4,NUL,PRN这些操作系统的保留字 
开发人员在应用程序中使用和操作系统不一致的命名规则时,就会发生问题.例如,应用程序允许命名了一个在操作系统中无效或产生特殊意义的文件名,操作系统会给程序返回一个错误信息,如果应用程序没有编程处理该错误,就会使程序崩溃或出现错误.在word中保存文件时,程序可以自动给出扩展名.doc,但是当把分号符号和圆点符号组合起来使用的时候,就会产生错误,使应用程序把.2004作为扩展名给了文件 
1.4.2 如何发现问题 
1.保存文件为操作系统不允许的文件名,测试应用程序是否不允许输入包含这些字符的文件 
2.输入一些应用程序不允许使用的文件,例如,使用过长的,含有特殊字符的,可能相互作用的字符作为文件,检查应用程序能否识别该文件 
1.4.3 测试方法小结 
应用场合:几乎所有涉及需要输入文件名功能的应用程序 
测试方法:输和操作系统不允许的文件名和应用程序不允许使用的文件 
测试知识储备:全面掌握被测软件的需求,了解操作系统和应用程序对文件名的要求 
--------------------------------------------------------------------------------------------- 
1.5 方法20:更改文件访问权限 
案例分析: 
1.向c:\file.txt中写入内容,修改file.txt访问权限为只读,单击"写文件"按钮.测试需求:如果文件的属性为只读,系统给出正确的错误提示:文件属性为只读,无法修改它 
2.程序运行后,程序崩溃:Run-time error '75': 
                     path/File access error 
1.5.1 分析缺陷产生的原因 
在操作系统中,可以设置不同用户对不同的文件具有不同的访问权限.例如,当以只读方式编辑一个文件时就会出现问题.开发人员必须在访问文件的函数中考虑文件的访问权限,例如在每个文件写入之前检查文件的访问权限.如果没有进行检查,就会导致程序出错.另外,如果文件访问失败,程序必须要有正确处理错误的代码,以保证程序可以正确捕获所产生的错误 
1.5.2 如何发现这类问题 
1.打开两个应用程序,打开同一个文件.例如,把同一应用程序的不同版本安装在同一机器上,在不同版本的庆用程序中打开和关闭同一文件,或者试着在某个应用程序中打开在另一个程序中已打开的文件,这可能会导致文件访问权限的冲突 
2.打开一个文件,在操作系统中修改该文件的访问权限.有些操作系统允许权限高的用户控制一般用户已打开的文件 
1.5.3 测试方法小结 
应用场合:需要对文件进行读写操作的应用程序 
测试方法:修改文件访问权限或用低权限的用户访问文件 
测试知识储备:全面掌握被测软件的需求,了解读写文件所需的权限 
--------------------------------------------------------------------------------------------- 
1.6 方法21:文件内容受损 
案例分析: 
在windows xp的excel 2000中新建文件,然后在office字处理软件(word,写字板)中编辑该文件,并再次保存为.xls格式,由于该字处理软件的问题,此时文件内容被破坏,然后在excel中打开并编辑该文件后保存,excel不能处理内容受损的文件,彻底崩溃 
1.6.1 分析缺陷产生的原因 
开发人员编写代码来读取和写入文件,也编写代码来调用系统API得到文件指针,并打开和关闭文件.由于某些原因,这些系统API会失败或传回异常返回值.如果开发人员没有编写代码来处理传回的预期返回值,则应用程序会由于无法处理异常而失效 
另外,还必须编写代码验证文件的格式和内容.验证格式包括与二进制相对的文本格式,合适的分隔符以及数据类型正确的字段值.验证内容包括验证用于预期目标的数据是否存在正确的合法范围内.如果这一代码的任何部分发生错误或丢失,软件也会失效.没有确认文件格式或内容意味着受测软件可能要处理非法数据.分隔符不匹配会引起字段读取次序错误,并且常会破坏使用这些值的内部计算 
1.6.2 如何发现这类问题 
1.手工损坏文件.从应用程序已创建的文件对其进行编辑,改文件格式和内容.若是文本文件,使用标准编辑器进行;若是二进制文件,使用如UltraEdit的十六进制编辑器,可以对文件的分隔符和实际字段进行删除,添加和修改 
2.使用测试工具.模拟CRC(循环冗余校验)错误,或强制文件API返回无效的返回码 
1.6.3 测试方法小结 
应用场合:需要对文件格式和内容进行校验的应用程序 
测试方法:手工损坏文件或利用测试工具模拟CRC错误 
测试知识储备:全面掌握被测软件的需求,了解文件读写需要的权限功能性测试的测试方法三 - 开心就好 - 开心就好的博客


TAG:

 

评分:0

我来说两句

日历

« 2024-05-30  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 15805
  • 日志数: 22
  • 建立时间: 2013-04-10
  • 更新时间: 2013-11-20

RSS订阅

Open Toolbar