软件测试基本流程与要求

1、目标

  制定完整且具体的测试路线和流程,为快速、高效和高质量的软件测试提供基础流程框架。

  最终目标是实现软件测试规范化,标准化。

  2、测试流程说明

  3、测试需求分析

  测试需求是整个测试过程的基础;确定测试对象以及测试工作的范围和作用。用来确定整个测试工作(如安排时间表、测试设计等)并作为测试覆盖的基础。而且被确定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果。无法核实的需求不是测试需求。所以我现在的理解是测试需求是一个比较大的概念,它是在整个测试计划文档中体现出来的,不是类似的一个用例或者其他.

  ·测试需求是制订测试计划的基本依据,确定了测试需求能够为测试计划提供客观依据;

  ·测试需求是设计测试用例的指导,确定了要测什么、测哪些方面后才能有针对性的设计测试用例;

  ·测试需求是计算测试覆盖的分母,没有测试需求就无法有效地进行测试覆盖;

  3.1、测试方法与规范

  3.1.1、测试方法

  随着软件技术发展,项目类型越来越多样化。根据项目类型应选用针对性强的测试方法,合适的测试方法可以让我们事半功倍。以下是针对目前项目工程可以参考的测试方法:

  --β测试(beta测试)--非程序员、测试人员

  β测试,英文是Betatesting。又称Beta测试,用户验收测试(UAT)。

  β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

  当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。

  --α测试(Alpha测试)--非程序员、测试人员

  α测试,英文是Alphatesting。又称Alpha测试.

  Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。

  在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。

  --兼容性测试--测试人员

  兼容性测试是指测试软件是否可以成功移植到指定的硬件或者软件环境中,例如在B/S项目中各个不同浏览器之间的测试。

  --用户界面测试-UI测试 --测试人员

  用户界面测试,英文是User interface testing。又称UI测试。

  用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。

  用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图 片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性 测试。

  用户界面测试用户分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对 话框上所有按钮,文字,出错提示,帮助信息 (Menu 和Help content)等方面的测试。比如,测试Microsoft Excel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。

  --冒烟测试--版本编译者

  冒烟测试,英文是Smoketesting。

  冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。

  冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

  --随机测试--测试人员

  随机测试,英文是Adhoctesting。

  随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

  随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。

  --黑盒测试(功能测试)--测试人员

  黑盒测试,英文是BlackBoxTesting。又称功能测试或者数据驱动测试。

  黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。

  软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。

  --性能测试

  性能测试,英文是PerformanceTesting。

  性能测试是在交替进行负荷和强迫测试时常用的术语。理想的"性能测试"(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。性能测试一般包括负载测试和压力测试。

  通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memoryleak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。

  3.1.2、测试规范

  测试规范是根据开发规范而制定的测试标准,测试规范也是后期测试用例编写的重要依据。因为开发规范因公司而异,因产品而异,所以测试规范的标准程度每个公司都不一样。

  从理论到方法到各类流程到各类报告模版,都属于测试规范的范畴,当一整套规范形成之后,可使得测试工作进行更加稳健,所有问题有据可查。

  3.2、软件需求规格说明书

  软件需求规格说明书是软件达到的各项功能的目标。是测试人员各项工作的依据,没有需求就无法判断测试结果是正确的。

  3.3、软件设计说明(概要与详细设计)

  设计说明书包含软件的一些框架、字段、数据库设计等。软件设计说明对测试工作开展有很大影响,没有软件设计说明很多问题将无法溯源,测试准备的前期工作也是根据软件设计说明来制定的。

  3.4、页面原型(demo)

  页面原型是项目人员快速熟悉项目的最佳路径。在需求不够明确,设计说明书不够全面的情况下,页面原型也是后期测试用例编写思想的重要根据。

  4、测试过程设计

  明确测试目的,最终达成目的并验证结果是测试要做的事情。包括:

  1.测试范围:描述本次测试中的测试范围,如:测试软件功能范围、测试种类等。

  2.简单的描述如何搭建测试平台以及测试的潜在的风险。

  3.项目信息:说明要测试的项目的相关资料,如:输入输出文档,产品描述,软件主要功能。

  4.人力资源的分配。

  5.测试需求:笼统说,就是测试中的所有设计和需求文档。作为本次测试的依据

  4.1、测试策略制定

  这一阶段在于需求、详细设计、测试计划完成之后,主要是本次测试的策略阶段。很多公司少这个一个阶段,需要有计划性的分出产品的功能扣出测试的功能点,现阶段大多公司都是直接拿着文档就开始做用例设计。

  对需求进行分析,列出具体的功能列表。(一般根据功能交互文档就能明确出此功能的大体功能,一层层的分下去,一直到没个功能表单。然后考虑到使用那些测试方法?工作一旦做到执行阶段,我们可以更好的根据这些功能表一点一点的覆盖。也能让我们在用例评审时,充分的证实我们的工作是有效的能够保证产品的质量。)一般在此之前,一些业务培训和需求评审是有必要是听一下的。这样能够更早更熟练的理解需求,也能保证产品设计中出现的一些误区。

  对于一个个测试该如何进行测试?如下:

  a)功能测试

  ---功能范围(划分出各自负责的功能模块)

  ---使用测试方法(等价类、边界值等测试方法方法)

  ---测试标准(符合设计、需求和规范文档对该功能的描述)

  b)界面测试

  c)兼容性测试

  4.2、测试计划

  1)要充分考虑测试计划的实用性,即测试计划与实际之间的接近程度和可操作性。编写测试计划的目的在于充分考虑执行测试时的各种资源,包括测试内容、测试标准、时间资源、人力资源等等,准确地说是要分析执行时所能够调用的一切资源以及受各种条件限制,可能受到的各种影响。

  a)测试内容:对一个软件来说测试计划中会明确本次测试做哪些测试?

  如:系统测试:在整个系统测试中会有(界面测试、功能测试、性能测试、兼

  容性测试、安装卸载测试、可靠性测试等测试)。

  b)测试目的:一般多为保证产品质量是否达到预期的指标。这个指标也就是在测试中定义的结束标准。

  c)测试标准:需要考虑本次测试需要输入那些文档,该项目结束标准定义、测试结束标准的定义?bug级别定义、优先级定义、bug管理流程定义。这个都需要在执行测试事明确。计划中应该包含这些内容。

  d)资源分配:这里分为人力资源、软硬件资源等划分。一般会把人力资源的利用写入一个测试人员任务分配表里,按照不同的阶段,每个阶段提交相应的成果(难度很大)。软硬件资源中主要是在做计划时考虑到需要多少电脑或别的工具,列出清单。

  e)测试风险:大多考虑到的就是项目开发延期、测试人员不足用例无法全面覆盖测试点、时间不足用例无法全部执行、bug无法及时修改导致无法验证、测试人员技能不足导致测试进度拉长。

  f)软件测试策略一般都是分开来做相关测试方案。

  4.3、测试附件

  用例模板、缺陷报告模板

  测试环境的搭建

  缺陷管理流程和缺陷级别定义

  缺陷状态一般分为:新建、打开、已分配、已修复、关闭、重新打开,中间会有:延期、重复、拒绝等状态

