文档库 最新最全的文档下载
当前位置:文档库 › 软件测试的流程

软件测试的流程

软件测试的流程
软件测试的流程

软件测试的流程

V1.2版

无锡超正软件有限公司二零一六年七月

1、图覆盖问题

图是测试中最常用到的结构,测试通常打算以某种方式去“覆盖”图。

1、图的定义:

(1)节点的集合N,N为非空

(2)起始结点的集合N0,N0非空

(3)终止节点的集合N f,N f非空

(4)边的集合E ,每个边表示从一个节点连到另一个;( n i , n j ), i 是前驱, j 是后继2、与图相关的概念:

(1)路径: 一个节点序列[n1, n2, …, nM],任何一组相邻的节点都表示一条边

(2)长度: 路径中边的个数,一个单独节点的路径长度是0

(3)子路径: 路径p中的一个由若干个节点组成的自序列叫做p的子路径

(4)可达(n),Reach (n) : 从节点n开始,有子路径可以达到某个节点,就程那个节点从n节点可达

(5)测试路径:一个从起始节点出发到达终止节点的路径。测试路径表示了测试用例的执行:一些测试路径会被许多测试执行;一些测试路径不会被任何测试执

(6)SESE图:所有的测试路径都从唯一的一个节点出发,到另一个节点终止。

1)单一入口,单一出口

2)N0和N f分别是有且只有一个

(7)访问& 遍历

1)Visit (访问):如果n在路径p中,那么测试路径p访问了节点n

2)Tour(遍历):如果边e在路径p中,那么测试路径p访问了边e (8)测试&测试路径

1)path (t):测试t所执行的路径

2)path (T):由测试集T执行的测试路径集

3)每一个测试执行且仅执行一条测试路径。

4)如果图中有一个边的序列表示从一个地址到另一个地址,那么就说这个地址(节点或者边)可以从另外一个地址可达。

1、Syntactic reach(语义可达):图中存在某个子路径

2、Semantic reach(实际可达):一个测试可以执行这个子路径

3、确定性软件(Deterministic software)–测试总是执行同一个路径

4、不确定性软件(Non-deterministic software)–测试执行不同路径

(9)测试&图覆盖

1)在测试中,我们按一下方法使用图

2)测试需求(TR):描述了测试路径的属性

3)测试准则:规定和定义了测试的需求

1、Structural Coverage Criteria (结构化覆盖准则): 只是按照节点和边来

定义图

2、Data Flow Coverage Criteria (数据流覆盖准则): 要求一个图用变量的

引用来注解

3、节点覆盖与边覆盖

(1)节点覆盖(NC):测试集T 满足对图G的节点覆盖当且仅当对于N中每一个语义

可达的节点n,path(T)中都有一些路径p可以访问到。即,TR 包含图G中每

一个可达的节点

(2)边覆盖(EC):TR 包含了图G中每一个可达的长度最多为1的路径(“长度最多为1”允许只有一个节点和一条边的图的存在)

(3)边覆盖比节点覆盖稍强

(4)NC 和EC 只是当两个节点之间有不同的字路径连接时不同(比如说“if-else”语句)

4、多边覆盖:

(1)边对覆盖(EPC):TR 包含了图G中每一个长度最多为2的可达路径(“长度最多为2”表示包括含有少于2条边的图)。边对覆盖要求一对边,或者说长度为2

的所有子路径都要被覆盖

(2)全路径覆盖(CPC):TR 包含图G中的所有路径。逻辑的延伸时要求多有的路径都被覆盖

(3)具体路径覆盖(SPC):TR 包含了一个测试路径集合S,S被看作是一个参数

5、图中的循环:

(1)如果一个图包含了一个循环,那么它便有了无数多个路径。所以,CPC是不可行的;SPC不甚理想,因为这个结果是主观的,因测试人员而异(2)Simple Path (简单路径):一个从节点ni到nj 的路径,当它除了第一个和最后一个节点相同的时候,没有其他节点出现次数多于1次,那么这个节点是简单

路径。

1)没有内部循环

2)包含了其他所有的子路径

3)一个循环是一个简单路径

(3)Prime Path(基本路径): 一个简单路径,满足其不会是任何其他简单路径的子路径。

(4)基本路径覆盖:TR包含了图G中的所有基本路径

1)要求循环被执行而且可以被跳过的一种简单的、优雅地、有限的规则

2)可以遍历长度为0、1…的所有路径。即,它包含了节点覆盖和边覆盖(5)Round-Trip Path : 一个起点和终点是同一个节点的基本路径

1)Simple Round Trip Coverage (SRTC):对于图G中每一个可达的节点,TR 包含了至少一个这个节点的round-trip路径

2)Complete Round Trip Coverage (CRTC):对于图G中的每一个可达的节点,TR 包含了所有round-trip路径

3)这个规则忽略了不再round trip中的节点。即,他们不包括边对覆盖、边覆盖和节点覆盖

(6)Touring、Sidetrips & Detours

1)基本路径中不包括内部循环,但是测试路径中有可能会有内部循环的存在

2)Tour With Sidetrips(旁道遍历):测试路径p旁道遍历子路径q如果p和q 边序列顺序相同,只要测试路径可以返回到同一个节点,那么便可以使用旁

道遍历

3)Tour With Detours(绕道遍历):测试路径p旁道遍历子路径q如果p和q 节点序列顺序相同,只要测试路径可以返回到之前节点的后面一个节点,那

么便可以使用绕道遍历

6、图的种类:控制流图、设计结构图、有限状态机和状态图、用例图

7、不可施行的测试需求:

(1)不可施行的测试需求不可能被满足

1)不可达的语句

2)只有当一组相互矛盾的条件满足的时候,才可能被执行的语句(2)大多数准则包含着不可施行的测试需求

(3)许多时候需求是否可施行难以判断

(4)当不允许使用旁道遍历时,会产生更多的不可施行测试需求;但是一直允许旁道遍历会弱化测试准则

2、代码覆盖

1、基本概念回顾:

(1)图:通常是控制流图(CFG)

(2)节点覆盖:执行每一条语句

(3)边覆盖:执行每一个分支

(4)循环:循环结构,如for循环、while循环等等

(5)数据流覆盖:CFG的增强版

1)Defs(定义)指的是为变量分配数值的语句

2)Uses(使用)指的是使用变量的语句

2、控制流图(CFG):

一个CFG通过控制结构模型化了一个方法的执行过程

(1)节点:语句或者语句序列(基本块)

(2)边:控制的转移

(3)基本块:一个语句序列,表示的是如果第一个语句被执行,所有的语句都会被执行(没有分支)

(4)CFG通常还会注有其他的信息:分支判断、变量定义、变量使用

3、将语句转化为图的规则:

(1)If语句:

(2)if-Return语句:

(3)while循环和for循环:循环允许添加“额外”的节点,不表示语句或者基本块的节点

(4)do循环, break 和continue:

(5)case (switch) 结构

4、路径覆盖的特征:

(1)在以路径为特点的软件程序代码中的起点和终点之间经常会有许多可能路径。

(2)每一个决策都会使潜在的路径数量变成原先的两倍;

