软件系统的主要测试内容及技术.doc_第1页
软件系统的主要测试内容及技术.doc_第2页
软件系统的主要测试内容及技术.doc_第3页
软件系统的主要测试内容及技术.doc_第4页
软件系统的主要测试内容及技术.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

软件系统的主要测试内容及技术l 接口与路径测试l 功能测试l 健壮性测试l 性能测试l 用户界面测试l 信息安全测试l 压力测试l 可靠性测试l 安装/反安装测试一、接口与路径测试1、数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少。根据接口的定义,可以推断某种输入应当产生什么样的输出。输出包括函数的返回值和输出参数。如果实际输出与期望的输出不一致,那么说明程序有错误。白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。 2、一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。想遍历测试几乎是不可能的,不测试或者胡乱找几条路径测试却又不行。 3、对于非严格系统而言,在分析路径方面化费很多精力是不值得的。我认为在构造接口测试的同时已经建立了测试路径。因为每一种输入将产生唯一的输出,输入与输出之间的路径也是唯一的。由于接口测试中的输入是有代表性的,因此相应的路径也具有代表性,不用得着费煞苦心地去找测试路径。4、路径测试的检查表数据类型、变量值、逻辑判断、循环、内存管理、文件I/O、错误处理 5、由于接口测试是枚举的,有可能漏掉某些状况,导致一些重要的路径没有被测试。预防措施有:(1)观察是否有程序语句从来没有被执行过。如果发生在这种情况,要么是程序有错误,存在无用的代码;要么是接口测试不充分,漏掉了一些路径。(2)要特别留意函数体内的错误处理程序块(如果存在的话),这是最易被人疏忽的路径,隐患最多。 -资料:软件单元测试的主要内容是接口测试和路径测试,毫无疑问应当采用白盒测试方式。如果对源代码中的某个函数进行白盒测试,那么要跟踪到函数的内部,检查所有代码的运行状况。初看起来,白盒测试可获得100%的正确性。但不幸的是,即使一段很小的程序,它的逻辑路径可能多得让人无法彻底地进行白盒测试。 数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少。根据接口的定义,可以推断某种输入应当产生什么样的输出。输出包括函数的返回值和输出参数。如果实际输出与期望的输出不一致,那么说明程序有错误。白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。由于接口测试只关心输入和输出,并不知道函数体内是怎样运行的。有时候,输入、输出都是正确的,而函数体内却可能有错误(或者隐藏了错误)。所以仍需要进行路径测试。二、功能测试1、功能测试的基本方法是构造一些合理输入(在需求范围之内),检查输出是否与期望的相同。如果两者不一致,即表明功能有误。也有例外的情况,如需求规格说明书中的某个功能写错了,而实际上软件的功能却是正确的,这时要更改的是需求规格说明书。 2、功能测试看起来比较简单,只要看得懂需求规格说明书,谁都会做。难点在于如何构造有效的输入。由于输入空间通常是无限的,穷举测试显然行不通。那么随便输入一些东西,碰运气行不行? 3、功能测试有两种比较好的测试方法:等价划分法和边界值分析法。 (1)等价划分是指把输入空间划分为几个“等价区间”,在每个“等价区间”中只需要测试一个典型值就可以了。等价划分法来源于人们的直觉与经验,可令测试事半功倍。 (2)“缺陷遗漏在角落里,聚集在边界上”。边界值测试法是对等价划分法的补充。如果A和B是输入空间的边界值,那么除了典型值外还要用A和B作为测试用例。 (3)例如测试函数。凭直觉,等价区间应是(0, 1)和(1, +)。可取典型值x=0.5以及x=2.0进行“等价划分”测试。再取 x=0以及x=1进行“边界值”测试。 三、健壮性测试1、健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。 2、容错性测试通常构造一些不合理的输入来引诱软件出错,例如:(1)输入错误的数据类型。如“猴”年“马”月。(2)输入定义域之外的数值。如上海人常说的“十三点”3、粗暴一些方式俗称“大猩猩”测试法。除了不能拳打脚踢嘴咬外,什么招术都可以使出来。例如在测试客户机服务器模式的软件时,把网络线拔掉,造成通信异常中断。 4、恢复测试重点考察一下几项:(1)系统能否重新运行;(2)有无重要的数据丢失;(3)是否毁坏了其它相关的软件硬件。 5、目标当在进行安装或组装操作过程中,文件丢失时或发生意外后系统有能力重新进行操作6、如何使用程序的安装,运行方式,工具的使用和关键技术经过足够的评估系统开发完毕后,介绍一下发生失败后的处理过程7、例子人为的使一个系统在安装或者组装过程中产生错误8、什么时间去使用当操作的连续性是个重点的时候四、性能测试1、性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考(例如用于宣传)。 2、有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。3、在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如网络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。 4、性能测试的一些注意事项:(1)不要试图让人拿着钟表去测时间,应当编写一段程序用于计算时间以及相关数据。 (2)应当测试软件在标准配置和最低配置下的性能。 (3)为了排除干扰,应当关闭那些消耗内存、占用CPU的其它应用软件(如杀毒软件)。 (4)不同的输入情况会得到不同的性能数据,应当分档记录。例如传输文件的容量从100K到1M可以分成若干等级。 (5)由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。 5、目标确定系统达到了希望达到的性能水平6、如何使用使用软件和硬件的监视器使用模拟的监控模型,对关心的性能指标进行监控创建一个小程序7、例子计算通信的时间单位时间处理的信息量五、用户界面测试绝大多数软件拥有图形用户界面。图形用户界面的测试重点是正确性、易用性和视觉效果。在评价易用性和视觉效果时,主观性非常强,应当考虑多个人的观点。界面测试l 现在一般人都有使用浏览器浏览网页的经历,用户虽然不是专业人员但是对界面效果的印象是很重要的。如果你注重这方面的测试,那么验证应用程序是否易于使用就非常重要了。很多人认为这是测试中最不重要的部分,但是恰恰相反界面对不懂技术的客户来说那相当关键,慢慢体会你会明白的。l 方法上可以根据设计文档,如果够专业的话可以专业美工人员,来确定整体风格页面风格,然后根据这个可以页面人员可以生成静态的HTML,CSS等甚至生成几套不用的方案来讨论,或者交给客户评审,最后形成统一的风格的页面/框架。注意不要靠程序员的美术素养形成你的web风格,那样可能会很糟糕。主要包括以下几个方面的内容:? 站点地图和导航条 位置、是否合理、是否可以导航等内容布局 布局是否合理,滚动条等简介说明 说明文字是否合理,位置,是否正确? 背景/色调 是否正确、美观,是否符合用户需求;? 页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表单样式 大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等? 连接 连接的形式,位置,是否易于理解等l web测试的主要页面元素? 页面元素的容错性列表(如输入框、时间列表或日历)? 页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)? 页面元素的容错性是否存在? 页面元素的容错性是否正确? 页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接)? 页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等)? 页面元素是否显示正确(主要针对文字、图形、签章)? 元素是否显示(元素是否存在)页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)l 测试技术? 通过页面走查,浏览确定使用的页面是否符合需求。可以结合兼容性测试对不用分辨率下页面显示效果,如果有影响应该交给设计人员提出解决方案。? 可以结合数据定义文档查看表单项的内容,长度等信息。? 对于动态生成的页面最好也能进行浏览查看。如Servelet部分可以结合编码规范,进行代码走查。是否支持中文,如果数据用XML封装要做的工作会多一点等等。 界面测试要素:符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性l 1.直观性:? 用户界面是否洁净,不唐突,不拥挤.界面不应该为用户制造障碍.所需功能或者期待的响应应该明显,并在预期出现的地方.? 界面组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个功能?下一步做什么明显吗?任何时刻都可以决定放弃或者退回,退出吗?输入得到承认了吗?菜单或者窗口是否深藏不露? 有多余功能吗?软件整体抑或局部是否做得太多?是否有太多特性把工作复杂化了?是否感到信息太庞杂? 如果其他所有努力失败,帮助系统真能帮忙吗?l 2.一致性? 快速键和菜单选项.在Windows 中按F1键总是得到帮助信息? 术语和命令.整个软件使用同样的术语吗?特性命名一致吗?例如,Find是否一直叫Find,而不是有时叫Search? 软件是否一直面向同一级别用户?带有花哨用户界面的趣味贺卡程序不应该显示泄露技术机密的错误提示信息.? 按钮位置和等价的按键.大家是否注意到对话框有OK按钮和Cancle按钮时,OK按钮总是在上方或者左方,而Cancle按钮总是在下方或右方?同样原因,Cancle按钮的等价按键通常是Esc,而选中按钮的等价按钮通常是Enter.保持一致.l 3.灵活性? 状态跳转.灵活的软件实现同一任务有多种选择方式.? 状态终止和跳过,具有容错处理能力.? 数据输入和输出.用户希望有多种方法输入数据和查看结果.例如,在写字板插入文字可用键盘输入,粘贴,从6种文件格式读入,作为对象插入,或者用鼠标从其他程序拖动.l 4.舒适性? 恰当.软件外观和感觉应该与所做的工作和使用者相符.? 错误处理.程序应该在用户执行严重错误的操作之前提出警告,并允许用户恢复由于错误操作导致丢失的数据.如大家认为undo /redo是当然的.? 性能.快不见得是好事.要让用户看得清程序在做什么,它是有反应的.六、信息安全测试信息安全性(security)是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。信息安全性测试有如下步骤:(1)为非法入侵设立目标,例如“盗窃某个文件”或“更改数据库记录”等。(2)邀请(或悬赏)一些人扮演黑客,让他们想尽办法入侵系统,实现“目标”。(3)如果有人成功了,请他详述入侵的过程。别忘了给予奖励。 目标安全性的缺陷很难被发现。大多数的情况下组织能够防止一般性的破坏者。如何使用对安全性的需求进行评审分析与安全性有关的处理流程转包给专业的人员例子定义了被保护的资源,权限进行了控制,日志文件和审查追踪是可用的。什么时间使用当被保护的资源对于组织具有重要的价值的时候七、压力测试压力测试也叫负荷测试,即获取系统能正常运行的极限状态。了解“极限”是很有价值的,例如潜艇下潜极限深度。 压力测试的主要任务是:构造正确的输入,使劲折腾系统却让它刚好不瘫痪。 压力测试的一个变种是敏感测试。在某种情况下,微小的输入变动会导致系统的表现(如性能)发生急剧的变化。敏感测试目的是发现什么样的输入可能会引发不稳定现象。目标:模拟出实际用户环境怎么用:产生测试数据测试组模拟用户处理被创建的数据例子确定是否分配了足够的磁盘空间通讯的容量是否足够测试系统过载的情况什么时间使用当关于容量的信息不确定的时候 八、可靠性测试可靠性是指在一定的环境下、在给定的时间内、系统不发生故障的概率。由于软件不像硬件那样可以“加速老化”,按此定义,软件可靠性测试可能会花费很长时间。 比较实用的办法是,让用户使用该系统,记录每一次发生故障的时刻。计算出相邻故障的时间间隔,注意要去掉非工作时间。这样我们可以方便地统计出不发生故障的“最小时间间隔”、“最大时间间隔”和“平均时间间隔”。其中“平均时间间隔”会让人们大体了解到系统“可靠”的程度。 九、安装 / 反安装测试安装 / 反安装测试的目的:避免“大风浪都挺过来了,却在阴沟里翻了船” 目前市面上有非常流行的、专门制作安装/反安装程序的一些工具,如Install Shelled。制作安装/反安装程序不再是件难事,关键是不要麻痹大意。主要测试工作: (1)至少在标准配置和最低配置两种环境下测试;(2)如果有安装界面,应当尝试各种选项,如选择“全部”、“部分”、“升级”等。 如何进行安装测试 除了嵌入式软件之外 ,安装是软件产品实现其功能的第一步,没有正确的安装根本就谈不上正确的执行,因此对于安装的测试就显得尤为重要。那么对于安装测试需要注意一些什么呢,我们认为至少应该从以下几点来考虑:1. 自动安装还是手工配置安装,测试各种不同的安装组合,并验证各种不同组合的正确性,最终目标是所有组合都能安装成功。2. 安装退出之后,确认应用程序可以正确启动、运行。3. 在安装之前请备份你的注册表,

温馨提示

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

评论

0/150

提交评论