缺陷管理流程:

  1.测试人员或开发人员发现bug后,判断输入哪个模块的问题,填写bug报告后,系统会自动通过Email通知开发组长和该模块开发者。

  2.开发组长根据具体情况,重新reassigned分配给bug所属的开发者。

  3.开发者收到email信息后,判断是否为自己的修改范围。

  若不是,重新reassigned分配给开发组长或应该分配的开发者。

  若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明)

  4.测试人员查询开发者已修改的bug,进行回归测试。

  经验证无误后,修改状态为verified。待整个产品发布后,修改为closed。

  还有问题,reopened,状态重新变为"new",并发送邮件通知。

  5.如果这个bug一周内一致没被处理过。Bugzilla就会一直用email骚扰它的属主,直接采取行动。管理员可以设定最迟采取行动的期限,比如3天,系统默认7天。

  5、测试实施

  5.1、执行

  开发就会转版本给我们测试部门进行系统测试了。拿到版本我们首先搭建测试环境

  做一个预测试,目的是来评断这个版本是不是可测试的。如果预测试不通过,打回开发部返工,如果通过了,就开始我们第一轮的系统测试。

  第一轮系统测试我们会执行我们所编写的所有测试用例,做好测试结果的记录,发现缺陷了提交缺陷报告。当第一轮测试结束后,我们把所有的bug单提交给开发人员,由他们进行修改。

  在他们修复bug期间,我们会对第一轮系统测试做一个测试评估,出一个测试报告。还要根据实际情况,对我们写的测试用例进行修改和增加。开发改bug结束,提交一个新的版本给我们,我们重新搭建测试环境开始第二轮系统测试。首先是回归我们提交的缺陷报告,然后会在用例中挑选一些优先级别比较高的用例来进行测试,发现问题了继续提交缺陷报告,只到缺陷率低于用户要求了,我们就进行最后一轮的回归测试,结束系统测试。具体测试轮次是根据版本质量和项目复杂度而决定的。

  6、测试评估

  ---执行阶段结束了进入测试评估阶段,我们会出一个总的测试报告对我们测试的这个过程和版本的质量做一个详细的评估

  1)需求需要评审那些?

  2)用例需要评审那些?

  3)计划应该评审那些?

  4)缺陷评审那些?

  5)bug评估?

  测试总结报告文档的输出:

  1、可以让具体的任务负责人对该本次测试中个人负责的模快进行评价,提出相关建议。给出总体的评估

  2、整体上的bug按照不同等级统计出来、用例数量、用例执行数量

  3、对项目中测试人力资源的统计。(单位:人/天)

  4、项目中软硬件资源统计。

  5、提出软件总体的评价。

  6.1、测试报告

  测试报告包括对软件功能的结论,说明为满足此项功能而设计的软件能力以及经过一项或多项测试已证实的能力。

  说明该项目软件的开发是否达到预定目标,是否可以交付使用。

  总结测试工作的资源消耗数据,如工作人员的水平级别数量、机时消耗等。

  记录测试结果与发现及本项目测试工作所得到的各项输出的承载体,根据输入与计划、要求的对比来总结此次项目所或得的经验.