(3)每一个Case语句都会使潜在的路径数量变为原先的数量乘以Case的分支数量;

(4)每一个循环都会使潜在的路径数量变为原先数量乘以循环中迭代器可能值的个数那么多

5、基本路径测试:基本路径测试是路径测试和分支测试的结合,这类测试满足了分支测试

的需求,并且测试了在这个计算机程序中所有被用来构建任何随机路径的独立路径

(1)基本路径测试过程:

1)画出一个控制流图

2)计算圈复杂度

3)选择一个路径的“基本集”

4)生成测试用例去执行每一个路径

(2)控制流图:

1)用于控制流或者数据流测试

2)图中每个点代表程序中的一系列序列运算,而每条边,代表两个节点之间的一个转移

3)CFG上的路径:点的序列或者边的序列的完整路径

4)对于一个测试集合来说,如果流图中的任意一个完整路径都是测试集合的线性组合,那么这个测试集合满足基本路径覆盖

(3)圈复杂度

1)计算方法:V(G)= e – n + 2 = d + 1

2)理论推导结果:

1、若CFG中的所有路径都是可行的,则存在V(G)条线性独立的完整路径,

且其它路径可由这些路径线性表示。

2、若CFG中的存在不可行的路径,那么判断程序是否存在V(G)条基本路径

是不可判定的。

3)各种测试强度比较:Path Testing>=BPT>=Branch Testing

6、源代码的数据流覆盖

(1)数据的定义:将一个数值存在内存中一个存储单元的过程

特征:

1)变量x出现在赋值符号的左边

2)变量x作为实参传入一个方法中,并且在函数中它的值被改变

3)变量x是函方法的一个正式参数(在方法开始时被隐式定义)

4)变量x是程序的一个输入

(2)数据的使用:访问变量数值时访问某个内存地址的过程

1)变量x在赋值符号的右边

2)变量x出现在条件判断中

3)变量x是一个方法的实际参数

4)变量x是程序的输出

5)变量x是方法中return语句中返回的值

(3)def (n)或def (e):一组变量在节点或者边中被定义

use (n)或use (e):一组变量在节点或者边中被使用

(4)DU Pairs和DU Paths:

1)DU pair(定义-使用对):一对代码地址(li,,lj),变量v在li 中被定义,在lj中被使用

2)Def-clear:一个从li到lj的路径,对于变量v来说,如果在从li到lj的过程中的任何节点和任何边中,变量v没有被重新赋值,那么就认为从li到lj的

路径是def-clear的

3)Reach(到达):如果变量v有一个从li到lj之间def-clear的路径,那么就说在li处对变量v的定义可以到达lj

4)Du-path:对于变量v,从v被定义到v被使用过程中的一个def-clear的简单子路径

5)du (ni, nj, v):从ni节点到nj节点之间所有DU path的集合

6)du (ni, v):从ni节点出发的所有DU path的集合

7、数据流准则

(1)覆盖类别:

1)All-defs coverage (ADC):对于du-path的每一个集合S = du (n, v),TR包含了S中的至少一条路径d(确保了所有被定义的变量被使用)

2)All-uses coverage (AUC):对于du-path的每一个要被使用的集合S = du (ni, nj, v),TR包含了S中的至少一条路径(确保每个定义能够到达所有可能的使用)3)All-du-paths coverage (ADUPC):对于每个集合S = du (ni, nj, v),TR包含了S 中的所有路径(覆盖定义和使用之间的所有路径)

3、测试工具

1、测试工具简介

(1)LR:LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能

够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测

试时间,优化性能和加速应用系统的发布周期。LoadRunner是一种适用于各种

体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner

的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性

能监测,来帮助您更快的查找和发现问题。此外,LoadRunner能支持广泛的协

议和技术,为您的特殊环境提供特殊的解决方案。

(2)QTP:QuickTest Professional,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此

你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步

骤、输入数据和期望的输出数据等。目前已经被惠普收购,正式名字为HP

QuickTest Professional software 。HP QuickTest Professional 提供符合所有主要应

用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念已简化测

试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功

能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环

境来取得对测试和对象属性的完全控制。QTP进行功能测试的测试流程[制定测

试计划]——>[创建测试脚本]——>[增强测试脚本功能]——>[运行测试]—

—>[分析测试结果] 大致五个步骤。

(3)QC:Quality Center是一个基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷,

如下图所示。此外,通过Quality Center还可以创建报告和图来监控测试流程。

Quality Center是一个强大的测试管理工具,合理的使用Quality Center可以提高

测试的工作效率,节省时间,起到事半功倍的效果。利用HP-Mercury Quality

Center,您可以:1.制定可靠的部署决策。2.管理整个质量流程并使其标准化。3.

降低应用程序部署风险。4.提高应用程序质量和可用性。5.通过手动和自动化

功能测试管理应用程序变更影响。6.确保战略采购方案中的质量。7.存储重要

应用程序质量项目数据。8.针对功能和性能测试面向服务的基础架构服务。9.

确保支持所有环境,包括J2EE、.NET、Oracle 和SAP。

(4)TD:TestDirector是全球最大的软件测试工具提供商Mercury Interactive公司生产的企业级测试管理工具,也是业界第一个基于Web的测试管理系统,它可以在您

公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集

成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪

等功能,TestDirector极大地加速了测试过程。TestDirector能消除组织机构间、

地域间的障碍。它能让测试人员、开发人员或其它的IT人员通过一个中央数据

仓库,在不同地方就能交互测试信息。TestDirector将测试过程流水化——从测

试需求管理,到测试计划,测试日程安排,测试执行到出错后的错误跟踪——

仅在一个基于浏览器的应用中便可完成,而不需要每个客户端都安装一套客户

端程序。程序的需求驱动整个测试过程。TestDirector 的Web 界面简化了这些

需求管理过程,以此您可以验证应用软件的每一个特性或功能是否正常。通过

提供一个比较直观的机制将需求和测试用例、测试结果和报告的错误联系起来,从而确保能达到最高的测试覆盖率。

(5)BugFree:BugFree是借鉴微软的研发流程和Bug管理理念,使用PHP+MySQL独立写出的一个Bug管理系统。简单实用、免费并且开放源代码(遵循GNU GPL)。

命名BugFree 有两层意思:一是希望软件中的缺陷越来越少直到没有,Free嘛;

二是表示它是免费且开放源代码的,大家可以自由使用传播。

(6)QALoad:QALoad(1).测试接口多;(2)可预测系统性能;(3)通过重复测试寻找瓶颈问题;(4)从控制中心管理全局负载测试;(5)可验证应用的扩展性;(6)快速创

建仿真的负载测试;(7)性能价格比较高。此外,QALoad不单单测试Web应用,

还可以测试一些后台的东西,比如SQL Server等。只要它支持的协议,都可以测

试。

(7)JMeter:JMeter是一个专门为运行和服务器负载测试而设计、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种

各样的测试模块。它和HTTP和SQL(使用JDBC)的模块一起运行。它可以用来测

试静止或活动资料库中的服务器运行情况,可以用来模拟服务器或网络系统在

重负载下的运行情况。它也提供了一个可替换的界面用来定制数据显示,测试

