您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于H模型的软件测试管理应用模型
由安博测试空间技术中心提供1软件测试管理模型近年来,随着对软件测试的不断深入,对于各个测试阶段的理解加深,软件测试管理模型不断地发生演化,其中最具有代表性的测试管理模型有三种:V模型、W模型和H模型。V模型的特点就是根据瀑布模型的阶段划分,对于没一个阶段进行针对性的测试,这种划分很简单,也容易进行管理,如图一所示。V模型揭示了软件测试活动的分层和分阶段的本质特性。但也存在一些问题,容易让人行程“测试是开发之后的一个阶段”,“测试的对象就是程序”等误解。实际应用上,也容易导致需求阶段隐藏的错误一直到最后的验收测试才被发现,这可能导致软件开发的不可控。W模型是V模型自然而然的发展,他强调:测试伴随着整个开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试,如图2所示。这样,只要相应的开发活动完成,我们就可以开始执行测试,可以说,测试与开发时同步进行的,从而有利于尽早的发现问题。以需求为例,需求分析一完成,我们就可以对需求进行测试,而不必等到最后猜猜进行针对需求的验收测试。然而,无论是V模型还是W模型,都存在不妥之处。他们都把软件的开发视为需求、设计和编码等一系列的串行活动。事实上,虽然这些活动之间存在着互相牵连的关系,但在大部分时间,它们都是互相独立的,但是可以并发进行的。虽然软件开发期望有清晰的需求、设计和编码等阶段,但实践告诉我们,严格的阶段之分只是一种理想的状况。所以相应的测试也不存在严格的先后次序,只要测试条件满足,就可以(或需要)进行测试。H模型则有所不同,如图3所示。它仅仅演示了在整个测试周期中,某个层次上的一次测试“微循环”。图中的其他流程可以是任何开发流程,例如设计流程和编码流程,也可以是其他非开发的流程,例如SQA流程,甚至是测试流程自身。向上的箭头表示,在某个时间点,由于“其他流程”的进展而引发或者出发了测试就绪点,这个时候,只要测试准备活动完成,测试执行活动就可以或需要进行了。概括的说吗,在H模型中,软件测试是一个独立于其他流程,贯穿于整个产品生命周期,与其他流程并发的进行,当某个测试事件点就绪时,软件测试即从测试准备阶段进入测试执行阶段。H模型兼顾效率和灵活性,可以被应用到各种规模、各种类型的软件项目上。2基于H模型的软件测试管理应用模型基于H模型虽然兼顾效率和灵活性,但他没有提出具体的应用模型,基于这个理论基础我们根据WfMC所定义的工作流的概念预定义,将工作流引入到H模型中,并构造出一个以人物分配为驱动的软件测试管理应用模型。1.工作流工作流执行服务是工作流管理系统的核心,工作流执行服务提供了一个运行环境,在这个环境中,利用一个或多个工作流管理引擎进行过程实例化或激活,通过与必要的外部资源进行交互负责解释和激活部分或全部过程定义。它由一个或多个创建、管理和执行工作流程实例化的工作流引擎组成,应用程序通过工作流应用程序接口来访问这种服务。(1)工作流引擎:工作流引擎负责工作流执行服务中的部分或全部运行控制环境,它为工作流实例提供运行环境。(2)过程与活动的状态变迁:工作流执行服务可以被看做一台状态转换自动机,它的过程或活动实例根据外部事件或工作流引擎的特定控制决定来改变状态。2.软件测试管理应用模型根据当今软件企业普遍采用的开发模式,结合可行性和易用性,我们可以围绕H模型为基础并结合W模型,针对实际工作情况,建立如图4所示软件测试管理应用模型。测试过程控制的基本流程是:○1由测试人员建立用例库,当合格的用例完成后,即可作为测试任务分配的对象。○2任务分配触发测试执行工作流,由测试人员执行测试及测试报告,若测试确认无错误,相关测试用例对象关闭;若测试有错误产生相关缺陷。○3产生的缺陷经过审核时一个待修正缺陷,则可作为修正任务分配的对象。若审核为暂不修复或无法修复,则可以直接设置为“挂起”结束测试控制过程。○4任务分配出发缺陷修正执行工作流,由程序员进行修正执行及修正报告,若修正确认完成后,进入回归测试状态。○5回归测试工作流开始执行,则回到○2,如此反复直至“关闭”。软件测试方法由安博测试空间技术中心提供随着软件测试技术的发展,测试方法更加多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。以下是一些常用的软件测试方法:β测试_Beta测试β测试,英文是Betatesting。又称Beta测试,用户验收测试(UAT)。β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。α测试_Alpha测试α测试,英文是Alphatesting。又称Alpha测试.Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。可移植性测试可移植性测试,英文是Portabilitytesting。又称兼容性测试。可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。用户界面测试-UI测试用户界面测试,英文是Userinterfacetesting。又称UI测试。用户界面,英文是Userinterface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。用户界面测试用户分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息(Menu和Helpcontent)等方面的测试。比如,测试MicrosoftExcel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。冒烟测试冒烟测试,英文是Smoketesting。冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。随机测试随机测试,英文是Adhoctesting。随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。本地化测试本地化测试,英文是Localizationtesting。本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。本地化能力测试本地化能力测试,英文是Localizabilitytesting。本地化能力测试是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力侧是通常在软件的伪本地化版本上进行。本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了国定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。国际化测试国际化测试,英文是Internationaltesting。又称国际化支持测试。国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。国际化支持测试是指验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的WindowsXP和MicrosoftWord能否展示阿拉伯字符串?用阿拉伯版的WindowsXP和阿拉伯版的MicrosoftWord能否展示阿拉伯字符串?又比如,日文版的MicrosoftExcel对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。安装测试安装测试,英文是Installingtesting。安装测试是确保软件在正常情况和异常情况下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。异常情况包括磁盘空间不足、缺少目录创建权限等场景。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。白盒测试-结构测试-逻辑驱动测试白盒测试,英文是WhiteBoxTesting。又称结构测试或者逻辑驱动测试。白盒测试是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒测试常用工具有:Jtest、VcSmith、Jcontract、C++Test、CodeWizard、logiscope。黑盒测试-功能测试-数据驱动测试黑盒测试,英文是BlackBoxTesting。又称功能测试或者数据驱动测试。黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。黑盒测试常用工具有:AutoRunner、winrunner、loadrunner。自动化测试自动化测试,英文是AutomatedTesting。使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。通过录制测试脚本,然后执行这个测试脚本来实现测试过程的自动化。国内领先的自动化测试服务
本文标题:基于H模型的软件测试管理应用模型
链接地址:https://www.777doc.com/doc-2569977 .html