新闻资讯
看你所看,想你所想

第三方测试

第三方测试

第三方测试有别于开发人员或用户进行的测试,其目的是为了保证测试工作的客观性。从国外的经验来看,测试逐渐由专业的第三方承担。同时第三方测试还可适当兼顾初级监理的功能,其自身具有明显的工程特性,为发展软体工程监理制奠定坚实的基础。第三方测试工程主要包括需求分析审查、设计审查、代码审查、单元测试、功能测试、性能测试、可恢复性测试、资源消耗测试、并发测试、健壮性测试、安全测试、安装配置测试、可移植性测试、文档测试以及最终的验收测试等十余项。

基本介绍

  • 中文名:第三方测试
  • 有别于:开发人员或用户进行的测试
  • 目的:为了保证测试工作的客观性
  • 类型:对软体企业的CMM评估认证等

概述

测试并不仅仅是为了要找出错误。测试方还需要对错误进行归类和总结,通过分析错误产生的原因和错误的分布特徵,可以帮助项目管理者发现当前所採用的软体过程的缺陷,以便改进,更好地帮助用户。根据软体工程的要求,测试工作应贯穿开发的全过程,如右图所示。
从测试流程中可以看出,编码和单元测试基本上属于程式的调试,一般由开发方自己进行。作为第三方测试,定位在系统测试和集成测试最为有效。但是,为了得到高质量的软体,第三方也要适当介入编码与单元测试,能够更好地保证测试的有效性、準确性和可信性。
测试评估是软体测试的一个阶段性的结论,用所生成的测试评估报告,来确定测试是否达到完全和成功的标準。在测度评估阶段向用户提供强有力的支持,包括通过测试报告,验证测试结果是否符合测试计画中制定的测试标準;根据缺陷报告提供的测试结果数据,给出软体质量和测试完整性的评估报告;特别在以下几方面对测试的过程进行评测:
(1)评估测试用例覆盖:测试的目标是确保100%的测试用例全部成功地执行。如果这个目标可行或不可能达到,则要根据不同的情况制定不同的测试覆盖标準。主要考虑风险和严重性、可接受的覆盖百分比。
(2)评估代码覆盖:需要断定测试目标期望的总的测试代码行数,在测试中真正执行的代码行数及其百分比,将此结果记录在测试评估报告中。
(3)分析缺陷:对缺陷进行分析,应遵照缺陷分析策略中制定的分析标準。
最常用的缺陷分析标準有三种:缺陷分布——缺陷数量作为随缺陷属性变化的函式(如状态和级别);缺陷趋势——缺陷数量作为以时间为条件的函式;缺陷滞留——特殊的缺陷密度报告,缺陷数量与缺陷在某一状态保留的时间长短有关。
(4)确定测试是否达到完全和成功的标準在此阶段将判定测试是否已达到完全并可接受,生成测试结果报告。

作用

第三方测试以契约的形式制约了测试方,使得它与开发方存在某种‘对立’的关係,所以它不会刻意维护开发方的利益,保证了测试工作在一开始就具有客观性。第三方一般都不直接参加开发方系统的设计和编程,为了能够深入理解系统,发现系统中存在得问题,第三方测试必须按软体工程的要求办事,以软体工程的标準要求开发方和用户进行配合,从而较好地体现软体工程的理念。引入第三方测试后,由于测试方相对的客观位置,由用户、开发方、测试方三方组成的三角关係也便于处理以往用户、开发方双方纠缠不清的矛盾,使得许多问题能得到比较客观的处理。
第三方测试不同于开发方的自测试。由开发人员承担的测试存在很多弊病,除去自身利益驱使带来的问题外,还有许多不客观的毛病,主要表现在思维的定势上。由于他熟悉设计和编程等,往往习惯于按一定的“程式”考虑问题,以至思路比较局限,难于发现“程式”外存在的问题。因为第三方测试的目的就是为儘量多地发现程式中的错误而运行程式的过程,可以更多的发现问题。此外,随着系统越做越大,客观上讲开发人员也无精力参与测试,同时也不符合大生产专业分工的原则。
第三方测试不同于用户的自测试。用户是套用软体需求的提出者,对于软体应该完成的功能是非常清楚的,是进行功能验证的最佳人选。客观情况是,大部分的用户都不是计算机的专业人士,很难对系统的内部实现过程进行深入的分析。对系统的全面测试,功能测试仅仅是一个方面,还要包括并发能力、性能等多种技术测试。这些测试对技术有很高的要求,必须由计算机的专业人员才能完成。
第三方测试一般还兼顾初级监理的职能,不但要对套用进行各种测试,还进行需求分析的评审、设计评审、用户类文档的评审等,这些工作对用户进行系统的验收以及推广套用都非常有意义。