时间: 2024-11-05 23:19:26

软件测试基本流程与要求的相关文章

软件测试的流程及策略

前几天刚考完软件测试,其中有一道题是与软件测试的策略有关,个人感觉对这方面还是比较薄弱,因此,想借这里总结一下软件测试的流程及策略. 一.软件测试流程: 软件测试的流程可以细分为四个阶段:单元测试,集成测试,确认测试(有效性测A试)和系统测试单元测试针对软件设计的最小单元A程序模块,进行正确性检验的测试工作.它的目的在于发现各模块内部可能存在的各种差错集成测试在单元测试的基础上,将所有模块按照设计要求组装成为系统进行测试.确认测试(有效性测试)验证软件的功能.性能和其它特性是否与用户的要求一致系

软件测试的流程 思考

我一直在思考像微软.IBM.谷歌.腾讯等这些公司的他们的测试流程与小公司的测试流程区别在哪里?每当想到这里感觉他们这样的公司的流程肯定会很神秘或许感觉这些公司他们有着很好的流程,其实我这里想说的软件测试的流程其实都是一样的,没有我们想的那么神秘,那么为什么这些公司的测试会做的很好呢?我的答案很简单: 1.拥有着健全的测试体制: 2.测试团队的执行力很强: 3.测试人员的态度和心理素质很强: 4.公司领导对测试的态度: 5.测试人员对时间的态度:分析一下小公司导致这些问题的现状:许多的小公司没有建

软件测试的目的、原则及流程