同步及测试的创建和执行。

(8)WAS:WAS是Microsoft提供的免费的Web负载压力测试工具,应用广泛。WAS 可以通过一台或者多台客户机模拟大量用户的活动。WAS支持身份验证、加密

和Cookies,也能够模拟各种浏览器和Modem速度,它的功能和性能可以与数

万美元的产品媲美。

(9)ACR:ACT或称MSACT,它是微软的Visual Studio和Visual https://www.wendangku.net/doc/da17836160.html,带的一套进行程序压力测试的工具。ACT不但可以记录程序运行的详细数据参数,用图表显

示程序运行情况,而且安装和使用都比较简单,结果阅读叶很方便,是一套较

理想的测试工具。

(10)OpenSTA:OpenSTA它的全称是Open System Testing Architecture。OpenST的特点是可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设

置功能完备的软件。但是,这些设置大部分需要通过scrīpt来完成,因此在真

正使用这个软件之前,必须学习好它的scrīpt编写。如果需要完成很复杂的功

能,script的要求还比较高。当然这也是它的优点,一些程序员不会在意编写script

的。

(11)PureLoad:PureLoad一个完全基于Java的测试工具,它的script代码完全使用XML。所以,编写script很简单。它的测试包含文字和图形并可以输出为HTML

文件。由于是基于Java的软件,因此PureLoad可以通过Java Beans API来增强

软件功能。

(12)WinRunner:WinRunner企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行,自动执行重复任务并优化测试工作,从而缩短测试

时间。通过自动录制、检测和回防用户的应用操作,从而提高测试效率。(13)Rational Robot:Rational Robot我经常使用的测试工具,属于Rational TestSuite 中的一员,对于Visual studio 6编写的程序支持的非常好,同时还支持Java Applet、

HTML、Oracle Forms、People Tools应用程序的支持。要支持Delphi程序的测试

还必须下载插件。Rational Robot的语法使用Basic语法,它的语言使用SQABasic。

(14)Functional Tester:Functional Tester它是Robot的Java实现版本,在Rational被IBM收购后发布的。在Java的浪潮下,Robot被移植到了Eclipse平台,并完全

支持Java和.net。可以使用https://www.wendangku.net/doc/da17836160.html,和Java进行脚本的编写,当然了录下脚本让

后做做修改是最爽的事情了。由于支持Java,那么对测试脚本进行测试也变成

了可能。

(15)JUnit:JUnit是由Erich Gamma 和Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因

为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功

能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。JUnit

是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。他是用于

单元测试框架体系xUnit的一个实例(用于java语言)。它包括以下特性:1、用

于测试期望结果的断言(Assertion);2、用于共享共同测试数据的测试工具;3、

用于方便的组织和运行测试的测试套件;4、图形和文本的测试运行器。

2、漏洞检测工具

(1)SSS:一款俄罗斯出的专业的安全漏洞扫描软件(Shadow Security Scanner)来自俄罗斯的安全扫描工具,来自俄罗斯的老牌安全扫描软件.这是一款非常专业的

安全漏洞扫描软件,功能非常强大,是网络安全人员必备软件之一.能扫描服务器

各种漏洞,包括很多漏洞扫描、账号扫描、DOS扫描...而且漏洞数据可以随时更

新.SSS(Shadow Security Scanner)在安全扫描市场中享有速度最快,功效最好的盛

名,其功能远远超过了其它众多的扫描分析工具.可以对很大范围内的系统漏洞

进行安全、高效、可靠的安全检测,对系统全部扫面之后,- 可以对收集的信息

进行分析,发现系统设置中容易被攻击的地方和可能的错误,得出对发现问题

的可能的解决方法。- 使用了完整的系统安全分析算法- intellectual core(智能核

心),该算法已经申请了专利。- 其系统扫描的速度和精度足以让你敢和专业的

安全机构和那些想侵入你网络的黑客叫板。- 不仅可以扫描Windows系列平台,

而且还可以应用在UNIX及Linux、FreeBSD、OpenBSD、Net BSD、Solaris等。- 由

于采用了独特的架构,SSS是世界上唯一的可以检测出思科,惠普及其它网络设

备错误的软件,而且它在所有的商用软件中还是唯一能在每个系统中跟踪超过

4000个审核的软件。

(2)NAMP:Namp是一款针对大型网络的端口扫描工具,尽管它也适用于单机扫描。

在不同情况下,你可能需要隐藏扫描、越过防火墙扫描或者使用不同的协议进

行扫描,比如:UDP、TCP、ICMP 等)。它支持:Vanilla TCP connect 扫描、TCP SYN

(半开式)扫描、TCP FIN、Xmas、或NULL(隐藏)扫描、TCP ftp代理(跳板)

扫描、SYN/FIN IP 碎片扫描(穿越部分数据包过滤器)、TCP ACK和窗口扫描、

UDP监听ICMP端口无法送达扫描、ICMP扫描(狂ping)、TCP Ping扫描、直接

RPC扫描(无端口映射)、TCP/IP指纹识别远程操作系统,以及相反身份认证扫

描等。Namp同时支持性能和可靠性统计,例如:动态延时计算,数据包超时和

转发,并行端口扫描,通过并行ping侦测下层主机。该版本需要Winpcap V2.1 以

上支持。

(3)MBSA:Microsoft 基准安全分析器(MBSA) 可以检查操作系统和SQL Server 更新。MBSA 还可以扫描计算机上的不安全配置。检查Windows 服务包和修补程

序时,它将Windows 组件(如Internet 信息服务(IIS) 和COM+)也包括在内。

MBSA 使用一个XML 文件作为现有更新的清单。该XML 文件包含在存档

Mssecure.cab 中,由MBSA 在运行扫描时下载,也可以下载到本地计算机上,或通过网络服务器使用。

(4)NBSI:NBSI是网站漏洞检测工具,ASP注入漏洞检测工具,特别在SQL Server 注入检测方面有极高的准确率。

(5)X-SCAN:X-Scan是国内最著名的综合扫描器之一,它完全免费,是不需要安装的绿色软件、界面支持中文和英文两种语言、包括图形界面和命令行方式。主

要由国内著名的民间黑客组织“安全焦点”完成,从2000年的内部测试版X-Scan V0.2到目前的最新版本X-Scan 3.3-cn都凝聚了国内众多黑客的心血。最值得一

提的是,X-Scan把扫描报告和安全焦点网站相连接,对扫描到的每个漏洞进行

“风险等级”评估,并提供漏洞描述、漏洞溢出程序,方便网管测试、修补漏

洞。采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能,提供了图形界面和命令行两种操作方式,扫描内容包括:远程操作系统类型及

版本,标准端口状态及端口BANNER信息,CGI漏洞,IIS漏洞,RPC漏洞,

SQL-SERVER、FTP-SERVER、SMTP-SERVER、POP3-SERVER、NT-SERVER弱口令用户,

NT服务器NETBIOS信息等。扫描结果保存在/log/目录中,index_*.htm为扫描结

果索引文件。

