第-章-软件测试原则及工作流程优秀文档_第1页
第-章-软件测试原则及工作流程优秀文档_第2页
第-章-软件测试原则及工作流程优秀文档_第3页
第-章-软件测试原则及工作流程优秀文档_第4页
第-章-软件测试原则及工作流程优秀文档_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第4章软件测试的原则及工作流程4.1软件测试的原则4.2软件测试工作流程4.3软件测试中的误区4.1软件测试的原则4.1.1尽早和不断地进行软件测试IBM的研究结果表明,缺陷存在放大趋势。图4-1表示了缺陷放模型大致状况。图4-1缺陷放大模型 由此可见,问题发现越早,解决问题的代价就越小,这是软件开发过程中的黄金法则。 对一个程序进行完全测试就是意味着在测试结束之后,再也不会发现其它的软件错误了。其实,这是不可能的,主要原因有以下几点:一、不可能测试程序对所有可能输入的响应。二、不可能测试到程序每一条可能的执行路径三、无法找出所有的设计错误四、不能采用逻辑来证明程序的正确性4.1.2不可能进行完全的测试4.1.3增量测试,由小到大 由小到大,指的是软件测试的粒度。无论是传统的软件测试还是面向对象的软件测试都要遵循这样的原则。如图4-2所示,多个单元组合过渡到集成测试阶段,集成测试阶段过渡到更高级别的系统测试阶段,虚线是各个测试阶段的发布基线。随着测试的逐步深入,范围的逐步扩大,测试时间、可用资源也随之增大。图4-2测试资源关系图4.1.4避免测试自己的程序 避免程序员测试自己的代码的主要原因归纳如下: (1)程序员轻易不会承认自己写的程序有错误。 (2)程序员的测试思路有局限性,在做测试时很容易受到编程思路的影响。3.多数程序员没有严格正规的职业训练,缺乏专业测试人员的意识。4.程序员没有养成错误跟踪和回归测试的习惯.4.1.5设计周密的测试用例软件测试的本质就是针对要测试的内容确定一组测试用例。测试用例至少应该包括如下几个基本信息:(1)在执行测试用例之前,应满足的前提条件。(2)输入(合理的、不合理的)。(3)预期输出(包括后果和实际输出)图4-3显示了一个典型的测试用例所应该具有的基本信息。图4-3典型的测试用例信息测试用例是测试工作的核心,应该尽量设计的周密细致,这样才能更好的保证测试工作的质量。下面举例来说明这一点。以一个实现登录功能的小程序为例,它允许用户选择城市和地区,输入自己的账号和密码。如图4-4所示,通过Alt-F4组合键和“Exit”按钮来终止程序,Tab键在区域中间移动。测试用例举例1尽早和不断地进行软件测试5检查ID字段储存结果(1)程序员轻易不会承认自己写的程序有错误。3增量测试,由小到大测试用例是测试工作的核心,应该尽量设计的周密细致,这样才能更好的保证测试工作的质量。所有的HotKey必须能够起作用2软件测试工作流程程序必须能够接受使用者的输入并且将输入值存在登录文件内3集成测试、系统测试和验收测试阶段工作流程3、测试团队和项目团队沟通不良;一、不可能测试程序对所有可能输入的响应。(2)程序员的测试思路有局限性,在做测试时很容易受到编程思路的影响。3检查city字段储存结果图4-4登录窗口下面根据组成页面的具体元素,分别从几个方面做了一些比较全面的测试用例:1.下拉框和输入框测试用例 表1-1下拉框和输入框测试用例测试内容输入操作预期输出实际结果下拉框未和后台数据库绑定(显示列表元素固定)不允许列表中出现NULL现象,固定“—请选择--”已和后台数据库绑定(显示列表元素活动)不允许列表中出现NULL现象,固定“—请选择--”输入框限定字符型输入12、6无#,*等错误提示限定型数字输入测试数据无12月、7*、0错误提示2、功能测试(表1-2功能测试用例)用例应产生行为结果失败原因1.基本功能测试1.1在输入框内输入资料并且执行存储程序必须能够接受使用者的输入并且将输入值存在登录文件内1.2在输入框内不输入资料但执行储存程序必须能够检查使用者输入是否为空白,同时必须能够告知使用者原因1.3检查city字段储存结果City字段输入后存入cookies1.4检查area字段储存结果Area字段输入后存入cookies储存结果1.5检查ID字段储存结果ID字段输入后存入cookies……2.使用接口功能测试2.1检查输入字段的输入值必须组织使用者输入空白,同时部分字段只能输入数字2.2检查使用者接口的TabOrder所有的TabOrder必须按照正常顺序2.2检查所有的Button所有的Button必须能够起作用2.3检查所有的HotKey所有的HotKey必须能够起作用图4-1表示了缺陷放模型大致状况。3增量测试,由小到大2不可能进行完全的测试误区1调试和测试是一样的启动多个应用程序或模拟多个程序运行软件缺陷的“扎堆”现象的常见形式:遗憾的是,在中文里面,至今仍没有与“Bug”准确对应的词汇,于是只能直接引用“Bug”一词。但是现在,在电脑系统或程序中,如果隐藏着的一些未被发现的缺陷或问题,人们也叫它“Bug”,与Bug相对应,人们将发现Bug并加以纠正的过程叫做“Debug”,意即“捉虫子”或“杀虫子”。Area字段输入后存入cookiesBug一词的原意是“臭虫”或“虫子”。3检查city字段储存结果5检查ID字段储存结果但是现在,在电脑系统或程序中,如果隐藏着的一些未被发现的缺陷或问题,人们也叫它“Bug”,与Bug相对应,人们将发现Bug并加以纠正的过程叫做“Debug”,意即“捉虫子”或“杀虫子”。下面举例来说明这一点。(2)程序员的测试思路有局限性,在做测试时很容易受到编程思路的影响。5检查ID字段储存结果3、各种错误数据的测试 表1-3错误数据的测试用例测试内容输入操作预选测试数据预期输出实际结果点击登录按钮不完整的数据City,area,ID,pswd略提示错误对话框不正确的数据City,area,ID,pswd略提示错误对话框回车操作不完整的数据City,area,ID,pswd略提示错误对话框点击“退出”按钮无无无关闭当前应用系统随着测试的逐步深入,范围的逐步扩大,测试时间、可用资源也随之增大。误区1调试和测试是一样的必须组织使用者输入空白,同时部分字段只能输入数字以一个实现登录功能的小程序为例,它允许用户选择城市和地区,输入自己的账号和密码。未和后台数据库绑定(显示列表元素固定)2软件测试工作流程(2)程序员的测试思路有局限性,在做测试时很容易受到编程思路的影响。(1)在执行测试用例之前,应满足的前提条件。下面根据组成页面的具体元素,分别从几个方面做了一些比较全面的测试用例:(1)在执行测试用例之前,应满足的前提条件。焦点可准确回归当前操作窗口3集成测试、系统测试和验收测试阶段工作流程(2)输入(合理的、不合理的)。由小到大,指的是软件测试的粒度。以一个实现登录功能的小程序为例,它允许用户选择城市和地区,输入自己的账号和密码。图1-14设计&编码阶段测试流程图5检查ID字段储存结果4、特殊测试表1-4特殊测试用例测试内容输入操作预选测试数据预期输出操作焦点逃逸连续Tab切换,察看异常无焦点可准确回归当前操作窗口分配内存不足启动多个应用程序或模拟多个程序运行无是否可以正常运行网络断线切断网络连接无是否可正常抛出异常4.1.6注意错误集中的现象软件缺陷的“扎堆”现象的常见形式:1、对话框的某个控件功能不起作用,可能其他控件的功能也不起作用。2、某个文本框不能正确显示双字节字符,则其他文本框也可能不支持双字节字符。3、联机帮助某段文字的翻译包含了很多错误,与其相邻的上下段的文字可能也包含很多的语言质量问题。4、安装文件某个对话框的“上一步”或“下一步”按钮被截断,则这两个按钮在其他对话框中也可能被截断。4.1.7确认BUG的有效性 Bug一词的原意是“臭虫”或“虫子”。但是现在,在电脑系统或程序中,如果隐藏着的一些未被发现的缺陷或问题,人们也叫它“Bug”,与Bug相对应,人们将发现Bug并加以纠正的过程叫做“Debug”,意即“捉虫子”或“杀虫子”。遗憾的是,在中文里面,至今仍没有与“Bug”准确对应的词汇,于是只能直接引用“Bug”一词。有时候测试人员提交的BUG并不是真正的BUG。图4-5具体地描述了无效BUG的来源。一般由A测试人员发现的BUG,一定要由另外一个B测试人员来进行确认,如果发现严重的BUG可以召开评审会进行讨论和分析。图4-5无效BUG来源构成图4.1.8合理安排测试计划合理的测试计划有助于测试工作顺利有序地进行,因此要求在对软件进行测试之前所作的测试计划中,应该结合了多种针对性强的测试方法、列出所有可使用资源,建立一个正确的测试目标;要本着严谨、准确的原则,周到细致地做好测试前期的准备工作,避免测试的随意性。尤其是要尽量科学合理地安排测试时间。4.1.9回归测试错误之间存在单纯的依赖或者复杂的多重依赖关系,如图4-6所示。其中,(a)图中的A、B关系表达为:A错误依赖于B错误的关闭而关闭。如果多了一条路径(如(b)图中A、B、C关系),A错误依赖于B错误和C错误的同时关闭而关闭。(c)图是(a)和(b)的复合方式,因程序中的错误存在着一对多,多对多的复杂关系而变得难以处理,并且有些错误关联和依赖关系处于隐性状态。图4-6错误依赖关系4.1.10测试结果的统计和分析只有对输出信息进行深入地统计、分析和比较,才能够正确的鉴别测试后输出的数据,给出清晰的错误原因分析报告。当输出的信息很庞大时,我们可以借助专业的测试工具。4.1.11及时更新测试 事实上,有可能导致测试失败的原因还有很多,可大致归纳为如下几点:1、测试团队管理者失职;2、测试团队中沟通不好;3、测试团队和项目团队沟通不良;4、测试过程中,执行角色无准确定义;5、测试团队缺乏良好的培训。4.2软件测试工作流程一般的软件测试总体工作流程如图4-7所示:图4-7软件测试工作总体流程图4.2.1需求阶段图1-13需求阶段测试活动流程图需求阶段是软件测试活动的前提。需求阶段测试工作流程如图4-8所示:图1-14设计&编码阶段测试流程图4.2.2设计&编码阶段测试工作流程这一环节以模块为单位循环:单元测试方案制定——编码——单元测试是否通过——测试抽检是否通过,重新编写没有通过单元测试和测试抽检的代码。最终形成一份单元测试总结报告。具体流程如图4-9所示。4.2.3集成测试、系统测试和验收测试阶段

温馨提示

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

评论

0/150

提交评论