一.软件测试的目的 1)软件测试是为了发现错误而执行程序的过程. 2)测试是为了证明程序有错,而不是证明程序无错.(发现错误不是唯一目的) 3)一个好的测试用例在于它发现至今未发现的错误. 4)一个成功的测试是发现了至今未发现的错误的测试. 注意: 1.测试并不仅仅是为了要找出错误.通过分析错误产生的原因和错误的分布特征.可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进.同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性. 2.没有发现错误的测试也是有价值的,完整的测

软件测试入门

一.软件测试理解 1.软件测试是一种有效提高软件质量的手段,但是软件质量不仅仅是测试出来的. 2.好的测试人员不仅要掌握各种测试技术和工具,还要具备丰富的编程技术和对BUG的敏感. 3.软件测试要早做计划,分配好时间.人力.财力等资源. 4.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心准备的一批测试用例,并利用这些测试用例去执行程序,发现程序错误的过程. 二.软件测试对象 1.软件测试贯穿于软件定义和开发的整个期间.需求分析.概要设计.详细设计.以及程序编码的各个阶段所得到的文档

软件测试基础知识

软件测试基础知识 1.  软件质量与软件测试 软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档.数据以及程序进行测试 软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力 2.  软件测试与质量保证 软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作: 质量保证:通过预防.检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动

软件测试工程师具备技能

工作两年了,一直在做着APP测试,目前自己的技能离一名优秀的软件测试工程师还是有很大差距的. 按照我的理解,一名优秀的软件测试工程师需要具备的知识: 自动化测试工具:功能测试工具(mongkey.monkeyrunner等).性能测试工具(QTP.roadrunner.Jmeter等).测试管理工具(禅道.Bugfree等): 软件测试理论:软件测试基本流程.相关术语: 开发基础:数据库(SQL.Oracle).开发语言(Java.C.Python): 计算机基础:Windows操作系统.Lin

软件测试自学指导手册

近来,软件测试行业发展迅速,企业越来越重视测试了.越来越多的人加入了测试大军中,很多人也想通过自学来学习软件测试技术加入这个行业,但是现在软件测试的书籍越来越多,也良莠不齐,而且软件测试涉及的技术也越来越多.本次将指导童鞋如何进行自学,并大家提供一些比较优秀的书籍,并给出学习的顺序. 一.软件测试基础知识 要想进入测试这个行业,就必须要了解什么是软件测试,该如何测试? 这部分的学习目标:掌握软件测试的基本概念.软件测试的流程,并能熟练的应用常见的用例设计方法来设计测试用例.掌握常见的测试方法和类

软件测试自学指南---从入门到精通(转载)

一.软件测试基础知识 要想进入测试这个行业,就必须要了解什么是软件测试,该如何测试?这部分的学习目标:掌握软件测试的基本概念.软件测试的流程,并能熟练的应用常见的用例设计方法来设计测试用例.掌握常见的测试方法和类型,并知道如何进行每个阶段的测试.下面是推荐的参考书:1.软件测试(原书第2版) (美)佩腾(Patton,R.) 著,张小松 等译这本书可以用来作为进入行业的第一本书,本书讲解的都是实用的技术,通过阅读本书可以快速的去学会如何测试软件.个人建议,这本书至少要读3遍以上.看完这本书,自己

软件测试工作概述

一:软件测试工作流程 软件测试工作工程的详细流程图 二:软件测试阶段 阶段 输入和要求 输出 需求分析 市场/产品需求定义,分析文档和相关技术文档,要求:需求定义要准确,完整和一致,真正理解客户的需求 需求定义中的问题列表,批准的需求分析文档,测试计划书的起草 设计 产品规格设计说明,系统架构和技术设计文档,测试计划和测试用例,要求:系统结构的合理性,处理过程的正确性,数据库的规范化,模块的独立性,测试用例的有效性和完备性等,并清除定义测试计划的策略,范围,资源和风险 设计问题列表,批准的各类设