(6)HDSI:HDSI是一款免费的网页安全性能检测工具,其中集成多种功能,是一个SQL注入利器。该工具可以自动扫描注入点、注入猜解数据内容、扫描网站后台

登录地址,以及对PHP进行注入。如果漏洞页面使用SQL Server数据库,还可

以让服务器执行DOS命令并上传asp木马文件。

(7)其他:其他安全漏洞扫描工具集成在一些安全软件中,像卡巴斯基、趋势科技、360安全卫士、金山毒霸、瑞星卡卡安全助手、超级兔子等。

软件测试的基本流程

一:软件测试的基本流程 1.熟悉需求 2.需求评审(测试人员,开发,需求参与) 剔除需求中不合理的部分和一些无法实现的部分,有异议的地方,描述不清楚的地方。 3.编写测试计划 4.测试计划评审 5.测试分析 6.测试分析评审(交叉评审) 7.设计测试用例 8.编写测试用例 9.测试用例评审 10.冒烟测试 11.运行测试用例 12.提交BUG 13.回归测试 14.编写测试报告 二:什么是冒烟测试 冒烟测试,英文是Smoke testing。 冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。 三:什么是回归测试 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。 回归测试包括两部分:函数本身的测试、其他代码的测试。在对被修改的函数重新测试。如果函数的设计功能没有变化,直接运行函数测试就可以了。如果修改了设计功能,则要根据增减的功能点,增加或删除测试用例。另外,还要完成白盒覆盖。 函数代码的修改可能导致调用该函数的代码产生错误,所以需要测试其他代码。如果函数是私有函数并且未涉及到全局变量,应运行类测试,否则应运行工程测试。在函数列表中选择类测试或工程测试,编译运行测试工程,即可执行对其他代码的回归测试。 四:测试报告包含的内容

流程管理软件测试的流程

(流程管理)软件测试的流 程

软件测试的流程,包含各阶段会产生什么文档 无论是采用瀑布式仍是其他的产品生命周期模型,软件测试分为如下几个阶段:1、测试需求分析阶段。 测试需求分析阶段主要工作是获得测试项目的测试需求(测试规格)。 输出产物:《可测试性需求说明书》和《测试规格》 2、测试计划阶段。 以测试需求为基础,分析产品的总体测试策略。 输出产物:《产品总体测试策略》 3、测试方案设计阶段。 本阶段主要是以测试规格为基础获得特性测试方案,对于有自动化测试的项目,进行自动化测试的分析,获得测试策略。 输出产物:《产品或者版本总体测试方案》 4、测试用例实现阶段。 本阶段主要是完成各个特性的测试用例的编写和自动化脚本的编写。 输出产物:《产品自动化测试用例》和《手工执行测试用例》 5、测试执行阶段。 本阶段是根据测试策略开展测试执行和回归测试。 输出产品:《产品或版本测试方案》和《缺陷分析方案》 6、评估和关闭阶段。 只对前面的各个阶段的执行情况,完成对测试项目的关闭,同时提供完整的度量数据和项目总结方案。 输出产物:《遗留问题风险分析方案》、《度量分析方案》和《测试关闭方案》软件生命周期的各个阶段如何应用哪些软件测试方法。

画壹个V模型你就明白了:左边为开发过程,对应右边的测试过程,开发自上而下,测试是自下而上 开发过程测试过程 可行性研究验收测试 需求分析系统测试 概要设计集成测试 详细设计单元测试 软件编码阶段 1、需求分析阶段对应生成需求规格说明书,对应测试生成系统测试方案,即为系统测试准备的,该阶段已经完成了单元测试和集成测试,主要是对软件产品的功能和非功能进行测试,几乎不测试代码,所以测试方法以黑盒为主; 2、概要设计阶段对应生成概要设计说明书,对应测试生成集成测试方案,该阶段已完成单元测试,是将各个功能模块组装起来进行的测试,所以也叫组装测试。主要见模块调用是否正常,接口是否可用,数据传输是否正确等,所以用到的测试方法几乎是白盒的方法,如路径覆盖,条件组合覆盖等; 3、详细设计阶段对应生成详细设计说明书,对应测试生成单元测试方案,该阶段是开发人员编码后的第壹个测试阶段,是对开发出来的单独模块进行测试,以确保每壹个功能模块的功能正常,能够构建桩模块和驱动模块来回调用,方法也是以白盒为主。 4、白盒测试的准则是尽可能覆盖程序内部的逻辑结构,黑盒则是尽可能覆盖所有的输入输出接口,包括文档等壹些静态的测试。除常用的测试方法外,仍需补充大范围的随机测试,尽可能达到覆盖率100%。

软件测试基础要点总结

软件测试基础要点总结 软件测试基础要点总结 从宏观的角度讲,软件测试过程一般可划分为单元测试、集成测试、验收测试和系统测试等几个主要测试阶段。 1.测试计划注意事项 1.测试计划不一定要尽善尽美,但一定要切合实际,要根据项目特点、公司实际情况来编制,不能脱离实际情况; 2.测试计划一旦制定下来,并不就是一成不变的,随着软件需求、软件开发、人员流动等发生变化,测试计划也要根据实际情况的变化而不断进行调整,以满足实际测试要求.3.测试计划要能从宏观上反映项目的测试任务、测试阶段、资源需求等,不一定要太过详细.测试原则 ①应尽早和不断地进行软件“测试”。 ②测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。③在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。④对发现错误较多的程序模块,应进行重点测试。⑤避免程序员测试自己的程序。 ⑥用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。⑦长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。 2.测试用例文档 测试用例文档通常是由简介和测试用例两部分组成:

简介部分编制了测试目的、测试范围、定义术语、参考文档等,这个与测试计划是一致的。 测试用例部分逐一列出各个测试用例。 测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。 测试用例部分 测试用例通常包含的信息:用例标识和用例名称内容描述前提条件执行步骤预期结果评价准则 用例设计人员和设计时间用例执行人员和执行时间其它内容3.软件缺陷 缺陷的表现形式不仅体现在功能的失效方面,还体现在其他方面。主要类型有:①软件没有实现产品规格说明所要求的功能模块软件中;②出现了产品规格说明指明不应该出现的错误; ③软件实现了产品规格说明没有提到的功能模块; ④软件没有实现虽然产品规格说明没有明确提及但应该实现的目标; ⑤软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。测试用例:以计算器为例 ①计算器的产品规格说明定应能准确无误地进行加、减、乘、除运算。如果按下加法键,没什么反应,就是第一种类型的缺陷;若计算结果出错,也是第一种类型的缺陷。②产品规格说明书还可能规定计算器不会死机,或者停止反应。如果随意敲键盘导致计算器停止接受输入,这就是第二种类型的缺陷。 ③如果使用计算器进行测试,发现除了加、减、乘、除之外还可以求平方根,但是产品规格说明没有提及这一功能模块。这是第三种类型的缺陷④在测试计算

软件测试基本流程与要求要求规范

软件测试基本流程与规范 1目标 制定完整且具体的测试路线和流程,为快速、高效和高质量的软件测试提供基础流程框架。 最终目标是实现软件测试规范化,标准化。 2测试流程说明

