软件测试知识.doc_第1页
软件测试知识.doc_第2页
软件测试知识.doc_第3页
软件测试知识.doc_第4页
软件测试知识.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

目录1测试的目的22测试的常识和经验23测试的分类24测试阶段25测试规范35.1测试流程35.2测试启动准则35.3测试完成准则36软件系统的主要测试内容和技术36.1接口与路径测试36.2功能测试46.3健壮性测试46.4性能测试46.5安全测试56.6压力测试56.7安装和卸载测试57测试用例57.1测试用例的定义57.2测试用例的生成和执行67.3测试用例的配置管理67.4测试用例的组织68规模化软件测试与规范化软件测试6第7页_共7页1测试的目的测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。 2测试的常识和经验1) 测试能提高软件的质量,但是提高质量不能依赖测试。2) 测试只能证明缺陷存在,不能证明缺陷不存在。“彻底地测试”难以成为现实,要考虑时间、费用等限制,不允许无休止地测试。3) 测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可以放心地结束测试。4) 80-20原则:80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出错。3测试的分类1) 从是否需要执行被测软件的角度,可分为静态测试和动态测试。2) 动态测试按照是否与软件内部设计和程序实现有关,分为黑盒测试和白盒测试。白盒测试是依据程序代码的一种测试,主要的依据是设计文档,白盒测试包括逻辑覆盖测试、路径测试、符号测试和域测试等。黑盒测试是依据软件的功能的一种测试,主要的依据是需求文档,典型的黑盒测试包括功能测试、强度测试、边界值测试、随机测试等4测试的阶段1) 测试的阶段按照从小到大,由内至外分为单元测试、集成测试、系统测试和验收测试。2) 单元测试集中检查软件设计的最小单位模块上,主要测试单元是否符合“设计”,即通过测试发现该模块的实际功能与定义该模块的功能不符合的情况以及编码的错误。单元测试由程序员完成,这时程序员可以采用交叉测试的方法,相互测试彼此开发的模块,并严格参照详细设计说明书和项目规范书进行测试。3) 集成测试由程序员完成,主要检查不同模块之间的接口,在测试时,既要验证设计,又要验证需求。4) 系统测试由独立的测试小组中的测试人员完成,一般采用黑盒测试,主要测试软件系统在功能和性能上是否满足用户的需求。5) 验收测试由用户进行,是为了进一步证明软件系统在功能和性能上满足了用户的需求。5测试规范5.1测试流程1) 制定测试计划,该计划被批准后转向第二步。2) 设计测试用例,该用例被批准后转向第三步。3) 如果满足“启动准则” ,那么执行测试。4) 撰写测试报告,5) 消除软件缺陷。如果满足“完成准则”,那么正常结束测试。5.2测试启动准则同时满足以下条件,允许开始测试:1) 测试计划已经制定并且通过了审批;2) 测试用例已经设计并且通过了审批;3) 被测试对象已经开发完毕并等待测试;4) 测试环境已经建立完毕。5.3测试完成准则根据需求的重要性可分为关键需求、重要需求和一般需求,因此使用简单的覆盖率百分比是不够的,最好将需求乘以一个优先权,然后在各个级别上度量覆盖率。这样完成准则可指定为:关键需求的测试用例覆盖率达到100%,修改率达到100%;重要需求的测试用例覆盖率达到95%,修改率达到95%;一般需求的测试用例覆盖率达到90%,修改率达到90%。6软件系统的主要测试内容和技术6.1接口与路径测试1) 数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少;根据接口的定义,可以推断某种输入应当产生什么样的输出;输出包括函数的返回值和输出参数,如果实际输出与期望的输出不一致,那么说明程序有错误;白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。2) 一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。想遍历测试几乎是不可能的,不测试或者胡乱找几条路径测试都是不可行的。3) 程序的覆盖方式a) 语句覆盖:选择足够多的测试用例,使被测程序中的每个语句至少被执行一次。b) 路径覆盖:选择足够多的测试用例,使被测程序中的每条路径至少被执行一次。c) 分支覆盖:选择足够多的测试用例,使得程序中每个判断的取真分支和取假分支至少被执行一次。d) 条件覆盖:选择足够多的测试用例,不仅使被测程序中的每个语句至少被执行一次,而且是判断表达式的每个条件都取得可能的结果。e) 条件组和覆盖:选择足够多的测试用例,使得每个判定表达式中条件的各种可能的组和至少被执行一次。f) 在实际中常把路径覆盖和条件组和覆盖结合起来使用,用条件组和覆盖来对路径覆盖做进一步的补充。g) 啊啊啊h) 阿i) 阿j)6.2功能测试1) 功能测试的基本方法是构造一些合理输入,检查输出结果是否与期望的相同。如果两者不一致,即表明功能有误,也有例外的情况,如需求规格说明书中的某个功能写错了,而实际上软件的功能却是正确的,这时要更改的是需求规格说明书。2) 功能测试有两种比较好的测试方法:等价划分法和边界值分析法。a) 把所有可能的输入数据依据一定的原则划分为若干个等价类,则可以合理的做出下述的假定:每个等价类中的一个典型值在测试中的作用于这个类中所有其他值的作用相同。因此,在测试时可以从每个等价类中只取一组数据作为测试数据。b) 边界值测试法是对等价划分法的补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。c) 边界值测试法选择测试用例的原则:u 如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;u 如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1、比最小个数少1个的数做为测试数据;u 如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;u 如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例;6.3健壮性测试1) 健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。2) 容错性测试通常构造一些不合理的输入来引诱软件出错,例如:a) 输入错误的数据类型或 输入定义域之外的数值。3) 恢复测试重点考察以下几项:a) 系统能否重新运行;b) 有无重要的数据丢失;c) 是否毁坏了其它相关的软件硬件。d)e)6.4性能测试1) 性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考(例如用于宣传)。2) 有时人们关心测试的“绝对值”,如数据传数速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如网络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。 3) 性能测试的一些注意事项:a) 应当测试软件在标准配置和最低配置下的性能。b) 为了排除干扰,应当关闭那些消耗内存、占用CPU的其它应用软件。c) 不同的输入情况会得到不同的性能数据,应当分档记录。例如传输文件的容量从100K到1M可以分成若干等级。d) 由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。6.5安全测试安全测试着重测试系统在防止非授权的内部或外部用户的访问或故意破坏时的情况。6.6压力测试1) 压力测试也叫负荷测试,即获取系统能正常运行的极限状态。2) 压力测试的一个变种是敏感测试。在某种情况下,微小的输入变动会导致系统的性能发生急剧的变化。敏感测试的目的是发现什么样的输入可能会引发不稳定现象。 3) 压力测试的主要任务是:构造正确的输入,使劲折腾系统却让它刚好不瘫痪。6.7安装和卸载测试我们应从下面几点来考虑:1) 无论是自动安装还是手工配置安装,测试各种不同的安装组合,并验证各种不同组合的正确性,最终目标是所有组合都能安装成功。2) 安装退出之后,确认应用程序可以正确启动、运行。3) 在安装之前备份你的注册表,安装之后,察看注册表中是否有多余的垃圾信息。4) 卸载测试和安装测试同样重要,如果系统提供自动卸载工具,那么卸载之后需检验系统是否把所有的文件全部删除,注册表中有关的注册信息是否也被删除。5) 安装完成之后,可以在简单地使用之后再执行卸载操作,观察出现的情况。6) 对于客户服务器模式的应用系统,可以先安装客户端,然后安装服务器端,测试是否会出现问题。7) 考察安装该系统是否对其他的应用程序造成影响。7测试用例7.1测试用例的定义软件测试用例可以被定义为如下七元组: (测试索引,测试环境,测试输入,测试操作,实际输出,预期结果,评价标准)7.2测试用例的生成和执行在软件测试用例的六元组定义中:1) 测试索引和测试环境在测试需求分析步骤中定义,是软件测试计划的内容;2) 测试输入、测试操作、实际输出,预期结果和评价标准的描述性定义在软件测试的设计步骤中定义,是软件测试说明的主要内容;3) 软件测试用例是软件测试结果的生成器,即每执行一次测试用例都产生一组测试结果。4) 若测试用例被有效地由描述性定义转换为计算机表示,则测试的执行和结果的比较都可以利用软件测试工具自动或半自动地执行,在需要大量回归测试的复杂软件系统中,这种转换和自动执行是降耗增质的关键策略之一。7.3测试用例的配置管理1) 需要进行配置管理的原因:a) 大型复杂软件系统的功能/性能要求将对应于大量的软件测试用例,它们需要标识规则和规范的存储结构;b) 软件测试用例也存在引用控制;c) 软件测试用例也存在版本控制;d) 软件测试用例也存在更动控制。2) 配置管理的作用:测试用例的配置管理类似于一般软件的配置管理,可以实现安全存储、追踪变化和并行开发,并有利于测试用例的复用。7.4测试用例的组织测试用例的设计和实现对应于被测对象的需求、设计和环境要求,因此同被测对象一样,测试用例可以被组织成层次结构。即:依据某种原则(如被测对象的层次或测试类型)将测试用例划分为测试用例组,测试用例组又可以划分为更高层次的测试用例组。测试实施时可以根据具体需要和测试环境,选择性地执行多个测试用例或测试用例组。8规模化软件测试与规范化软件测试1) 软件测试的规模包

温馨提示

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

评论

0/150

提交评论