老徐关注于企业级软件测试的管理; 老徐关注于软件自动化测试的研究与探索; 老徐关注于软件性能测试的研究与探索; 老徐和大家分享软件测试进度管理、缺陷管理、质量控制等方面的经验。

发布新日志

  • 老徐:企业实施自动化测试的自动化测试策略简介

    2007-04-12 11:15:08

     

         最近老徐开始着手整理和完善“组织级软件自动化测试体系”,逐渐将部分内容共享给大家,期望和广大软件测试从业者及爱好者共同探讨。

         老徐也将逐步将部分内容放到本家的网站上www.testfocus.com.cn,供所有相关人员讨论!

    工作周期及阶段确定:组长初步确定工作周期,并定义自动化测试的阶段,例如需求分析/设计阶段,开发实现阶段,运行阶段,而运行阶段中要根据所属系统所处软件生命周期的不同阶段来定义自动化测试的运行周期,例如当前处于所属系统的运营维护阶段(上线之后),其每3个月进行一次新版本的发布,则自动化测试亦为每三个月执行一次。或其每周进行一次Build的发布,则自动化测试亦为每周执行一次。

       分析自动化测试风险:根据所属系统的开发平台、界面特性、测试环境搭建维护的难易程度、测试工具的适用性等方面的分析结果进行自动化测试风险的分析。主要从战略层面进行风险的分析,不要分析某个具体的自定义控件的可测试性。

       手工测试现状复审:依据手工测试现状分析报告中提供的已有业务测试过程进行业务需求覆盖度的分析,判断已有业务测试过程是否完整,若不完整则需要向测试管理部提出反馈:被测系统的手工测试现状尚不符合自动化测试的需求,请求是否延期并委托手工测试方完善业务测试过程。

       测试方法及工具确定:根据所属系统的特点和当前自动化测试组织的实施能力,确定自动化测试的方法,例如业务驱动方法、关键字驱动方法、数据驱动方法;另外要结合现有的软件自动化测试专用工具,判断采用何种自动化测试管理工具搭建自动化测试的管理平台、运行平台,或者是新开发一种框架来实现自动化测试。

       编写文档:自动化测试分析师编制《自动化测试工作策略》

       内部评审:组长组织自动化测试工作小组的内部评审

       外部评审:组长向自动化测试管理组的计划控制经理提出评审申请,计划控制经理组织自动化测试管理组的外部评审,评审《自动化测试策略》,需要项目组、自动化测试小组和质量控制经理共同参与评审。

       组长将评审通过的《自动化测试策略》纳入配置管理库。

  • 老徐:企业实施自动化测试的筹备工作简介

    2007-04-12 11:12:59

     

         最近老徐开始着手整理和完善“组织级软件自动化测试体系”,逐渐将部分内容共享给大家,期望和广大软件测试从业者及爱好者共同探讨。

         老徐也将逐步将部分内容放到本家的网站上www.testfocus.com.cn,供所有相关人员讨论!

    测试筹备活动用于在整体自动化测试活动执行开始前,判断项目可能达到的自动化率、分析项目的手工测试现状、协调资源初步建立自动化测试小组,应该包括以下内容。

    (一)    确定实施自动化测试的应用系统对象

    测试管理部门接受来自业务部门和开发部门的自动化测试的申请

    测试管理部门主动提出对某个已上线运营系统自动化测试的要求

    (二)    确定可能达到的自动化率目标

    计划控制经理使用自动化率分析模型判断自动化测试的可能达到的自动化率目标,编制《自动化测试的自动化率目标分析报告》

    (三)    分析手工测试的现状

    计划控制经理使用手工测试现状分析模型分析项目的当前手工测试状态,判断手工测试现状是否存在影响自动化测试可行性的情况,编制《自动化测试的手工测试现状分析报告》

    (四)    初步建立自动化测试小组

    计划控制经理根据自动化测试小组组长的可用资源指定自动化测试小组组长,将《自动化测试的自动化率目标分析报告》和《自动化测试的手工测试现状分析报告》传递给自动化测试小组组长

    计划控制经理与自动化测试小组组长共同确认:启动“项目级自动化测试流程”

  • 老徐新做的性能测试计划模板

    2007-04-12 11:03:12

     

          性能测试计划是在性能测试模型建立完成后开始制订的。

           它里面的内容很简单,就是所谓的“5W1H”

                              5W1H是指

                              ①When何时 ②Who何人 ③Where何地

                              ④What何事 ⑤Why为什么 ⑥HOW如何进行

                            性能测试计划是一种战术规划;


                 它作为整个性能测试工作的实施方案,

                 它继承测试策略,

                 为了保障性能测试工作的方向正确性和完成及时性,

                 同时也为性能测试工作提供可实施的测试阶段和测试步骤。

                 它是测试方案的依据,同时也是所有相关测试活动的依据。


     

     

     

     

     

    [系统名称]

     

     

    性能测试计划

     

    V1.0

     

     

     

     

     

     

     

    文档编号:

     

    项目名称:

     

        写:

     

    编写日期:

     

        核:

     

    审核日期:

     

        准:

     

    批准日期:

     

     

     

     

    修订状况

    章节编号

    章节名称

    修订内容简述

    修订日期

    修订前

    版本号

    批准人

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    目录

    1、引言...................................

    2、参考文档.............................

    3、工作目标.............................

    4、........................................

     

    一、引言

         1、编写目的

         2、项目背景〔引用性能测试策略中的“项目背景”

    二、参考文档

         1、开发资料列表〔为了编写性能测试计划所需的文档

         2、测试资料列表〔为了编写性能测试计划所需的文档

         3、其它相关资料列表〔为了编写性能测试计划所需的文档

    三、总体工作起止日期

         1、总体工作开始日期

         2、总体工作结束日期

    四、阶段划分和详细任务

         1、性能测试准备阶段

            1-1、测试环境准备

             (a)被测系统基础环境〔5W1H

             (b)被测系统应用部署〔5W1H

             (c)负载模拟环境〔5W1H

             (d)监控/诊断环境〔5W1H

            1-2、测试数据准备

             (a)基础测试数据〔5W1H

             (a)虚拟用户数据〔5W1H

            1-3、测试程序准备

             (a)性能测试脚本〔5W1H

             (a)性能测试场景〔5W1H

             (a)其他特殊程序(时间戳、挡板)〔5W1H

         2、性能测试执行阶段

            2-1、性能诊断测试执行子阶段

             (a)基准测试场景集合〔5W1H

             (b)负载测试场景集合〔5W1H

             (c)峰值测试场景集合〔5W1H

             (d)压力测试场景集合〔5W1H

             (e)稳定性测试场景集合〔5W1H

            2-2、性能调优测试执行子阶段

             (a)基准测试场景集合〔5W1H

             (b)负载测试场景集合〔5W1H

             (c)峰值测试场景集合〔5W1H

             (d)压力测试场景集合〔5W1H

             (e)稳定性测试场景集合〔5W1H

            2-3、性能检测测试执行子阶段

             (a)基准测试场景集合〔5W1H

             (b)负载测试场景集合〔5W1H

             (c)峰值测试场景集合〔5W1H

             (d)压力测试场景集合〔5W1H

             (e)稳定性测试场景集合〔5W1H

         3、性能测试分析阶段

            3-1、性能测试数据整理与保存〔5W1H

            3-2、性能测试数据分析与评估〔5W1H

            3-3、性能测试分析报告的编制〔5W1H

            3-4、性能测试总结报告的编制〔5W1H

    五、性能测试风险分析及规避方法

         1、脚本风险

     风险编号 风险描述  风险发生概率  影响严重程度  责任人  规避方法  最终决策人 
         〔高、中、低〕  〔高、中、低〕      
                 
                 
                 

         2、数据风险

     风险编号 风险描述  风险发生概率  影响严重程度  责任人  规避方法  最终决策人 
         〔高、中、低〕  〔高、中、低〕      
                 
                 
                 

         3、业务风险

     风险编号 风险描述  风险发生概率  影响严重程度  责任人  规避方法  最终决策人 
         〔高、中、低〕  〔高、中、低〕      
                 
                 
                 

         4、环境风险

     风险编号 风险描述  风险发生概率  影响严重程度  责任人  规避方法  最终决策人 
         〔高、中、低〕  〔高、中、低〕      
                 
                 
                 

         5、监控风险

  • 老徐新做了一个用于培训的性能测试策略模版,分享一下

    2007-04-12 09:57:00

    性能测试策略的意义和用途

           在进行完性能测试的各项调研之后,性能测试人员已经对性能测试工作需求有了框架上的了解。

           此时,制订性能测试策略的意义凸显出来,它应该是整个性能测试项目的战略级规划。

           即,本次性能测试项目的工作目标是什么?

           一般包括两种目标:

                (a)按时完成性能测试工作

                        最典型的例子,大领导说了:一定要在月底之前完成上线模拟的性能测试工作

                (b)按质完成性能测试工作

                        最典型的例子,大领导说了:一定要保证系统上线后的性能质量

             工作目标是性能测试策略中的重中之重。

             它决定了性能测试工作的不同实施思路。

                (a)按时完成,就要力保时间,可以在资源不足、时间不足等资源有限的情况下,只要确保一个最低质量保障标准即可

                (b)按质完成,就要力保测试的覆盖度,要想尽办法测试最多的方面。

     

     性能测试策略的模板

     

     

    [系统名称]

     

     

    性能测试策略

     

    V1.0

     

     

     

     

     

     

     

  •  风险编号 风险描述  风险发生概率  影响严重程度  责任人  规避方法  最终决策人 
         〔高、中、低〕  〔高、中、低〕      
    &nbs

    文档编号:

     

    项目名称:

     

        写:

     

    编写日期:

     

        核:

     

    审核日期:

     

        准:

     

    批准日期:

     

     

     

     

    修订状况

    章节编号

    章节名称

    修订内容简述

    修订日期

    修订前

    版本号

    批准人

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    目录

    1、引言...................................

    2、参考文档.............................

    3、工作目标.............................

    4、........................................

     

    一、引言

         1、编写目的

         2、项目背景

    二、参考文档

         1、开发资料列表〔为了编写性能测试策略所需的文档

         2、测试资料列表〔为了编写性能测试策略所需的文档

         3、其它相关资料列表〔为了编写性能测试策略所需的文档

    三、工作目标

         1、按时完成(可选

         2、按质完成(可选

    二、测试性质

         1、性能检测测试(可选

         2、性能诊断测试(可选

         3、性能调优测试(可选

    三、整体工作起止日期

         1、开始日期

         2、结束日期

    四、性能测试范围

         1、业务范围〔一般以子系统为依据进行范围的确定

         2、技术范围〔一般以系统的技术架构为依据进行范围的确定

    五、性能测试工具

         1、负载模拟工具〔工具名称、厂商、成本、获得方式等

         2、系统监控工具〔工具名称、厂商、成本、获得方式等

         3、网络监控工具〔工具名称、厂商、成本、获得方式等

         4、数据库监控/诊断工具〔工具名称、厂商、成本、获得方式等

         5、应用平台监控/诊断工具〔工具名称、厂商、成本、获得方式等

         6、定制开发工具〔开发责任方、成本等

    六、性能测试脚本开发方法

         1、录制/增强脚本〔可选

         2、手工开发脚本〔可选

    七、性能测试阶段划分以及里程碑定义

         1、性能测试模型设计阶段

              里程碑定义〔里程碑名称、里程碑时间等

         2、性能测试计划阶段

              里程碑定义〔里程碑名称、里程碑时间等

         3、性能测试准备阶段

              里程碑定义〔里程碑名称、里程碑时间等

         4、性能测试执行阶段

              里程碑定义〔里程碑名称、里程碑时间等

         5、性能测试报告阶段

              里程碑定义〔里程碑名称、里程碑时间等

         6、性能测试总结阶段

              里程碑定义〔里程碑名称、里程碑时间等

    八、性能测试的参与各方信息

         1、项目管理方〔负责人、接口人、联系方式

         2、业务方〔负责人、接口人、联系方式

         3、开发方〔负责人、接口人、联系方式

         4、功能测试方〔负责人、接口人、联系方式

         5、性能测试方〔负责人、接口人、联系方式

         6、基础设施方〔负责人、接口人、联系方式

    九、测试环境需求

         1、软件需求〔类型、描述、到位时间、到位方法

         2、硬件需求〔类型、描述、到位时间、到位方法

    十、启动/暂停/恢复/结束的准则

         1、启动准则〔规定整体测试工作在具备了哪些条件之后才能开始

         2、暂停准则〔在测试过程中,当某些测试执行需要的条件不再具备时,需要暂停测试的执行

         3、恢复准则〔在测试过程中,当暂停后,需要的条件获得满足时,测试可以再次启动

         4、结束准则〔在测试过程中,整体测试工作达到了哪些目标或者获得了哪些结果之后才能停止

    十一、性能测试的高级风险分析与规避方法

     风险编号 风险描述  风险发生概率  影响严重程度  责任人  规避方法  最终决策人 
         〔高、中、低〕  〔高、中、低〕      
                 
                 
                 


     

  • 老徐:对软件测试人员工资的一点看法!

    2007-03-08 09:59:49

     

       个人认为软件测试人员在初期选择软件测试职业的时候,重点应该放在软件测试的能力锻炼和软件测试项目经验的积累上。这个时间应该在开始软件测试职业后的1年到1年半左右。

       当你进入软件测试岗位后,在当前的行业背景下,你的工资可能在2000~3000左右。建议你在这个阶段不要把心思放在如何如何增加你的工资上,而是集中你的所有精力如何快速的打好软件测试的基础、多参加项目、多经历。1年半后,你的工资大概在4000左右。

       同老徐共事过的软件测试人员大概在300人左右,在测试人员的工资情况上老徐还是有一定的发言权的。

       如果你选择的是性能测试这一个软件测试职业工种时,而你又具备了非常强的软件开发能力,你的最佳成长方式就是多多的参与各种软件测试项目,当然这个“各种软件测试项目”指的是大型的软件项目的性能测试工作,例如银行的各种大型应用系统、移动的大型应用系统、税务的大型应用系统、网通/电信的中大型应用系统等,在这个成长过程中还要发挥你的自学和刻苦精神,不断的学习诸如不同类型的操作系统(包括HP UNIX、Windows、Linux、IBM AIX等)、应用平台(包括Bea WebLogic、IBM WebSphere、Oracle IIS等)、数据库(Oracle、SqlServer、Sybase),对于这些,你不需要精通,但是要熟悉它,了解在性能测试中监控它的方法,掌握它的基本性能诊断方法,能向软件开发项目组提供有建设性的调优意见。

       我见过很多软件性能测试人员的发展历程,这当中有几个符合上面的最佳成长方式的人员,他们的工资在三年间从3000多快速的增加到了12000以上。

     

  • 老徐:性能测试工具LR的学习启动方法

    2007-03-07 12:38:55

     

    性能测试的实施成功性来源于对系统用户行为的正确分析;

    而性能测试的执行成功性来源于性能测试脚本和性能测试场景的开发正确性;

    因此,性能测试工具的操作正确性和熟练程度导致了性能测试脚本和性能测试场景的开发正确性;

    例如,在LR中,参数化、检查点、事务、动态数据关联、场景启动方式的设置等,都会对性能测试脚本和性能测试场景的开发存在正确性的影响。

    老徐的个人建议:

    当你学习Loadrunner的工具操作方法时,先花一周的时间练习LR的基本操作技能,例如事务的添加、测试数据的参数化、检查点的添加、动态数据的关联等,在练习这些基本的操作技能的时候,你不需要了解事务能用来做什么、参数化能用来做什么、检查点能用来作什么、动态数据关联能解决什么问题,只需要练习操作工具,学会这些内容的操作方法。

    当你熟练掌握了工具的基本操作方法后,再去学习和理解事务是为了获得用户关心的响应时间、检查点是为了确保获知性能测试执行是否成功、参数化是为了给大量虚拟用户提供不同的测试数据,模拟实际情况、动态数据关联是为了适应服务器处理结果的变化性,等等

    这样的方法练习性能测试工具,是一个事半功倍的方法

    个人建议,请多指教

     

  • 老徐:自动化测试实施时的关键概念

    2007-03-06 20:44:33

     

      在进行自动化测试实施时,由于要涉及软件开发方、业务方、手工测试方、自动化测试方、测试管理方等不同的机构或单位,尤其是业务方的人员和软件测试的人员对软件测试的认识处于不同的理解层次,因此,需要自动化测试的实施组事先对自动化测试中要使用的一些概念向各个机构或单位普及,才能使大家在脑海中建立相同的概念范畴,使得自动化测试的实施事半功倍。

      我把曾经在建立自动化测试体系的过程中规定的一些主要的自动化测试名词分享给大家,以期参考:)

    (1)测试需求:

      是指在一定的测试策略前提下,对应于验证某个系统的业务需求或功能需求的测试要求


      对应于不同的测试目的,分为验证业务过程的流程类测试需求和验证功能点的功能性测试需求


      对于功能性测试需求的业务规则是指测试功能点的属性描述,包括数据规则、业务逻辑规则、用户操作(输入和输出)的约束规则等;

      对于流程性测试需求的业务规则主要是指业务流程分支条件,及其对应的流程处理逻辑规则。


      在自动化测试体系中,测试需求按照树型结构进行组织,树上存在叶节点和非叶节点

    (2)交易分支:

      基于确定的交易,是交易执行中一个不可再分顺序路径。


      一般而言,一个交易被执行的时候,存在多个执行路径。例如:对于活期续存,信用卡续存、借记卡续存就是不同的执行路径。


      一个交易分支,就是一个交易的栏位的输入执行序列,包括在什么位置、输入数据的类型、限制约束、有效条件、格式要求等。

    (3)业务组件:

      一种易于维护且可重复使用的单元,该单元包含执行特定任务的一个或多个步骤。


      一个业务组件一般映射到一个交易分支,是自动化测试体系中颗粒度最小的工件


      定义业务组件的目的是为了封装固定的测试执行步骤,在测试过程中以“引用”的方式进行调用和复用,以减少测试过程设计开发的工作量

      在自动化测试系统中,业务测试过程对业务组件的一次“引用”也是业务组件的一次实例化过程


      业务组件是一系列执行步骤,可以在不同测试过程中因为不同的目的(如边界值,无效等价值,有效等价值)使用不同组的数据完成输入,得到不同的业务组件实例。


      业务组件可能需要来自外部源或其他组件的输入值,并可向其他组件返回输出值

    (4)业务过程:

      业务过程是对业务流的实现


      业务过程是一组交易分支的序列,不是一个孤立的行为,如一次任务,一次输入或一次输出,而是以为用户带来附加值的输出或结果告终的一系列活动。


      例如:以开户交易开始,然后存款到相应的账户,最后能查询到此笔存款结束。


      一个业务过程对应于相应业务流中的一条“路径”即一个业务规则
    需要注意的是,业务过程是不存在由于业务逻辑不同而产生的分支的,如果在业务流程中存在分支,则应该拆分为不同的业务过程

    (5)业务测试过程:

      每个业务测试过程完成一个对流程类测试需求叶子节点的具体验证。

      每个业务测试过程是独立的,不允许嵌套,并且之间没有关系,业务测试过程原则上是可以独立执行的完整“业务流”。


      业务测试过程之间的关系是间接的,通过测试需求组合在一起的。


      业务测试过程由关联在一起的一系列业务组件组成,这些业务组件都需要在业务测试过程中指定明确的执行时输入、输出数据,以及业务组件和业务组件之间的数据依赖关系、顺序依赖关系、时序依赖关系等关联。
    可以说,业务测试过程是一组具有依赖关系的业务组件,和执行时数据的集合。

    (6)测试运行计划:

      主要描述为完成系统的测试,按照测试方案的设计思想,参照业务测试过程,如何对业务测试过程进行组织,以及执行时的先后组合操作顺序及业务测试过程间的关联数据


      (原则上不建议按照测试过程间有关联来设计测试)。

      如果测试方案或测试过程发生变化,则要对运行计划进行及时的更新

  • 老徐对自动化测试风险的理解(九)

    2007-03-05 12:25:32

  • 老徐对自动化测试风险的理解(八)

    2007-03-05 12:24:57

  • 老徐对自动化测试风险的理解(七)

    2007-03-05 12:24:30

  • 老徐对自动化测试风险的理解(六)

    2007-03-05 12:24:01

    暂无
  • 老徐对自动化测试风险的理解(五)

    2007-03-05 12:23:35

  • 老徐对自动化测试风险的理解(四)

    2007-03-05 12:22:47

  • 老徐对自动化测试风险的理解(三)

    2007-03-05 12:22:14

  • 老徐对自动化测试风险的理解(二)

    2007-03-05 12:21:35

  • 老徐对自动化测试风险的理解(一)

    2007-03-05 12:18:17

  • 老徐最近翻译的Mercury“最佳功能测试实践”-第四部分

    2007-03-04 16:23:07

    1       测试组

    测试组需要由以下人员组成:

    u          测试项目经理(可以是业务分析师或者业务代表),负责进行测试的管理和作为测试组的代表。

    u          测试人员(具有业务知识的人员),负责描述测试案例和定义/选择测试数据。

    u          自动化专家(QTP专家),负责依据测试人员提供的信息创建测试自动化的脚本。

  • 老徐最近翻译的Mercury“最佳功能测试实践”-第三部分

    2007-03-04 16:22:17

    1.1    测试准备

    测试的准备是一个独立的、分离的阶段,测试员在这个阶段中基于需求文档准备测试(业务设计图)。

    测试的准备要依据标准的方法,并应基于本阶段的工作生成标准化的文档。

     

    1.1.1   业务功能测试

    基于风险评估,针对每个业务功能的不同风险级别都应有一个对应的测试过程和方法组合:

    1)A级风险

    利用等价类和组合进行系统性的测试

    完全自动化

    2)  B级风险

    利用等价类进行系统性的测试

           完全自动化

    3)  C级风险

    随意性测试

    手工执行,在TestDirector中提供文档化的执行过程

           对于每个测试过程和方法组合,要提供一个标准的文档进行方法论级的阐述和规定,每个测试人员依据这些标准的测试过程和方法组合进行测试。

    TestDirector中要将测试用例的准备结果作为业务功能的附件。

    1.1.2   业务流程测试

    业务流程测试是将所有的业务功能组合在一起,使用同一组数据进行工作。

    测试员的任务就是要确定每个业务功能的组合是否能连贯的执行。

    判断的结果使用矩阵来表示,例如下图:

    注:yes+);no-

    业务流程矩阵

     

     

    1

    2

    3

    4

    5

     

     

     

    登陆

     

    航班

    查询

     

    航班

    预定

     

    退出

     

    注册

     

             后功能

    前功能

    1

    登陆

    -

    +

    -

    +

    +

    2

    航班查询

    -

    +

    +

    +

    -

    3

    航班预定

    -

    +

    -

    +

    -

    4

    退出

    +

    -

    -

    -

    -

    5

    注册

    +

    -

    -

    -

    +

     

    从上面的表中我们能获得三个业务流程测试案例:

    1)        12232411

    2)        154

    3)        1234

    1.1.3   业务集成测试

    使用现有的回归测试案例进行业务集成测试。

    在第一个阶段,测试案例仅被自动化,而不考虑测试的覆盖率。

    在第二阶段,测试案例将被改进,以提高测试的覆盖率。

    对于所有的新项目,回归测试应该在业务功能测试阶段和业务流程测试阶段的测试结果的基础上进行建设。

    依据业务流程矩阵创建测试案例集,这个测试案例集应该能覆盖被测系统的所有外部接口。

    假定我们的被测系统是Mercury的机票预定系统,它的架构图如下:

     

    业务流程矩阵的设计如下图:

     

    在业务集成测试阶段中的测试案例开发

     

     

    1

    2

    3

    4

     

     

     

     

    预定一个航班

     

    打印机票

     

    查看(866) 评论(0) 收藏 分享 管理

  • 老徐最近翻译的Mercury“最佳功能测试实践”-第二部分

    2007-03-04 16:20:18

    1.1    测试策略和计划

    在制定测试策略时,要基于被测软件的质量目标。质量目标就是测试的需求。它们决定了测试的阶段和质量的目标。要想最优化测试的活动并制定一个切实可行的测试计划,需要将被测软件分解成为一个一个的业务功能。在进行业务功能分解时,要以黑盒的方法来看待被测软件的功能,即独立于软件的实现方法。若想计算测试的效果并且保证测试的活动适合于特定业务的需要,则需要引入风险评估的手段。

    1.1.1   需求

    测试的必要条件是要确定预期结果或者需求。

    为了能更好的了解需求,将需求进行分类是非常有帮助的。

    以我们的观点,可以将需求分为功能性需求和质量需求(非功能性需求)。

    功能性需求描述了在业务上期望如何使用新的软件系统,且该系统中应该包括哪些功能。

    质量需求包括的是软件系统的通用特性,且独立于功能。

    1.1.1.1             功能性需求

    功能性需求以业务设计图的方式记录于文档中。

    为了在TestDirector中将需求作为测试的基础,需要将需求导入到TestDirector中。

    相应的业务设计图作为需求的附件存在,并作为将来测试活动的依据。

    1.1.1.2             质量需求

    质量需求由两部分构成,

    一部分是为整个产品或者项目定义的质量目标,

    另一部分是每个业务功能的质量需求,

    这些业务功能的质量需求取决于风险评估的结果。

    1.1.1.2.1       质量目标

    1)适应性

    组件被修改以适应新需求的难易程度。

    2)完整性

    组件实现所有需要的能力的程度。

    3)正确性

    a)        组件在规格分析、设计和实现过程中无错误的程度

    b)        组件满足需求或者用户需要与期望的程度

    c)        基于给定输入产生相应输出的能力,并且这个过程符合或者满足需求

    4)有效性

    当组件完成指定任务时,能最少使用所需资源的程度。

    5)可维护性

    组件被修改以纠正错误,提高性能或其他属性,或者适应被改变了的环境的难易程度

    6)模块性

    软件系统由离散的组件组成的程度,即改变一个组件时能将对其他组件的影响降至最低。

    7)可移植性

    软件系统或组件能被转移到其他硬件平台或者软件平台上的难易程度。

    8)可靠性

    组件在一定的时间内、一定的条件下执行所需完成功能的能力。

    9)可用性

    用户对软件组件的理解和操作的难易程度。

    1.1.1.2.2       业务功能的质量需求

    业务功能的质量需求是依据业务的风险进行定义的。

    业务风险和技术复杂度的信息存储在测试的需求中。

    这两个参数决定了测试的程序和测试的工作量。

    另外,针对业务功能分配测试员,并且将测试活动的当前状态落实到纸面上。

    只有这样做才能在针对业务功能的整个测试过程中监控测试的状态。

     

    1.1.2   测试阶段的定义

    依据已经定义的质量目标,我们需要将测试阶段进行合理的划分。

    通常情况有以下几个阶段:

    1)开发员自测试阶段(不在我们的考虑范围之内)

    2)业务功能测试(单元测试)

    3)业务流程测试(应用级的集成测试)

    4)业务集成测试(端到端的集成测试)

    5)性能测试

    6)系统集成测试

    下面的表中描述了每个测试阶段需要达到的质量目标:

     

    业务功能测试和业务流程测试是在软件项目开发过程中完成的。

    而业务集成测试和系统集成测试则组合成回归测试,用于软件系统上线前或者发布为产品前来检验软件的质量。

    1.1.3   质量门

    测试是在不同的阶段中完成的。

    划分不同阶段的原因就是将不同的质量目标分配到不同的阶段中,从而能将测试的执行尽可能的提前。

    所以,在相邻的测试阶段中设置一个质量门就成为保障成功的关键要素。

    下面的图中展示了每两个相邻阶段的质量门是如何设定的:

     

     

    下面是对质量门的一种详细定义:

    1)在业务功能测试之后

    u          业务功能测试的测试用例执行了80%以上

    u          业务功能测试的测试用例(A级风险)执行了100%

    u          少于5个服务器端错误

    u          少于30个中级错误

    u          无致命性缺陷

    2)在业务流程测试之后

    u          业务功能测试通过

    u          业务流程执行了100%

    u          无业务流程完全失效,所有的错误都可以被修复

    u          无致命性缺陷

    3)在业务集成测试之后

    u          业务流程测试通过

    u          业务集成流程执行了100%

    u          无致命性缺陷

    1.1.4   功能分解

    在计划测试活动之前,功能分解应该作为第一个要完成的活动。

    进行功能分解时,应该邀请业务方面和需求分析方面的代表共同参加。

    通常情况下,要遵从下面的原则:

    1)        每个用户情形都是一个业务功能

    2)        如果一组用户情形非常相似,那它们应该组合在一起形成一个业务功能

    3)        如果一个用户情形非常大或者非常复杂,则应该将其分解为两个或者更多的业务功能

    进行功能分解的思路体现在“将测试的单元确定为包含少量功能点的单位”,

    这样,每个测试单元的测试用例的数量就会被限制在一定的范围之内。

    我们可以将分解的目标设定为每个业务功能只有最多30-40个测试用例。

    1.1.5   风险评估

    既然质量保证的基本思路是降低缺陷破坏业务的风险,同时为了确保质量保证的资源得到充分的利用,我们需要对每个业务功能进行风险的评估。

    还要考虑到的是,我们也要对技术影响进行分析。

    这样我们能对完成每个业务功能的测试活动所需的工作量进行估算。

     

    1.1.5.1             业务风险分析

    业务风险评估需要针对被测软件的所有业务功能。

    评估的标准应该在整个业务的范围内是唯一的,才能在企业范围内使不同的评估结果具有可比性。

              结果

    标准

    A

    高级风险

    B

    中级风险

    C

    低级风险

    流程的类型

    计算/验证

    数据的改变

    显示

    业务影响

    合法性

    错误信息

    使用频度

    非常频繁

    经常

    极少

    受影响客户的数量

    大量/非常重要

    查看(968) 评论(0) 收藏 分享 管理

  • 老徐最近翻译的Mercury“最佳功能测试实践”-第一部分

    2007-03-04 16:14:42

    1       概述

           本测试过程作为功能测试的最佳实践,用于实施不同机构的功能测试工作。它可以作为测试计划工作的基础,应用于每个软件开发的项目。在这个测试过程中描述的活动既可以用于新开发的组件,亦可以用于改进现有的回归测试。

    2       测试管理

    为了能顺利地获得测试的结果,将测试作为独立管理的过程是非常必要的。测试管理可以分为下面四个领域。

    1)测试计划

    2)测试执行

    3)测试控制

    4)测试过程改进

    用于支持测试管理各个领域的工具可以采用TestDirector

  • 351/212>

    数据统计

    • 访问量: 37559
    • 日志数: 35
    • 建立时间: 2007-03-03
    • 更新时间: 2007-04-12

    RSS订阅