3测试需求分析 测试需求是整个测试过程的基础;确定测试对象以及测试工作的范围和作用。用来确定整个测试工作(如安排时间表、测试设计等)并作为测试覆盖的基础。而且被确定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果。无法核实的需求不是测试需求。所以我现在的理解是测试需求是一个比较大的概念,它是在整个测试计划文档中体现出来的,不是类似的一个用例或者其他. ·测试需求是制订测试计划的基本依据,确定了测试需求能够为测试计划提供客观依据; ·测试需求是设计测试用例的指导,确定了要测什么、测哪些方面后才能有针对性的设计测试用例; ·测试需求是计算测试覆盖的分母,没有测试需求就无法有效地进行测试覆盖; 3.1测试方法与规范 3.1.1测试方法 随着软件技术发展,项目类型越来越多样化。根据项目类型应选用针对性强的测试方法,合适的测试方法可以让我们事半功倍。以下是针对目前项目工程可以参考的测试方法: ?β测试(beta测试)--非程序员、测试人员 β测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT)。 β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。 当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。?α测试(Alpha测试)--非程序员、测试人员 α测试,英文是Alpha testing。又称Alpha测试. Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。 在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。?兼容性测试 --测试人员 兼容性测试是指测试软件是否可以成功移植到指定的硬件或者软件环境中,例如在B/S项目中各个不同浏览器之间的测试。 ?用户界面测试-UI测试--测试人员 用户界面测试,英文是User interface testing。又称UI测试。 用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。

软件测试流程规划

软件测试流程规划 一、引言 本文档规范了软件测试过程中的整体流程,明确了软件测试从开始到结束的各个阶段,以及在各阶段中的负责人、具体工作内容和必需的输入输出文档。另外,本文还介绍了各测试阶段需要的测试工具、测试点和测试步骤,并提供了各类测试文档的参考模板。 二、测试流程概述 1、流程介绍 一般来讲,软件测试是伴随着项目的立项而开始的。也就是说,软件项目一旦确立,测试工作也就开始了。在测试的过程中,前后要经过以下主要环节: 需求分析—>制定测试计划—>搭建测试环境—>测试用例设计—>测试执行—>BUG回归测试—>测试总结—>软件发布 对于以上流程环节,一般而言,需求分析属于需求分析人员的工作范畴,环境搭建、用例设计、测试执行以及回归测试等属于测试人员的工作范畴,测试负责人负责制定测试计划以及对各个环节的跟踪、实施、管理等。 2、流程图 功能测试 项目开始 需求阶段 测试计划 测试阶段 性能测试 用户界面测试 兼容性测试 安全性测试 接口测试 测试总结 软件发布

在这个阶段,主要是对于需求的收集、分析以及评估。 1.由需求分析人员统一收集需求,并整理成文档格式转发给项目经理、开发经理和测试经理; 2.项目经理召集开发经理、测试经理和需求分析人员进行会议讨论,了解具体每个需求的实际含义,并且明确各需求的有效性和可用性; 3.小组会议讨论,确定最终实现的需求和功能点,并整理出重点需求; 4.项目经理根据会议讨论结果编写需求说明,并且再次召集小组开会讨论,对需求说明进行修复、完善,并最终确定《需求规格说明书》。 负责人:项目经理 输入文档:需求说明文档 输出文档:《需求规格说明书》 四、测试计划阶段 作为测试的起始步骤和重要环节,测试计划是对测试全过程的组织、资源、原则等进行规定和约束,并制定测试全过程各个阶段的任务以及时间进度安排,并提出对各项任务的评估、风险分析和管理需求。用一句话概括就是:测试计划是从管理角度对整个测试活动进行规划和控制。 测试计划的主要内容可分以下几个方面: 1.测试概述(介绍项目测试的范围、目的以及组织形式) 2.测试进度(测试时间周期的安排) 3.测试策略(包括测试环境、测试工具及测试方法) 4.需求跟踪(确定系统测试项与需求之间的对应关系) 5.测试通过失败标准(指明测试何时通过何时结束) 6.测试挂起恢复标准(指明当测试过程无法进行下去时测试活动挂起以及恢复的标准) 7.资源分配(工作量的统计以及工作任务的安排) 8.应交付测试工作产品(明确测试需要提交的各类工作文档) 9.风险评估(预估测试存在的风险) 测试经理根据项目的总体进度、发布时间以及需求规格说明、开发计划制定相应的测试计划,完成后提交给项目经理。项目经理组织讨论会,连同开发经理、测试经理以及各模块负责人,对测试计划进行评审并确定。 负责人:测试经理 输入文档:《需求规格说明书》、《软件开发计划》 输出文档:《软件测试计划》

软件测试基本流程及要求

软件测试基本流程与要求(提纲) 1目标 制定完整且具体的测试路线和流程,为快速、高效和高质量的软件测试提供基础流程框架。 最终目标是实现软件测试规范化,标准化。 2测试流程说明

3测试需求分析 测试需求是整个测试过程的基础;确定测试对象以及测试工作的范围和作用。用来确定整个测试工作(如安排时间表、测试设计等)并作为测试覆盖的基础。而且被确定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果。无法核实的需求不是测试需求。所以我现在的理解是测试需求是一个比较大的概念,它是在整个测试计划文档中体现出来的,不是类似的一个用例或者其他. ·测试需求是制订测试计划的基本依据,确定了测试需求能够为测试计划提供客观依据; ·测试需求是设计测试用例的指导,确定了要测什么、测哪些方面后才能有针对性的设计测试用例; ·测试需求是计算测试覆盖的分母,没有测试需求就无法有效地进行测试覆盖; 3.1测试方法与规范 3.1.1测试方法 随着软件技术发展,项目类型越来越多样化。根据项目类型应选用针对性强的测试方法,合适的测试方法可以让我们事半功倍。以下是针对目前项目工程可以参考的测试方法: ?β测试(beta测试)--非程序员、测试人员 β测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT)。

β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。 当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。?α测试(Alpha测试)--非程序员、测试人员 α测试,英文是Alpha testing。又称Alpha测试. Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。 在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。?兼容性测试--测试人员 兼容性测试是指测试软件是否可以成功移植到指定的硬件或者软件环境中,例如在B/S项目中各个不同浏览器之间的测试。 ?用户界面测试-UI测试--测试人员 用户界面测试,英文是User interface testing。又称UI测试。 用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。 用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。

软件测试流程实施方案

软件测试流程实施方案 软件测试流程实施方案 1.流程的意义 从一个软件企业的长远发展来看,如果要提高产品的质量首先应当从流程抓起,规范软件产品的开发过程。这是一个软件企业从小作坊的生产方式向集成化规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。 软件产品的开发同其它产品(如汽车)的生产有着共同特性,即需要按一定的过程来进行生产。在工业界,流水线生产方式被证明是一种高效的,且能够比较稳定的保证产品质量的一种方式。通过这种方式,不同的人员被安排在流程的不同位置,最终为着一个目标共同努力,这样可以防止人员工作间的内耗,极大的提供工作效率。并且由于其过程来源于成功的实例,因此其最终的产品质量能够满足过程所设定的范围。软件工程在软件的发展过程中吸取了这个经验并把它应用到了软件开发中,这就形成了软件工程过程,简单的说就是开发流程。 不管我们做哪件事情,都有一个循序渐进的过程,从计划到策略到实现。软件流程就是按照这种思维来定义我们的开发过程,它根据不同的产品特点和以往