组织管理

在测试的过程中,用户、开发方与测试方形成了一个三角关係,从最终目标来讲,三方是完全一致的,都是希望保证系统稳定运行。但在测试过程中,三方的关係却是既对立又合作。对立是指各自坚持自己的职责,合作是指每一方的工作都需要其它两方的支持和帮助。
为了保证测试的顺利进行,测试方必须强化内部的组织管理。根据我们的经验,完整的测试机构必须包括业务分析部门、技术支持部门、规划设计部门和综合后勤部门。例如在中国现代化支付系统第三方测试项目当中,信息化工程总体研究中心的人员分工大致是:部分人员专攻支付业务,部分人员专攻技术支持,部分人员负责测试规划与综合案例的设计,部分人员负责现场情景调度,部分人员从事案例的细化与运行。测试结果表明,总体上达到了各司其职、忙而有序。

分类

根据软体的特性,第三方软体测试工程可划分为三种类型五个层次。

三种类型:

1、系统软体、环境软体和各类工具软体等的测评。这类软体多作为计算机的环境或作 “公用” 支撑软体,产品类型多、市场销量大、生产厂商多,产品的特点大都有企业、甚至国际的产品质量标準,用户选择使用时大都希望进行产品功能、性能的对比测试;对于这类软体的评测重点是软体产品的功能、性能和特点评测。
2、面向套用软体系统的测评。这类软体,具有很强的行业套用特性,往往是要由用户与开发商签定项目契约,开发商负责开发,用户负责验收。对这类软体的评测,根据用户对第三方的依赖程度,又可分为两个层次。
承担该类软体质量监理评测的第三方,承担软体过程质量监理的责任,在软体生命周期过程中,从软体定义开始,要对软体过程从质量保证角度进行规範化的监督、管理和控制。评测工作不仅包括软体生命周期各阶段的评审,而且还要对程式系统,进行包括模组白盒测试在内的系统集成、系统验收等测试。山东省软体评测中心在长期从事第三方测试的实践中总结出:第三方实际上是软体业主授权的初级的软体工程监理。
3、是对软体企业的CMM评估认证,也是最高层次的软体评测。

五个层次:

山东省软体评测中心提出,第三方测试应该贯穿项目开发的全过程。对编制的程式进行集成测试、系统测试、模拟测试、验收测试,可以及时发现项目实施过程中存在的问题及其缺陷,儘早提出修改和完善的可行方法及措施,从而促进项目按预定的进度、质量要求顺利实施。常见的分类方式将其划分为五个层次:
1、单元测试:单元测试是对软体中的基本组成单位进行的测试,如一个模组、一个过程等等。它是软体动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软体基本组成单位的正确性。一个软体单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基準。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。
2、集成测试:集成测试是在软体系统集成过程中所进行的测试,其主要目的是检查软体单位之间的接口是否正确。它根据集成测试计画,一边将模组或其他软体单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。
3、系统测试:系统测试是对已经集成好的软体系统进行彻底的测试,以验证软体系统的正确性和性能等满足其规约所指定的要求,检查软体的行为和输出是否正确并非一项简单的任务,它被称为测试的 “ 先知者问题 ” 。因此,系统测试应该按照测试计画进行,其输入、输出和其他动态运行行为应该与软体规约进行对比。软体系统测试方法很多,主要有功能测试、性能测试、随机测试等等。
4、验收测试:验收测试旨在向软体的购买者展示该软体系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软体系统的购买者代表在现场,甚至是在软体安装使用的现场。这是软体在投入使用之前的最后测试。
5、回归测试:回归测试是在软体维护阶段,对软体进行修改之后进行的测试。其目的是检验对软体进行的修改是否正确。这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软体的其他功能的正确性。

转载请注明出处海之美文 » 第三方测试

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com