谈软件测试

上一篇 / 下一篇  2010-08-20 21:33:37

摘要:本文就软件产品质量、测试目的、测试过程、测试准备、测试技巧等方面进行探讨。

主题词:软件质量软件测试

  在软件应用领域不断扩展和深入的今天,软件产品的质量显得尤为重要。它将决定一个软件企业的成与败。软件质量就是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和(ISO 9126)。影响软件质量的因素有许多,例如:

  ●质量体系的完备性

  ●开发人员的能力

  ●开发过程的控制

  ●开发技术的先进性

  为了提高软件产品质量,除加强以上方面的工作外,更要加强软件产品测试。因为软件测试工作是保证软件产品质量的关键,是对需求分析、设计和编码的最后复核,是软件企业的重要工作。

  一、测试目的

  软件测试就是发现软件产品缺陷的过程。软件产品中的缺陷是如何产生的呢?主要是信息转移造成的。因为信息在开发的各个阶段都会被'变形',越是到最后环节,产品所含信息与最初定义出入越大。例如:

  ●需求人员对用户需求理解的偏差

  ●设计人员对需求理解的偏差

  ●编程人员对设计理解的偏差

  ●测试人员对产品理解的偏差

  所以,一个产品从最初定义到最后用户使用,整个过程都应存在信息偏差纠正。但是软件测试只能证明软件存在缺陷,不能证明软件不存在缺陷,所以测试的目的是使软件产品中缺陷降低到一定程度,而不是彻底消灭,并使软件开发的收入支出比达到最大化,为客户带来更大的利益。

  二、测试过程

  测试工作具有复杂性、创造性、需要综合能力的特点。一个规范的测试过程应当包含以下几个步骤。

  a) 根据产品开发计划,拟定软件测试计划

  b) 根据产品需求与设计编制软件测试方案

  c) 根据产品使用说明,准备软件测试环境

  d) 根据产品测试方案,设计测试案例

  e) 根据测试方案和测试案例进行测试

  f) 测试结束编写测试报告

  一个完整的测试过程与产品开发过程应当是迭代进行的,将测试工作认为是产品开发完成才可以进行的工作是不正确的。测试过程与代码开发过程是两个 独立的过程,相互影响,相互驱动。测试过程根据产品开发阶段的不同,可分为模块测试、联调测试、集中测试、发版测试。测试人员根据能力的不同应当细分为测 试设计人员和测试操作人员。测试设计人员应当对产品明确需求和隐含需求、产品使用有深刻的理解,具备丰富的测试经验,能够独立编写测试方案和测试用例。测 试操作人员应当对产品需求和产品使用有相当的了解,能够根据测试方案和测试案例进行测试。下面就各测试阶段进行一下阐述:

  1.模块测试

    测试角色:程序员

    主要测试依据:产品详细需求与设计、测试用例

    测试要求:主要检测模块功能实现正确与否

    阶段特征:该阶段因为进行的是黑、白盒测试,所以对功能的完备性测试效果最好。需要注意的是测试用例设计一定要到位,但又不能过多,使功能的核心内容得到最佳测试。

  2.联调测试

    测试角色:测试操作人员

    主要测试依据:测试案例

    测试要求:主要检测相关模块接口实现正确与否。

    阶段特征:该阶段测试准备中,测试用例主要以模块间接口为核心进行设计,重点分析清楚接口内容、控制状态、分析结果等,同时考虑正向与逆向要求。该阶段测试结果的好坏直接影响产品流程的使用。

  3.集成测试

    测试角色:测试设计人员、测试操作人员

    主要测试依据:产品需求、测试方案、测试案例

    测试要求:主要检测测试项目,抽测产品各功能的正确性、内外部相关接口正确性,流程正确性。

    阶段特征:该阶段是所有测试阶段中工作量最大的阶段,需要详细规划和设计。在测试方案设计方面力求全面;在测试计划方面力求可行。

  4.发版测试

    测试角色:产品专家、测试设计人员、测试操作人员

    主要测试依据:验收测试方案、前面各阶段测试报告

    测试要求:主要检测产品缺陷度,检查前期测试过程的有效性,以及产品发版质量相关要求。

    阶段特征:该阶段主要以验收为主,总结各类测试总结报告,从不同维度进行全面分析产品测试质量,最终给出产品测试结论。

  三、测试准备

  在软件测试过程中,测试人员如何最有效的测试,是测试研究工作的重点之一。为此,可以从以下几个方面进行准备。

  ●测试策略准备

  不同规模产品测试策略不同;不同版本产品测试策略不同;不同形式产品测试策略不同,这些测试策略中核心位置在哪里,要首先进行定位。只有定位清 楚核心位置,后续一切测试工作才有目标。所以在接到一个测试项目以后,测试策略的分析准备工作必须先行,而且要有资深测试专家进行,一般人员是做不了的。

  ●测试方案准备

  在测试策略确定以后,测试方案随即就可以开始确定。测试方案要围绕测试策略的核心进行编写,突出重点,覆盖全面。业务核心算法复杂处要特别指明,以便测试用例编写时有指导作用。

  ●测试用例准备

  测试用例是测试方案的具体体现,是测试人员测试过程中的直接依据。凡是设计到需要数据测试的内容,必须编写对应数据。数据要能够覆盖测试要点内 容。针对核心算法或复杂内容,要进行拆分编写,便于执行。该用例编写要在高层次测试人员指导下完成,切莫交给一般人员完成,否则风险会很大。在一个测试用 例中,考虑产品功能的数量不宜过多,应以测试人员实际情况而定,但在考虑功能的使用条件时,应当尽可能的充分。一个好的测试用例能够发现很多个错误,相 反,测试用例测试出的问题数越少,越表明测试用例有问题。这个问题应当从两个方面考虑,一个是测试用例的质量方面,另一个是测试用例的使用阶段方面。所以 高质量的测试用例测试出的问题总数比低质量的测试用例测试出的问题总数一定多。另外测试用例在不同测试阶段的使用效果是不一样的。相同测试用例随测试阶段 由前向后使用,测试出问题的数量应当是逐渐减少的。

  ●测试计划准备

  测试计划的制定首先要依据开发计划进行。每一项具体任务点时间安排、资源安排是否合理,取决于任务的复杂度和对任务的理解程度,所以安排计划工 作一般由项目测试经理来完成。测试计划安排工作是一项系统工程,安排是否合理直接影响测试进度与开发进度。编制者最好使用'鱼刺图'法编制。依据测试策略 的核心内容安排,找到'鱼'身上的主刺,然后依据项目进度安排逐一安排'鱼刺',这样做即全面,又有重点,同时工期安排也最合理。

  ●测试资源准备(人员)

  测试资源准备是一项长期工作。它要求测试人员即要精通业务知识,又要掌握测试方法,同时又要有良好的沟通能力。这些基本能力的培养不是一朝一夕 就能够培养出来的。目前软件企业的测试资源形式有:自己公司的正式测试人员、外包人员测试人员、实习学生等。人员流动比较频繁,对产品测试质量影响很大。 如何在短期内迅速提高测试资源的业务能力是测试资源准备的一项重要课题。所以培训、考试、反讲是培养测试人员业务能力的主要手段。另外,笔者就此课题做了 深入研究,并在我公司使用了,取得了不错的效果。在此不在细述。

  四、测试技巧

  谈到测试技巧,每个测试人员都也许能够说出一二。但是能够谈的深入,全面的就不多了。测试技巧的掌握与测试时间基本成正比,测试时间越长,测试 技巧掌握的越丰富,也就测试经验越丰富。软件产品形式的不同,对应的测试方法与测试技巧也会有所不同。技巧的取得来源于培训;来源于实际测试工作;来源于 测试人员自身的悟性;来源于向同行学习等。下面就我的测试经验做一点介绍。

  点、线、面测试法:

  点、线、面测试法的精髓是:点线结合,面中掌握。首先谈一下'点'测试。所谓的'点'就是产品的某个具体功能点。在设计时测试用例考虑尽可能地 充分,在测试时,暂时不考虑点与点接口情况,使该具体功能不涉及接口的内容测试全面。其次,'线'测试,所谓的'线',就是将两个有接口关系的'点'联动 测试正向、逆向检查,并且将所有'线'测试做好测试记录。当然测试用例设计时,'线'的测试用例力求穷尽,因为代码分支复杂,有些内容是无法全部测试的。 所以线测试,也就是接口测试是很复杂的。最后'面'测试,所谓的'面'就是全面测试,在'线'测试完成之后,检查所有'点'测试,'线'测试的用例是否执 行完毕,开始考虑整个产品的项目测试,比如:并发测试、互斥测试、效率测试、权限测试、场景测试、异常测试等等。当然点、线、面三者在实际工作中没有严格 界限,根据产品情况可以交叉进行,最终目的是使产品测试质量达到要求。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 51247
  • 日志数: 105
  • 图片数: 2
  • 建立时间: 2010-03-13
  • 更新时间: 2011-02-11

RSS订阅

Open Toolbar