的成功经验,定义了从需求到最终产品交付的一整套流程。流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。 目前流行的流程方法有很多种,如瀑布模型、螺旋模型、RUP模型、IPD流程等,不同的过程模型适合于不同类型的项目。 2.测试工作流程图 2.1测试工作总体流程图 说明:集成测试和系统测试的反馈意见可能导致设计文档(需求或数据库)的修改。 2.2需求阶段流程图

软件测试工作流程()

软件开发与测试配合 工作流程 XXX软件股份有限公司质量部 目录 1.简介 本流程文件旨在规定一个简单的可使开发人员和测试人员在软件开发的编码阶段相互配合工作的工作流程,其中包括测试与开发的配合、送测单和BUG单的填写、测试循环的结束等部分。开发阶段与测试循环的关系、测试模块的组合与测试原则、BUG的分类评级原则等也在本流程文件中有相关的描述。 鉴于公司的技术要求,目前质量部的测试人员不仅要完成黑盒测试工作,而且还要进行白盒测试中的“代码走查”工作。其它的白盒测试工作,目前还不在测试人员的工作职责之内。 由于公司已经为质量管理部开发完成“辅助测试系统1.0”,因此本测试流程的制定就建立在辅助测试系统之上,如果辅助测试系统有了新的版本,质量部将根据其变化适当调整测试流程。 2.适用范围 本流程文件适用于公司开发软件并需要测试服务的任何软件开发项目组、软件开发人员,以及任何测试人员。

当项目组在辅助测试系统中注册以后,公司领导可以使用本系统查询了解所有在本系统中注册的项目的测试信息,项目的质量管理员可以使用本系统查询了解项目的当前测试进展情况。程序员和测试员都可以使用本系统查询到自己产生的送测单和BUG单。 3.术语、名词定义 3.1 送测软件 送测软件包括一切软件执行必须的文件、数据、数据库配置等。开发人员必须提供所有的详细的资料以保证测试人员可以像客户一样的运行被测软件。 3.2 开发文档 开发人员提供给测试人员的开发文档至少包括以下几种:用户需求,概要设计,详细设计,用户手册等。开发人员应当在开发每阶段完成后三天内就向测试人员传送本阶段完成的开发文档,以利于测试人员的工作。 3.3 测试文档 测试文档包括测试计划、测试用例说明、BUG报告及分析、测试总结,以及测试工作全部完成后的测试报告等。测试文档由测试人员编写并维护,也属于开发文档的一部分。

软件测试基础习题及答案范文

1、软件测试的定义? 软件测试是一个过程或者一系列过程,用来确认计算和代码完成了其应该完成的功能,并且不执行其不应该有的操作。 2、软件测试的目标是什么? 是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,降低软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。 3、简单描述一下软件测试的原则? 所有的软件测试都应追溯到用户需求 应当把“尽早地和不断地进行软件测试”作为测试者的座右铭 Good Enough原则 质量第一 充分注意测试中的群集现象 程序员应避免检查自己的程序 有据可依 尽量避免软件测试的随意性,要有预期结果 重视回归测试 妥善保存一切测试过程文档 4、软件测试中验证和确认的区别? Verfication 验证: 是保证软件正确实现特定功能的一系列活动和过程。 目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段设定的目标。 Validation 确认: 是保证软件满足用户需求的一系列的活动和过程。 目的是在软件开发后保证与用户需求符合 5、软件测试按照测试的基本策略可分为哪两种并加以详细说明? 白盒测试: 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

黑盒测试: 黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。 6、整个软件生命周期中,需要进行哪几项测试? 单元测试、集成测试、系统测试、验收测试 单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因此应用系统有一个设计很好的体系结构就显得尤为重要。 一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。 集成测试 集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。

APP测试基本流程

APP测试基本流程 1. App测试流程 1.1.流程图 1.2 测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源 测试任务开始前,检查各项测试资源。 --产品功能需求文档; --产品原型图; --产品效果图; --行为统计分析定义文档; --测试设备(IOS Android) --其他。 1.4日报及产品上线报告 1)测试人员每天需对所测项目发送测试日报。 2)测试日报所包含的内容为: --对当前测试版本质量进行分级; --对较严重的问题进行例举,提示开发人员优先修改; --对版本的整体情况进行评估。

3)产品上线前,测试人员发送产品上线报告。 4)上线报告所包含的内容为: ---对当前版本质量进行分级; ---附上测试报告(功能测试报告、兼容性测试报告、性能测试报告以及app可用性能标准结果); --总结上线版本的基本情况。若有遗留问题必须列出并记录解决方案。 2. App测试点 2.1安全测试 1)扣费风险:包括发送短信、拨打电话、连接网络等 2)隐私泄露风险:包括访问手机信息、访问联系人信息等 3)对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测 4)限制/允许使用手机功能接入互联网 5)限制/允许使用手机发送接受信息功能 6)限制/允许应用程序来注册自动启动应用程序 7)限制或使用本地连接 8)限制/允许使用手机拍照或录音 9)限制/允许使用手机读取用户数据 10) 限制/允许使用手机写入用户数据 11) 检测App的用户授权级别、数据泄漏、非法授权访问等 1)应用程序应能正确安装到设备驱动程序上 2)能够在安装设备驱动程序上找到应用程序的相应图标 3)是否包含数字签名信息

软件测试流程规范最全

软件测试流程规范整体的流程图 1.详细的流程执行 1.1 计划与设计阶段 整体流程图

1.1.1 立项会议 由高层主管立项会议,会议主要对项目的可行性进行分析,并且确定项目经理及项目测试组长。 1.1.2 需求评审 注:1.需求定义基本完成,此时应在评审会议召开之前发给测试团队,预留时间给测试相关人员熟悉、理解。 2.测试部参与人员由测试部经理指定,主要由测试组长、测试设计等人员组成(还应包括配置管理人员、质量保证人员)。

1.1.3 测试工作启动 注:在正式测试任务下达前,开发团队应在项目(产品)开发计划完成后及时向测试团队下达预通知,告之较为确切的测试日期,提供当前最新的相关资料。部门经理和测试组长组建测试小组,并视具体情况决定是否需要调整人力、时间安排、测试环境等其它资源。测试小组成员可预先熟悉必要的项目(产品)资料。 1.1.4 测试设计阶段 1.1.4.1 设计测试计划 注:针对需求分析文档和项目开发计划文档测试完成后,测试组需要编写测试计划文档、制定测试测略及预估测试过程中的风险,并设计出合理的规避风险的策略,为后续的测试工作提供直接的指导。

1.1.4.2 设计测试用例 注:在需求分析文档确立基线以后,测试组需要针对项目的测试需求编写测试用例,在实际的测试中,测试用例将是唯一实施标准。

1.1.4. 2.1设计测试用例的常用方法 a.等价划分法 有效等价类:是指对于程序的规格说明来说是合理的有意义的输入数据构成的集合利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能 无效等价类:与有效等价类的定义恰巧相反 b.边界值法: 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种 情况下,其测试用例来自等价类的边界。 通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、重量、大小、速度、方位、尺寸、空间等。 相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下。 边界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值,记为:min、min+、nom、 max-、max考虑到健壮性测试,还可以加一个略大于最大值max+, 以及一个略小于最小值min-的值。 举例说明:例如要求0 < X<5,在编写用例时需考虑到以下几种 情况: ?x=0的情况 ?x=5的情况 ?x=-1的情况 ?输入一个X大于5的值,例如输入X=6 c.错误推断法 基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性 的设计测试用例的方法。 思路:分析程序中最易出错的场景和情况,在此基础上有针对性的设 计测试用例,需要完成的前提条件如下: ●深度熟悉被测系统的业务、需求。 ●对被测系统或类似系统之前的缺陷分布情况进行过系统的分析。 包括功能缺陷,数据缺陷,接口缺陷和界面缺陷等等。 举例说明: 聊天窗口功能 ?输入特殊字符(全角,半角)后,窗口是否能够正常显示 ?输入空格,是否能够过滤,是否会算入长度计算 ?输入html字符 ?输入脚本语言函数 ?在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容是否能够通过

软件测试工作流程(个人版)

软件测试流程 测试基本阶段划分 ?测试计划阶段 ?测试设计阶段 ?测试执行阶段 ?测试评估阶段 ?测试验收阶段 文档编写人:龙文 编写时间:2010-8-3

目录 1、测试计划阶段 (3) 1.1、测试计划考虑的问题 (3) 1.2、测试策略 (4) 1.3功能列表 (4) 1.3.1、其他非功能测试 (6) 1.3.2、策略附件要求 (6) 2、测试设计阶段 (8) 3、测试执行阶段 (8) 3.1、执行阶段操作 (9) 4、测试评估阶段 (9) 5、测试验收阶段 (10)

1、测试计划阶段 ?做测试需要做好准备工作,把做一件事需要做的准备工作做好,明确做这件事的目的,最终达成目的并验证结果是我们要做的事情。这要求我们有一个完善的“测试计划书”。 ?测试计划的内容: 1、测试范围:描述本次测试中做的测试范围,如:测试软件功能范围、测试种类等 2、简单的描述如何搭建测试平台以及测试的潜在的风险。 3、项目信息:说明要测试的项目的相关资料,如:输入输出文档,产品描述,软件主要功能 4、人力资源的分配 注: 计划和设计分开编写,最好安排充分的时间去明确测试需求 测试需求:笼统说,就是测试中的所有设计和需求文档。作为本次测试的依据 1.1、测试计划考虑的问题 ?1、要充分考虑测试计划的实用性,即测试计划与实际之间的接近程度和可操作性(必须对需求有透彻的理解)。编写测试计划的目的在于充分考虑执行测试时的各种资源,包括测试内容、测试标准、时间资源、人力资源等等,准确地说是要分析执行时所能够调用的一切资源以及受各种条件限制,可能受到的各种影响。说的再明确一点就是要“计划”“如何”去做“测试工作”,而不是“如何编写测试计划”。 (1)测试内容:对一个软件来说测试计划中会明确本次测试做哪些测试? 如:系统测试:在整个系统测试中会有(界面测试、功能测试、性能测试、兼 容性测试、安装卸载测试、可靠性测试等测试) (2)测试目的:一般多为保证产品质量是否达到预期的指标。这个指标也就是在 测试中定义的结束标准。 (3)测试标准:需要考虑本次测试需要输入那些文档,该项目结束标准定义、测试结束标准的定义?bug级别定义、优先级定义、bug管理流程定义。这个都需要在执行测试事明确。计划中应该包含这些内容。 (4)资源分配:这里分为人力资源、软硬件资源等划分。一般会把人力资源的利用写入一个测试人员任务分配表里,按照不同的阶段,每个阶段提交相应的成果(难度很大)。软硬件资源中主要是在做计划时考虑到需要多少电脑或别的工具,列出清单。 (5)测试风险:大多考虑到的就是项目开发延期、测试人员不足用例无法全面覆盖测试点、时间不足用例无法全部执行、bug无法及时修改导致无法验证、测试人员技能不足导致测试进度拉长。 (6)软件测试策略一般都是分开来做相关测试方案。 ?2、要坚持“5W1H”的原则,明确测试内容与过程。 ◇明确测试的范围和内容(WHA T); ◇明确测试的目的(WHY); ◇明确测试的开始和结束日期(WHEN);

软件测试流程实施方案

软件测试流程实施方案 1.流程的意义 从一个软件企业的长远发展来看,如果要提高产品的质量首先应当从流程抓起,规范软件产品的开发过程。这是一个软件企业从小作坊的生产方式向集成化规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。 软件产品的开发同其它产品(如汽车)的生产有着共同特性,即需要按一定的过程来进行生产。在工业界,流水线生产方式被证明是一种高效的,且能够比较稳定的保证产品质量的一种方式。通过这种方式,不同的人员被安排在流程的不同位置,最终为着一个目标共同努力,这样可以防止人员工作间的内耗,极大的提供工作效率。并且由于其过程来源于成功的实例,因此其最终的产品质量能够满足过程所设定的范围。软件工程在软件的发展过程中吸取了这个经验并把它应用到了软件开发中,这就形成了软件工程过程,简单的说就是开发流程。 不管我们做哪件事情,都有一个循序渐进的过程,从计划到策略到实现。软件流程就是按照这种思维来定义我们的开发过程,它根据不同的产品特点和以往的成功经验,定义了从需求到最终产品交付的一整套流程。流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。

2.测试工作流程图 2.1测试工作总体流程图 说明:集成测试和系统测试的反馈意见可能导致设计文档(需求或数据库)的修改。

2.2计划、用例阶段流程图

2.3单元/集成测试阶段流程图

2.4系统测试阶段流程图

2.5验收测试流程图 说明:验收测试为系统上线前的最后检验,检验方向主要是安装包、安装程序、用户手册、加密设置、基本功能等内容。

软件测试工作流程图

软件开发与测试配合工作流程

XXX软件股份质量部 目录 1.简介 (4) 2.适用围 (5) 3.术语、名词定义 (5) 3.1 送测软件 (5) 3.2 开发文档 (5) 3.3 测试文档 (6) 3.4 被测程序 (6)

3.5 送测单 (6) 3.6 BUG单 (6) 3.7 测试循环 (7) 4.参考文献 (7) 5.测试与开发的配合 (7) 5.1 文档和软件保存目录 (8) 5.2 辅助工具的使用 (9) 5.2.1 辅助测试系统1.0 (9) 5.2.2 SourceSafe6.0 (10) 5.3 开发与测试配合的流程 (11) 6 . 送测单 (12) 6.1送测单的填写 (13) 6.2 工作流程 (15) 7 .BUG单 (16) 7.1 BUG单的填写 (17) 7.2 工作流程 (19) 8 .测试阶段的结束 (19) 9 . 备注 (20) 9.1 开发阶段与测试阶段 (20) 9.2 待测模块的组合与测试原则 (21) 9.3 BUG的分类评级原则 (21) 9.4 国标中有关BUG数量的描述 (23)

9.5 测试阶段的划分 (23) 1.简介 本流程文件旨在规定一个简单的可使开发人员和测试人员在软件开发的编码阶段相互配合工作的工作流程,其中包括测试与开发的配合、送测单和BUG单的填写、测试循环的结束等部分。开发阶段与测试循环的关系、测试模块的组合与测试原则、BUG的分类评级原则等也在本流程文件中有相关的描述。 鉴于公司的技术要求,目前质量部的测试人员不仅要完成黑盒测试工作,而且还要进行白盒测试中的“代码走查”工作。其它的白盒测试工作,目前还不在测试人员的工作职责之。 由于公司已经为质量管理部开发完成“辅助测试系统1.0”,因此本测试流程的制定就建立在辅助测试系统之上,如果辅助测试系统有了新的版本,质量部将根据其变化适当调整测试流程。

软件测试基本理论

软件测试基本概念 1、软件=程序+文档,软件测试=程序测试+文档测试。 “程序”是指能够实现某种功能的指令的集合,“文档”是指软件在开发、使用和维护过程中产生的图文集合。; 2、软件的分类 按功能分:系统软件、应用软件 按技术架构分:单机版软件、C/S结构软件(C是指客户端,S指服务器端)、B/S 结构软件(B是指浏览器) 按照用户划分:产品软件、项目软件 按开发规模划分:小型、中型、大型 3、BUG的定义:软件的BUG指的是软件中(包括程序和文档)不符合用户需求的问题。常见的软件BUG分三种类型:完全没有实现的功能;基本实现了用户需求的功能;实现了用户不需要的功能。 4、测试环境=软件+网络+硬件。搭建环境:真实、干净、无毒、独立 5、软件环境的分类:软件开发环境软件生产运行环境 6、测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和与其结果!测试用例=输入+输出+测试环境。测试用例有两个模板,word 和excel,前者适合性能测试,后者适合功能测试。 软件测试分类 1、黑盒测试:指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果

白盒测试:指的是把盒子盖打开,去研究里面的源代码和程序结构。 2、静态测试:是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。 动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序。 注:同一个测试,既有可能属于黑盒测试,也有可能属于动态测试;既有可能属于静态测试,也有可能属于白盒测试。他们之间也有可能交叉。 3、单元测试:编译运行程序——静态测试——动态测试 集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。 4、系统测试:指的是将整个软件系统看作1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。 5、验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员 共同参与的测试,它也是软件正式交给用户使用的最后一道工序. 验收测试又分为α测试和β测试,其实α测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而β测试指的是内侧后的公测,即完全交给最终用户测试。 功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。功能测试又可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。性能测试:软件的性能包括很多方面,主要有时间性能和空间性能两种。时间性能:主要指软件的一个具体事务的响应时间。空间性能:主要指软件运行时所消耗的系统资源。

软件测试流程

1.软件测试流程 1.1.软件测试整体流程 首先看一下软件生命周期。 软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析,软件设计,编码,测试,软件发布维护的过程。如下图所示: 在学习软件测试整体流程的过程中,我们要明确这样几个问题: 测试计划的前期是否需要需求调研? 测试具体分几个阶段,每个阶段执行的依据是什么? 每个阶段的作用是什么? 每个阶段都需要生成哪些文档,这些文档对整个测试工作和产品的质量保障起到哪些作用? 测试工作的各个阶段:软件测试工作必须要通过计划测试、设计测试、执行测试、评估测试几个阶段来完成。 计划测试阶段需要整理测试需求、制定测试计划; 设计测试阶段要设计测试用例和测试过程,要保证测试用例完全覆盖测试需求;要根据测试用例实现具体的自动化脚本或者手工的操作步骤; 执行测试阶段则通过自动化测试工具或人手工来执行那些自动化脚本或手工的操作步骤; 评估阶段则要对软件的质量和测试工作自身的质量做出一个客观的评价。 软件测试的整体流程具体如下图所示: 需求阶段: 设计编码阶段:

集成、系统、验收阶段: 开发生命周期中的验证活动:

软件测试流程,集成、系统、验收如下图所示:

1.2.单元测试 目标: 检验程序最小单元有无错误(类、文件、窗口、函数、菜单、报表或一个存储过程) ◆接口、数据结构、边界、覆盖、逻辑 检验单元编码与设计十分吻合 依据:详细设计,编码 方法:白盒测试 测试执行人:开发工程师 进入条件:代码无错误地通过编译或汇编。 测试内容: (1) 模块接口:对被测模块,信息是否能正确地流入和流出。 (2) 局部数据结构:模块的工作过程中,其内部的数据能否保持其完整性。 (3) 边界条件-----在边界上模块是否能正常工作。 (4) 覆盖条件------模块的运行是否达到了规定的逻辑覆盖。 (5) 出错处理-----检查模块的错误处理设施是否有效。 具体要求: (1) 在进行单元测试之前,由项目负责人决定是否进行静态分析。 (2) 单元测试的主要形式是结构测试。 (3) 单元测试的测试计划应该根据被测单元的性质而制订:如对系统控制单元应主要采用结构测试;对复杂的计算单元应主要采用算法分析测试用例;对界面单元就应该测试各种选项的组合。 (4) 语句覆盖率应达到100%。 (5) 分支覆盖率应达到85%。 (6) 单元测试由开发部负责开展。 单元测试执行: 在进行单元测试时,需设置若干辅助测试模块。 辅助模块有两种: 一种是驱动模块(Driver),用以模拟被测试模块的上级模块。

软件测试人员工作规范模板

软件测试人员工作 规范

软件测试工作规范版本记录: 目录

1.编写目的 .......................................................................... 错误!未定义书签。 2.测试团队构成 .................................................................. 错误!未定义书签。 2.1职责......................................................................... 错误!未定义书签。 2.2角色划分................................................................. 错误!未定义书签。 3.工作流程及规范 .............................................................. 错误!未定义书签。 3.1计划与设计阶段..................................................... 错误!未定义书签。 3.1.1成立测试团队 ............................................... 错误!未定义书签。 3.1.2测试预通知 ................................................... 错误!未定义书签。 3.1.3召开测试启动会议 ....................................... 错误!未定义书签。 3.1.4编写测试计划文档 ....................................... 错误!未定义书签。 3.1.5设计测试用例 ............................................... 错误!未定义书签。 3.2实施测试阶段......................................................... 错误!未定义书签。 3.2.1实施测试用例 ............................................... 错误!未定义书签。 3.2.2提交报告 ....................................................... 错误!未定义书签。 3.2.3回归测试 ....................................................... 错误!未定义书签。 3.3总结阶段................................................................. 错误!未定义书签。 3.3.1编写测试报告 ............................................... 错误!未定义书签。 3.3.2测试工作总结 ............................................... 错误!未定义书签。 3.3.3测试验收 ....................................................... 错误!未定义书签。 3.3.4测试归档 ....................................................... 错误!未定义书签。 3.4缺陷跟踪................................................................. 错误!未定义书签。

相关文档