NGB中间件api接口测试用例设计与实现_电视技术_2014.2(1405061859279)

NGB中间件api接口测试用例设计与实现_电视技术_2014.2(1405061859279)
NGB中间件api接口测试用例设计与实现_电视技术_2014.2(1405061859279)

*1

NGB终端中间件API接口测试用例的设计与实现

张定京,赵良福,付光涛,李小雨,王颖

(国家广播电影电视总局广播科学研究院,北京 100866)

摘要:根据NGB终端中间件标准有关Java API和JS API的接口定义和要求,以及NGB的业务需求,制定了API接口测试用

例的设计原则和设计方案,方案包括自动化和手动两种方式,两类测试相互补充。本文通过以频道搜索和媒体处理两个典型

测试单元为例,介绍了这两类测试用例的软件设计流程和具体实现方法。该方案设计已经过验证,并应用于NGB中间件的

标准符合性测试中。

关键词:下一代广播电视网;中间件;API;测试用例

【中图分类号】TN949.6 【文献标识码】B

Design and Implementation of API Test cases for Middleware of NGB receiver ZHANG Ding-jing,ZHAO Liang-fu,FU Guang-tao,LI Xiao-yu,WANG Ying (Academy of Broadcasting Science State Administration of Radio,Film & Television,Beijing 100866,China)Abstract: According to Java API and JS API interface definitions and requirements of NGB receiver middleware specification, as well as NGB business needs, design principles and schemas for API interface test cases are developed, including automated and manual modes, the two types could complement each other. In this paper, the two types of software design processes and implementation methods for test cases are described by two typical testing units-channel scanning and media processing. The design has been validated and applied to NGB middleware standards compliance testing.

Key words:Next Generation Broadcasting; middleware; API; test case

1引言

下一代广播电视网(简称NGB)终端中间件是运行在数字电视接收终端中的软件,按功能层次划分

处于接收终端资源层之上、应用层之下;其向下屏蔽了资源层的差异,向上为应用的开发提供一套完整、

统一的应用编程接口(简称API);中间件与资源层协同工作,能承载和支撑各种不同的应用。NGB数字

电视接收终端采用中间件可以提升应用的互操作性,即同一款终端能够运行不同应用提供商开发的应用,

同一个应用能够运行在不同的终端之上[1]。因此,NGB中间件技术对推动NGB和三网融合的整体发展,

加快广电新业态的业务生成和部署,以及跨域业务的互联互通,具有十分重要的意义[2]。

国家广播电影电视总局于2012年10月发布了NGB终端中间件技术规范,标准号为GY/T 267—2012[1]。目前遵循该规范的NGB终端机顶盒已进入研发和生产阶段,接下来产品的测试和认证工作就显得尤为迫切和重要,因此判定产品是否符合中间件技术要求将是亟待解决的问题。

GY/T 267—2012[1]标准对NGB终端中间件的软件架构、协议栈、内容格式、应用信令、应用传输、应用支撑、安全机制、应用编程接口等各个方面的技术要求进行了规定。其中应有编程接口是该标准的核心内容,检验终端产品是否符合中间件标准要求基本可通过对应有编程接口的全方位测试来加以验证。本文将简述中间件API接口要求,描述API接口的测试方法和测试方案,以典型测试单元为例,介绍测试用例的设计和实现方法。

2中间件API

NGB终端中间件软件架构示意见图1。

1国家科技支撑计划项目课题No.2012BAH02B01经费资助

应用层

(NGB-J\NGB-H )

功能组件层

执行环境层

应用框架层

资源层

图1 NGB 终端中间件软件架构示意

图1中的应用编程接口,即中间件提供给应用的接口。NGB 终端中间件所能支撑的应用,按应用开发技术类型可分为NGB-J 和NGB-H 应用:

——NGB-J 应用是指采用Java 编程语言开发的应用的统称;

——NGB-H 应用是指采用HTML 、JavaScript 、CSS 等Web 技术开发的应用的统称[1]

GY/T 267—2012[1]标准针对NGB-J 应用和NGB-H 应用分别定义了Java API 和JS (JavaScript )API 两套接口。 2.1 Java API

NGB 终端中间件应为NGB-J 应用开发提供三类Java 接口,即Java 基础接口、DA VIC 扩展接口和NGB 扩展接口[1]。

Java 基础接口由SUN 公司制定,是开发NGB-J 应用的必要支撑。NGB 终端中间件应支持CDC1.1.2(JSR

218)/FP 1.1.2(JSR 219)/PBP1.1.2(JSR 217)和MIDP2.0(JSR 118) Java 基础接口[1]

NGB 扩展接口由中间件标准定义,针对NGB 应用需求扩展制定。NGB 终端中间件应实现的扩展Java 接口功能单元包括:单向广播网络接入单元、广播协议处理单元、媒体处理单元、应用引擎单元——频

道搜索、应用引擎单元——业务选择等[1]

DA VIC 扩展接口由数字音频视频委员会针对数字电视应用而制定。NGB 终端中间件应支持的DA VIC

1.4.1p9定义的部分接口,主要包括MPEG/DVB 传输流、表格数据装载等处理的相关类和方法[3]

。 2.2 JS API

NGB 终端中间件应为NGB-H 应用提供两类JS 对象,即基础JS 对象和NGB 扩展JS 对象[1]

。 基础JS 对象由W3C 组织定义,是开发NGB-H 应用的基础。NGB-H 应用应支持的基础JS 对象遵循W3C

JS 1.5规范[1]

NGB 扩展JS 对象由中间件标准定义,针对NGB 应用需求扩展制定[1]

。NGB-H 应用应支持的扩展JS 对象功能单元与Java 接口基本相同。

3 测试方案设计

3.1 设计原则

NGB 中间件API 数量庞大,涉及业务逻辑繁多复杂,如果想完全模拟这些业务逻辑,需要设计一套基于白盒测试的模拟测试环境,通过调用API 对业务逻辑的触发来验证API 功能的完整性和稳定性。

白盒测试又称为结构测试或逻辑驱动测试,主要是对程序模块进行如下检查:

?对逻辑模块的所有独立的执行路径至少测试一遍;

?对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一遍;

?在循环的边界和运行的界限内执行循环体;

?测试内部数据结构的有效性[4]。

应用白盒测试的思想,通过测试用例设计和脚本的编写,即可实现对NGB中间件API接口的可用性和完整性进行更准确的测试。由于NGB-H和NGB-J应用编程接口的基础接口主要采用现有、成熟技术,出现问题的可能性较小,所以测试用例主要针对中间件标准定义的扩展接口来进行设计。测试用例的设计原则为:

(1)对API的调用,覆盖率达到100%;

(2)对同一API接口测试涵盖正例和反例;

(3)对API的调用,符合业务逻辑执行规律;

(4)模拟NGB业务典型应用场景。

3.2 设计方案

本测试实施过程将采用单元测试,以及自动化和手动相结合的方式。针对这种方式,测试用例的设计方案为:

(1)采用模块化设计,模块划分以标准定义的功能单元为依据,包括:单向广播网络接入单元、广播协议处理单元、双向宽带网络接入单元等。

(2)设计两类测试用例,分别为自动化方式和手动方式,两种方式相互补充,使测试过程更趋向高效和完整。

3.2.1 自动化方式

自动化方式测试用例主要按照以下要求进行设计:

?测试程序运行后,将自动执行测试步骤和测试项;

?API的输入参数为预先设定的固定值,参数一般取有效和无效两种情况;

?测试结果的判定一般依据函数的返回值或者有无异常情况;

?每个测试项执行完成后将自动显示测试结果“PASS”或“FAIL”。

这类测试用例的优点是测试过程效率高,操作简单,测试结果准确且直观;不足之处是对测试条件有一定要求,不够灵活(比如:前端发送信号的调谐参数要与测试程序里的有效参数一致等),并且对一些须人工审核测试结果的API不能准确测试(比如:媒体播放API等)。

3.2.2 手动方式

手动方式测试用例主要按照以下要求进行设计:

?具有可视化的交互界面;

?测试程序运行后,由人为触发测试项,须手动执行测试步骤;

?API的输入参数须手动输入或选择;

?正例测试和反例测试须由测试人员操作;

?测试结果的判定须由测试人员依据输出结果、返回数据或显示效果等来验证;

?每个测试项的的测试结果须测试人员记录“PASS”或“FAIL”。

这类测试用例的优点是测试条件灵活(比如:前端发送信号的参数可随意修改等),可测试多种情况和场景,且便于测试一些须人为观察测试结果的API(比如:媒体播放API等);不足之处测试过程较长,操作稍显复杂,测试结果因由人工审核,所以对测试人员的专业要求较高(比如:须熟悉DVB/MPEG 相关技术规范等)。

4测试用例实现

本章将以NGB中间件Java API接口的频道搜索模块和媒体处理单元为例,分别描述自动化方式和手动方式这两类测试用例的实现方法。

4.1 频道搜索

频道搜索测试单元主要测试中间件标准JAVA—应用引擎中的org.ngb.toolkit.channelscan包,该包的概要见表3。

表3 org.ngb.toolkit.channelscan包概要[1]

频道搜索单元测试用例采用自动化方式,该单元设计为一个Xlet(一种J2ME应用模型)模型,其中每个子测试用例为一个函数测试1~2个API[5]。Xlet在启动运行后,自动执行每个子测试用例,测试过程如发现问题则输出错误位置和原因,并在执行结束前输出测试结果“PASS”或者“FAIL”。该测试单元所测接口和测试目的见表4。

表4 频道搜索单元测试用例测试接口

频道搜索单元测试用例设计流程图见图2所示,其中图左侧为该测试单元的整体软件设计流程,右侧为子测试用例ChannelScanTC8(测试启动频道自动搜索功能)的软件设计流程。

图2 频道搜索单元测试用例设计流程图

4.2 媒体处理

媒体处理单元主要测试中间件标准JAVA —媒体处理单元中的org.ngb.media 包,该包的概要见表5。

表5 org.ngb.media 包概要[1]

媒体处理单元测试用例采用手动方式,该单元设计为一个Xlet模型,其中每个子测试用例为一个测试项测试1~3个API[5]。Xlet在启动运行后,每个测试项将由人为按下界面中的按钮来触发执行,API 调用后的返回数据、接收事件、异常情况或错误信息将输出打印在界面中,并且音视频的播放效果也将直接呈现,测试人员以此判断并记录测试结果“PASS”或者“FAIL”。该测试单元所测接口和测试目的见表6。

表6 媒体处理单元测试用例测试接口

媒体处理单元测试用例设计流程图见图3所示,其中图左侧为该测试单元的整体软件设计流程,右侧为子测试用例MediaTC3(测试启动媒体播放器功能)的软件设计流程。

图3 媒体处理单元测试用例设计流程图

5小结

目前,NGB中间件标准已应用于部分广电网络运营商,基于该标准的终端机顶盒也正在研制生产,准备部署。同时,该标准定义的API接口已确定作为广电总局正在牵头研制的NGB智能电视操作系统应用框架层的对外接口。本文给出的API测试用例的方案包括自动化和手动两种方式,两类测试相互补充,使测试结果更加高效完整。基于该方案,已开发完成了一整套NGB中间件API接口测试用例集,并已成功运用于NGB中间件标准符合性测试的验证工作。

参考文献:

[1] GY/T 267-2012,下一代广播电视网(NGB)终端中间件技术规范[S].2012.

[2] 国家广播电影电视总局科技司,下一代广播电视网(NGB)中间件需求白皮书(第一部分),v1.00,2010.

[3] DA VIC 1.4.1,标准第9部分:信息呈现[S].1999(Specification Part 9:Information representation,1999).

[4] 王小雨,张昀,陈雷.基于白盒测试的Parlay API接口测试方法设计[J].现代电信科技,2007(6).

[5] 袁江海,张文军.数字电视中间件应用管理器的一种优化设计方案[J].电视技术,2004(1).

作者简介:

张定京(1978-),女,广播科学研究院,高级工程师,主研广播电视技术;

赵良福(1981-),男,广播科学研究院,工程师,主研计算机技术;付光涛(1980-),男,广播科学研究院,工程师,主研广播电视技术;李小雨(1982-),男,广播科学研究院,工程师,主研电子工程技术;王颖(1982-),女,广播科学研究院,工程师,主研通信工程技术。

白盒测试用例设计方法

1白盒测试用例设计方法 1.1白盒测试简介 白盒测试又称结构测试、逻辑驱动测试或基于程序的测试,一般多发生在单元测试阶段。白盒测试方法主要包括逻辑覆盖法,基本路径法,程序插装等。 这里重点介绍一下常用的基本路径法,对于逻辑覆盖简单介绍一下覆盖准则。 1.2基本路径法 在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出独立路径集合,从而设计测试用例,设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。 在介绍基本路径测试方法(又称独立路径测试)之前,先介绍流图符号: 图1 如图1所示,每一个圆,称为流图的节点,代表一个或多个语句,流程图中的处理方框序列和菱形决策框可映射为一个节点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个节点,即使该节点并不代表任何语句,例如,图2中两个处理方框交汇处是一个节点,边和节点限定的范围称为区域。 图2

任何过程设计表示法都可被翻译成流图,下面显示了一段流程图以及相应的流图。 注意,程序设计中遇到复合条件时(逻辑or, and, nor 等),生成的流图变得更为复杂,如(c)流图所示。此时必须为语句IF a OR b 中的每一个a 和b 创建一个独立的节点。

(c)流图 独立路径是指程序中至少引进一个新的处理语句集合,采用流图的术语,即独立路径必须至少包含一条在定义路径之前不曾用到的边。例如图(b)中所示流图的一个独立路径集合为: 路径1:1-11 路径2:1-2-3-4-5-10-1-11 路径3:1-2-3-6-8-9-10-1-11 路径4:1-2-3-6-7-9-10-1-11 上面定义的路径1,2,3 和4 包含了(b)流图的一个基本集,如果能将测试设计为强迫运行这些路径,那么程序中的每一条语句将至少被执行一次,每一个条件执行时都将分别取true 和false(分支覆盖)。应该注意到基本集并不唯一,实际上,给定的过程设计可派生出任意数量的不同基本集。如何才能知道需要寻找多少条路径呢?可以通过如下三种方法之一来计算独立路径的上界: 1. V=E-N+2,E 是流图中边的数量,N 是流图节点数量。 2. V=P+1,P 是流图中判定节点的数量 3. V=R,R 是流图中区域的数量 例如,(b)流图可以采用上述任意一种算法来计算独立路径的数量 1. V=11 条边-9 个节点+2=4 2. V=3 个判定节点+1=4 3. 流图有4 个区域,所以V=4 由此为了覆盖所有程序语句,必须设计至少4 个测试用例使程序运行于这4 条路径。 在采用基本路径测试方法中,获取测试用例可参考以下方式:

测试用例设计思路举例(参考)

ECShop2.7.2用例设计思路举例 说明 用例设计方法的运用非常灵活,没有绝对的套路可言,以下用例设计思路仅供参考。 操作流程举例 参考文档: ?ECShop_2.7.2_简易操作手册V1.0, ?B2C商城ECShop需求规格说明书_2.7.2V1.0 设计思路: 根据操作手册,理清业务逻辑前后关系,再结合SRS文档确定具体的流程细节和分支流程。可以通过画流程的方式梳理流程(流程分析法),下面是部分主流程的案例: ?正向订单流程_余额付款 1)前台页面浏览商品->加入购物车->结算中心->余额付款 2)后台管理中心订单查询->配货->生成发货单->确认生成发货单->去发货->发货 3)前台页面确认收货END ?正向订单流程_货到付款 1)前台页面浏览商品->加入购物车->结算中心->货到付款 2)后台管理中心订单查询->配货->生成发货单->确认生成发货单->去发货 ?逆向订单流程 1)前台页面确认收货->后台管理中心退货->填写退货信息点确定按钮->确认退货 ?商品添加流程_新商品 1)后台管理中心商品管理->新建商品类型/新建商品分类/新建商品品牌->添加新商品(通用信息,详细描述,其他信息,商品属性,商品相册,关联商品,配件,关联 文章) 考虑完所有流程后,再补充考虑部分异常情况,例如:流程中的先后顺序发生变化,或者跳过某个步骤后,系统能否完成后续流程作业。(有些流程是不可能调换顺序或跳过的) Q:流程分析法在设计测试用例的时候会经过很多页面,操作很多字段,这些页面和字段该如何取值呢? A:流程分析法一般考虑页面或字段的有效取值(一般取等价类中最不容易出错的值),测试过程中不关注页面输入域的各种取值情况,特别是错误取值的情况。目的是为了确保流程是可用的。 Q:流程分析法既然不能证明某个页面或字段没有问题,那用此法有何意义呢,为何不直接考虑验证每个页面和模块的各种有效和无效的取值?

白盒测试方法

一、白盒测试概念 1、定义 白盒测试又称结构测试、透明盒测试、逻辑驱动测试、基于代码的测试。盒子指被测试的软件,白盒指盒子是可视的。白盒测试是一种测试用例设计方法,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例。白盒测试主要针对被测程序的源代码,主要用于软件验证,不考虑软件的功能实现,只验证内部动作是否按照设计说明书的规定进行。 2、目的 我们一方面注重软件功能需求的实现,另一方面还要注重程序逻辑细节,主要是因为软件自身的缺陷,具体如下: 1)逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。日常处理往往被很好地了解,而“特殊情况”的处理则难于发现。 2)我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行。程序的逻辑流有时是违反直觉的,只有路径测试才能发现这些错误。 3)代码中的笔误是随机且无法杜绝的。笔误出现在主流上和不明显的逻辑路径上的机率是一样的。很多被语法检查机制发现,但是其他的会在测试开始时才会被发现。 4)功能测试本身的局限性。如果程序实现了没有被描述的行为,功能测试是无法发现的,例如病毒,而白盒测试很容易发现它。 3、目标 采用白盒测试必须遵循以下几条原则,才能达到测试的目标: 1)保证一个模块中的所有独立路径至少被测试一次。 2)所有逻辑值均需测试真(true) 和假(false)两种情况。 3)检查程序的内部数据结构,保证其结构的有效性。 4)在上下边界及可操作范围内运行所有循环。 4、黑白灰区别 黑盒测试技术:也称功能测试或数据驱动测试,只关注规格说明中的功能,测试者在程序接口对软件界面和软件功能进行测试,它只检查实现了的功能是否按照“用户需求说明书”的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。主要用于软件确认测试,结合兼容、性能测试等方面,但黑盒测试不能保证已经实现的各个部分都被测试到。黑盒测试适用于各阶段测试。 白盒测试技术:只关注软件产品的测试,深入到代码一级的测试,它是知道产品内部结构,通过测试来检测产品内部动作是否按照“设计规格说明书”的规定正常进行,按照程

报表测试用例设计方法总结

报表测试用例设计方法总结 报表的测试主要分为以下几个方面:界面,安全性,准确性,展示速度(性能) 数据统计方面 1、报表统计数据的正确性; 2、报表统计数据的完整性; 3、报表统计数据的合法性;比如,统计金额字段需求要求有“$”等; 报表格式 1、表头字段表示的正确性; 2、表头字段表示的完整性; 3、表头字段表示的字体,字号,美观程度; 4、各统计字段的显示是否满足需求;比如:数据过长时要求折行还是缩小; 5、页眉和页角的表示; 报表的预览和印刷 1、预览中的显示完整性; 2、多页情况下,第2页的表头显示; 3、能否实现需求要求的特定印刷情况;(比如,印刷使用指定的模板) 4、预览后印刷; 5、不预览,直接印刷 6、需求规定各类打印机的测试; 数据准确性测试,带有报表测试的系统分为两类,一类是业务系统中,带有统计分析功能模块,该模块中包含分析报表,这个系统的主体是业务系统,报表是为**业务的而提供帮助的。 比如说,应年检统计报表,某月应交罚款车辆统计报表,这样的报表数据准确与否,可通过增加、删减、修改相关业务或相关业务的参数,查看统计报表数据变化,检查数据准确性。

另一类是系统只有统计功能,就是我说的数据仓库展现这类,它与业务系统分离,并且经过多层处理,比如数据仓库的数据,经过抽取,清洗,展现前会经过数据挖掘,数据再处理,有些字段在原始数据表中根本就没有。这样的数据准确性测试比较复杂,当然检查出数据错误,修改定位也是很不容易的。 从整个项目节约成本看,逐层测试效果是最好的。完全修改率也是最高的。 首先建立测试数据模型,模拟所有应用表,建立简单易跟踪的数据用例,底层的数据表测试,方法很原始,嘿嘿,通过SQL语句和手工计算,对数据进行比对。对系统中的报表数据准确性测试方法较为灵活, ①系统中报表重叠的进行比对 ②对子报表汇总与父报表比对,就是对月报表汇总与年报表比对,日报表汇总与月报表比对,这只是一个方面,可以从维度关系考虑,地域,行政级别、时间,个人等方面下手,进行汇总比对 ③这个方法如果延伸点呢,可以将报表间的业务逻辑关系作为比对依据。呵呵,这要看测试人员的需求了解深度个人能力了。插几句不想干的话,做测试工作总让我保持快乐状态,前两天我的一个同事说,公司里一直没有人喜欢做测试工作,这个工作太枯燥。嘿嘿,我当时就说我做了这么多年的测试工作从来没有感觉到枯燥。重复性工作不代表枯燥,编程其实不也是重复嘛,人每天谁不重复昨天的事啊,吃饭,吃这个动作重复一生,有谁觉得麻烦枯燥啦? ④使用SQL和手工计算进行比对。以上是差错方式,接下来讲一下查什么错?哪些地方容易出错 ● 原始表使用错误:因为表比较多,又加上没有统一的数据关系对应表,很容易表使用错误,当然这应该是单元测试检查出来的错误。 ● 数据处理逻辑错误:这一点容易因为测试人员和开发人员对需求理解有偏差造成争执,所以在需求评审时,对数据处理规则用表达式或伪代码表示清楚。还有就是程序员失误,逻辑编写有偏差,边界值、特殊情况处理不当。 ● 数据权限:不同用户对数据有着不同的查看权限。这关系到数据的安全性。 ● 数据误差:数据的保留位数,数据是否是处理计算是否是最后一次计算使用了位数保留和四舍五入。 ● 由于字典表,数据错误,而造成的数据错误,如,根据性别统计,购买量,表中的男女颠倒,或者没有考虑性别缺失项,用了if else,这样就是把表中缺失该项内容的算成了

如何编写单元测试用例(白盒测试)

如何编写单元测试用例(白盒测试)。 一、单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。 测试的覆盖种类 1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。 2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。 3.条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。 4.判定——条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。 5.条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。 6.路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。 用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。 二、开始测试前的准备

在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全100%的发现所有BUG,我们所需要做的是用最少的资源,做最多测试检查,寻找一个平衡点保证程序的正确性。穷举测试是不可能的。所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法。 三、开始测试 基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次。 函数说明:当i_flag=0;返回 i_count+100 当i_flag=1;返回 i_count *10 否则返回 i_count *20 输入参数:int i_count , int i_flag 输出参数: int i_return; 代码: 1int Test(int i_count, int i_flag) 2 {

测试用例实例—常见功能测试点

测试用例实例--常见功能测试点 笔者在网上看到了一篇文章,个人认为此文对于“软件常用功能测试点”总结的很好,特此摘录下来和大家一起分享。 1. 登陆、添加、删除、查询模块是我们经常遇到的,这些模块的测试点该如何考虑 1)登陆 ①用户名和密码都符合要求(格式上的要求) ②用户名和密码都不符合要求(格式上的要求) ③用户名符合要求,密码不符合要求(格式上的要求) ④密码符合要求,用户名不符合要求(格式上的要求) ⑤用户名或密码为空 ⑥数据库中不存在的用户名,不存在的密码 ⑦数据库中存在的用户名,错误的密码 ⑧数据库中不存在的用户名,存在的密码 ⑨输入的数据前存在空格 ⑩输入正确的用户名密码以后按[enter]是否能登陆 ------------------------------------------------------------------------------------------------------ 2) 添加 ①要添加的数据项均合理,检查数据库中是否添加了相应的数据 ②留出一个必填数据为空

③按照边界值等价类设计测试用例的原则设计其他输入项的测试用例 ④不符合要求的地方要有错误提示 ⑤是否支持table键 ⑥按enter是否能保存 ⑦若提示不能保存,也要察看数据库里是否多了一条数据 ------------------------------------------------------------------------------------------------------ 3) 删除 ①删除一个数据库中存在的数据,然后查看数据库中是否删除 ②删除一个数据库中并不存在的数据,看是否有错误提示,并且数据库中没有数据被删除 ③输入一个格式错误的数据,看是否有错误提示,并且数据库中没有数据被删除。 ④输入的正确数据前加空格,看是否能正确删除数据 ⑤什么也不输入 ⑥是否支持table键 ⑦是否支持enter键 ------------------------------------------------------------------------------------------------------ 4)查询 精确查询:

测试用例模板

{ 项目名称} { 测试用例标题} 机构公开信息

版本历史

目录 0. 文档介绍 (5) 0.1文档目的 (5) 0.2文档范围 (5) 0.3读者对象 (5) 0.4参考文献 (5) 0.5术语与缩写解释 (5) 1. 接口-路径测试用例 (6) 1.1被测试对象(单元)的介绍 (6) 1.2测试范围与目的 (6) 1.3测试环境与测试辅助工具的描述 (6) 1.4测试驱动程序的设计 (6) 1.5接口测试用例 (6) 1.6路径测试的检查表 (7) 2. 功能测试用例 (8) 2.1被测试对象的介绍 (8) 2.2测试范围与目的 (8) 2.3测试环境与测试辅助工具的描述 (8) 2.4测试驱动程序的设计 (8) 2.5功能测试用例 (8) 3. 健壮性测试用例 (9) 3.1被测试对象的介绍 (9) 3.2测试范围与目的 (9) 3.3测试环境与测试辅助工具的描述 (9) 3.4测试驱动程序的设计 (9) 3.5容错能力/恢复能力测试用例 (9) 4. 性能测试用例 (10) 4.1被测试对象的介绍 (10) 4.2测试范围与目的 (10) 4.3测试环境与测试辅助工具的描述 (10) 4.4测试驱动程序的设计 (10) 4.5性能测试用例 (10) 5. 图形用户界面测试用例 (11) 5.1被测试对象的介绍 (11) 5.2测试范围与目的 (11)

5.3测试环境与测试辅助工具的描述 (11) 5.4测试驱动程序的设计 (11) 5.5测试人员分类 (11) 5.6用户界面测试的检查表 (11) 6. 信息安全性测试用例 (12) 6.1被测试对象的介绍 (12) 6.2测试范围与目的 (12) 6.3测试环境与测试辅助工具的描述 (12) 6.4测试驱动程序的设计 (12) 6.5信息安全性测试用例 (13) 7. 压力测试用例 (13) 7.1被测试对象的介绍 (13) 7.2测试范围与目的 (13) 7.3测试环境与测试辅助工具的描述 (13) 7.4测试驱动程序的设计 (13) 7.5压力测试用例 (14) 8. 可靠性测试用例 (14) 8.1被测试对象的介绍 (14) 8.2测试范围与目的 (14) 8.3测试环境与测试辅助工具的描述 (14) 8.4测试驱动程序的设计 (14) 8.5可靠性测试用例 (15) 9. 安装/反安装测试用例 (15) 9.1被测试对象的介绍 (15) 9.2测试范围与目的 (15) 9.3测试环境与测试辅助工具的描述 (16) 9.4测试驱动程序的设计 (16) 9.5安装/反安装测试用例 (16) 附录:评审意见 (16)

白盒测试:路径测试及测试用例设计

20 14 —20 15 学年第 2 学期 软件测试技术课程 实验报告 学院:计算机科学技术 专业:软件工程 班级:软件12401 姓名:李晶宇 学号:041240134 任课教师:刘玉宝

实验日期:2015年 6 月16 日实验题目实验5、白盒测试:路径测试及测试用例设计 实验目的1、掌握独立路径,程序基本路径测试的概念。 2、掌握独立路径测试法。 实验内容 程序int binsearch(int array[],int key)实现折半查找的功能。数组array元素按升序排列,length为数组array的长度,key为要查找的值。 试用独立路径集测试法测试该程序,撰写实验报告。 关键代码如下(Java实现) public static int binsearch(int array[],int key) { int low = 0; int high = array.length - 1; int middle; while(low <= high) { middle = (low+high)/2; if(array.[middle] == key) { return middle; }else if(array.[middle] < key) { low = middle +1; }else { high = middle - 1; } } return -1; } 实验步骤: 1)画出程序的流图(控制流程图)。

程序入口(数组元素升序) low <= high (low+high)/2 array[middle] == key Y N array[middle] < key key=middle Y N low=middle+1 high=middle-1 程序出口 2)计算流图G 的圈复杂度V(G)。 封闭区域:○2→○3→○4→○6→○7→○2→○10 ○2→○3→○4→○6→○8→○9→○2→○10 还有一个区域是这两个区域以外的区域,共有三个区域,即独立路径数的上界 是3,V(G)=3。 3)确定只包含独立路径的基本路径集。 V(G)值正好等于该程序的独立路径的条数。 程序的独立路径是: Path1:○1→○2→○3→○4→○5→○10 Path2:○1→○2→○3→○4→○6→○7→○2→○10 Path3:○1→○2→○3→○4→○6→○8→○9→○2→○10 4)根据上面的独立路径,设计测试用例,得到测试用例表。 为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证每一条路径可以被测试到,满足上面例子基本路径集的测试用例表如下: 2 10 1 4 6 5 7 8 9 3

测试用例范例

讨论用TestDirector管理测试用例 编制时间:2007-03-16 编制部门:测试组 编制人:郭宏元 “测试用例”虽有国标作蓝本,但实际中,一直以来“测试用例”是所有测试人员有争议的地方,此所谓“仁者见仁,智者见智”。而“法无定法,则无定则”,所有的规范与标准都是围绕更适应人们的工作环境而创建。在此,我就我的一些体会在此与大家分享。 一般来说,“测试用例”的编写主要分三大类,贯彻的原则与基本架构如下: 分类: 1、对验证过程的一个记录; 2、展现一个功能; 3、描述一个场景步骤; 原则: 1、有“对象”属性的描述; 2、阐述了某个“对象”的方法或事件。 3、对属性、方法或事件有详细的定义。 基本架构: 1、目的; 2、前提条件; 3、输入步骤(输入动作或数据,预期结果) 以下总结了一些针对测试用例的“编写要点”作出一些较简单的规范。以方便统一测试用例的编写,并保证使用最用效的测试用例来保证测试质量。我们都知道根据详细设计文档编写测试用例的目的不在于验证软件达到的功能,而在于验证软件应该达到的功能,这样可以去除软件开发过程中的随意性。所以下面就明确测试用例的“目的”、“范围”、“原则”是什么?以及采用的方法做了一点描述。 1、目的: 围绕测试名称或满足实现测试功能而进行。 2、范围:

适用于所要测试的质检项目。 3、功能测试用例编写原则 3.1单元测试功能用例的编写目的 单元测试用例的目的在于验证单个模块是否达到了详细设计说明书中规定的功能,由于是单个模块所以无法检验关联性,可能会牵扯到数据库的操作,例如:删除时,需要查看数据库是否完全删除了数据。 3.2集成测试功能用例的编写目的 集成测试功能用例的目的在于验证软件连接时,模块的连接是否正确(及数据的传递是否正确)。.我们的软件中体现出来的是,是否正确调用界面,界面之间显示的数据是否正确,特别是财务、费用、数据方面的。 集成测试用例的编写过程中,经常将功能用例与业务流程混合编写,因为在集成测试时需验证业务流程中的数据正确性,以及界面之间的数据传递的准确无误。 3.3系统测试业务流程用例的编写目的 系统测试业务流程用例的目的在于验证软件最终数据的准确性,我们的软件体现为,手工数据与报表数据的一直性。用例与用例之间有着一定的关系,目的性十分明确。 4、测试用例设计的原则 4.1全面性 指编写的测试用例应该覆盖所有的“概要设计文档”或“需求文档”以及“测试申请文档”中描述的功能。 4.1.1数据库程序基本的增、删、改功能 增、改测试用例重点在于数据合法性、正确性的检验和提示信息的正确性的检验。输入的数据可能有无限种组合,此时可以采用等价类划分和边界值法,下面有较详细的说明。 删除的测试用例比较简单,只有操作没有数据的输入,但是应该在“备注”中注明,删除的限制条件,以及数据库中应该删除的表的情况,有条件限制时,测试用例应该包含各种删除条件,必要时在添加或修改的测试用例后面或中间紧跟删除的测试用例。 4.1.2对于无输入的操作,应该详细描述其具体的操作步骤和结果

常见的测试用例设计方法都有哪些

常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 1. 等价类划分 常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 2. 边界值分析法 边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误. 使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据. 3. 错误推测法 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例. 4. 因果图方法 前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况. 5. 正交表分析法 有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。 6. 场景分析方法

XX管理系统测试用例

XXX管理系统_系统测试用例

修改记录

目录 1文档介绍 (5) 1.1参考文献 (5) 2测试环境与测试辅助工具的描述 (5) 2.1系统硬件配置 (5) 2.2系统软件配置 (5) 3接口测试用例 (5) 4功能测试用例 (5) 4.1被测试对象的介绍 (5) 4.2测试围与目的 (5) 4.3功能测试用例 (6) 4.3.1参建单位注册管理 (6) 4.3.1.1参建单位注册 (6) 4.3.2企业基本情况 (6) 4.3.2.1企业基本情况 (6) 4.3.2.2填报企业基本情况 (7) 4.3.2.3变更企业基本情况 (7) 4.3.3参建单位管理 (8) 4.3.3.1审批参建单位 (8) 4.3.3.2查看参建单位 (9) 4.3.4工程申报管理 (10) 4.3.4.1新增工程申报 (10) 4.3.4.2导入工程申报 (11) 4.3.4.3修改工程申报 (11) 4.3.4.4删除工程申报 (12) 4.3.4.5查看工程申报 (12) 4.3.4.6申请变更工程申报 (13) 4.3.5工程申报变更审批管理 (14) 4.3.5.1工程申报变更审批 (14) 4.3.5.2查看工程申报 (14) 4.3.6公告管理 (15) 4.3.6.1公告发布 (15) 4.3.6.2公告查看 (15) 4.3.6.3公告生效(失效) (16) 4.3.7培训计划管理 (17) 4.3.7.1发布培训计划 (17) 4.3.7.2导入培训计划 (17) 4.3.7.3查看培训计划 (17) 4.3.7.4修改培训计划 (18)

4.3.7.5删除培训计划 (18) 4.3.7.6意向培训计划 (19) 4.3.8年检管理 (19) 4.3.8.1填写年度复查表 (19) 4.3.8.2查看年检 (21) 4.3.9年检审批管理 (21) 4.3.9.1发布年检通知 (21) 4.3.9.2审批年检 (22) 4.3.9.3查看年检 (22) 4.3.10统计年检信息 (23) 4.3.10.1统计年检信息 (23)

白盒测试用例练习题(1)

白盒测试用例练习 1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); //语句块1 } if ( (x==4)||(y>5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 } a Y c N b e Y N d x>3 and z<10 x=4 or y>5 j=j%3 j=x*y+10 k=x*y-1 j=sqrt(k) k=0 j=0

由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、语句覆盖 测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) 2、判定覆盖 p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) x=2,z=11,y=5 k=0,j=0 F F P4(a-b-d) 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入输出判定M的取值判定N的取值覆盖路径x=5,z=5,y=4 k=19,j=sqrt(19)%3 T F P2(a-c-d) x=4,z=11,y=6 k=0,j=1 F T P3(a-b-e) 3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 测试用例输入输出取值条件具体取值条件覆盖路径x=4,z=5,y=8 k=31, j=0 T1,T2,T3,T4 x>3,z<10,x=4,y>5 P1(a-c-e) x=3,z=11,y=5 k=0, j=0 F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d) 4、判定/条件覆盖 测试用例输入输出取值条件具体取值条件覆盖路径x=4,z=5,y=8 k=31, j=0 T1,T2,T3,T4 x>3,z<10,x=4,y>5 P1(a-c-e) x=3,z=11,y=5 k=0, j=0 F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d)

常见的测试用例设计方法都有哪些

常见的测试用例设计方法都有哪些 常见的测试用例设计方法都有哪些? 请分别以具体的例子来说明这些方 法在测试用例设计工作中的应用。 1. 等价类划分常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并 合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 2. 边界值分析法边界值分析方法是对等价类划 分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入

输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误. 使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据. 3. 错误推测法基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0 的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例. 4. 因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查

白盒测试及用例设计

白盒测试 白盒测试(White-box Testing,又称逻辑驱动测试,结构测试) 是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。白盒测试又称为结构测试和逻辑驱动测试。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。 六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。 "白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。

测试用例总结

测试用例 一、写测试用例时我们可以侧重从需求上看需要完成的功能方面来写(比如说某一标签或某一按钮点击以后会实现的功能以及页面跳转等) 然后在看输入框界面等 二、测试用例设计考虑的方面 完成了测试需求分析和软件流程分析后,开始着手设计测试用例。测试用例设计的类型包括功能测试,边界测试,异常测试,性能测试,压力测试等。在用例设计中,除了功能测试用例外,应尽量考虑边界、异常、性能的情况,以便发现更多的隐藏问题。 (1)功能测试:测试某个功能是否满足需求的定义,功能是否正确,完备。 适合的技术:由业务需求和设计说明导出的功能测试、等价类划分 (2)边界测试:对某个功能的边界情况进行测试。 适合的技术:边界值划分 (3)异常测试:对某些功能来说,其边界情况无法简单的了解或某些操作不完全是正确的但又是可能发生的,类似这样的情况需要书写相关的异常测试。 适合的技术:由业务需求和设计说明导出的特殊业务流程、错误猜测法、边界值分析、内部边界值测试、 (4)性能测试:检查系统是否满足在需求中所规定达到的性能,性能主要包括了解程序的内外部性能因素。内部性能因素包括测试环境的配置,系统资源使用状况;外部因素包括响应时间,吞吐量等。 适合的技术:业务需求和设计说明导出的测试 (5)压力测试:压力测试又称强度测试,主要是检查系统运行环境在极限情况下软件运行的能力,比如说给一个相当大的负荷或网络流量给应用软件兼容测试:测试软件产品在不同的平台,不同的工具,相同工具的不同版本下功能的兼容性。 三、以登陆窗口为例来设计测试用例 我把这个测试用例分为三层结构,表单测试、逻辑判断、业务流程。 第一层,表单测试为最底层(最基础的)。这部分的测试用例是对登陆窗口这个界面的输入框、按钮功能、界面等最基本功能的测试。一般来说登陆用户名和登陆用户密码是输入框的形式体现,那么,我们需要的是针对这两个输入框进行功能的测试。这时,我们只要考虑这个输入框的功能,而不需要考虑业务方面的内容。这样,我们考虑就是这个输入框的长度限制是多少?能否输入特殊字符?能否输入全角字符?当然,登陆窗口还有其他按钮,例如登

软件测试中如何编写单元测试用例(白盒测试)

软件测试中如何编写单元测试用例(白盒测试) 测试用例(T est Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。 测试用例(T est Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。 随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测试方式则由单纯手工测试发展为手工、自动兼之,并有向第三方专业测试公司发展的趋势。 要使最终用户对软件感到满意,最有力的举措就是对最终用户的期望加以明确阐述,以便对这些期望进行核实并确认其有效性。测试用例反映了要核实的需求。然而,核实这些需求可能通过不同的方式并由不同的测试员来实施。例如,执行软件以便验证它的功能和性能,这项操作可能由某个测试员采用自动测试技术来实现;计算机系统的关机步骤可通过手工测试和观察来完成;不过,市场占有率和销售数据(以及产品需求),只能通过评测产品和竞争销售数据来完成。 既然可能无法(或不必负责)核实所有的需求,那么是否能为测试挑选最适合或最关键的需求则关系到项目的成败。选中要核实的需求将是对成本、风险和对该需求进行核实的必要性这三者权衡考虑的结果。 确定测试用例之所以很重要,原因有以下几方面。 测试用例构成了设计和制定测试过程的基础。测试的“深度”与测试用例的数量成比例。由于每个测试用例反映不同的场景、条件或经由产品的事件流,因而,随着测试用例数量的增加,您对产品质量和测试流程也就越有信心。判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这又是以确定、实施和/或执行的测试用例的数量为依据的。类似下面这样的说明:“95 % 的关键测试用例已得以执行和验证”,远比“我们已完成95 % 的测试”更有意义。测试工作量与测试用例的数量成比例。根据全面且细化的测试用例,可以更准确地估计测试周期各连续阶段的时间安排。测试设计和开发的类型以及所需的资源主要都受控于测试用例。测试用例通常根据它们所关联关系的测试类型或测试需求来分类,而且将随类型和需求进行相应地改变。最佳方案是为每个测试需求至少编制两个测试用例:·一个测试用例用于证明该需求已经满足,通常称作正面测试用例;·另一个测试用例反映某个无法接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。 前段时间公司进行有关测试的培训,集成测试,性能测试,压力测试说了很多。由于本人还处于Coder阶段,只是对单元测试有了些了解。写下来怕以后自己忘记了。都是些自己的看法,不一定准确,欢迎高手指教。 一、单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用

测试用例编写的总结

测试用例编写的总结 通过软件测试培训,在大庆浦东软件平台有限公司经过一周的软件测试实训,从对软件测试没有什么经验的我初步掌握了软件测试的方法和技能,收获颇多的心得。下面是为大家收集整理的软件测试培训心得,欢迎大家阅读。 软件测试培训心得篇1 20xx年x月x日。我怀着对提高并实现自我价值的心态,走进深圳走秀网络科技有限公司的大门,开始了自己大学里兼职实习工作。转眼间。6个月的实习时间就要过去了。回想起这段时间的工作过程,我深深的认识到在走秀网实习的选择是绝对正确的,走秀网和公司的同事们对我个人产生的积极影响也是超越我料想之中的。现将这段时间的工作进行如下总结。 首先,要具有良好的学习能力。刚进走秀,带我的老大是哈尔滨人,我跟她很投缘。开始的一个星期,我只是熟悉公司的一些业务和我们前端的测试范围,在熟悉业务的过程中,我发现这些页面上的东西看上去挺简单的,但是要深入了解还是需要很长的一段时间。期间老大叫一个老员工带着我去测试一些之前xiu2.0所遗留的简单的bug。走秀网的测试部还比较大,所以对工作的流程和上线之前的版本控制的非常严格。我们在上线之前,会经过两套环境,功能测试环境和镜像环境,功能测试环境是对需求和功能的一个详细的验证环境,镜像环境是模拟生产环境回归之前我们在功能测

试环境上锁遗留的一些小的bug。因为不知道这些转测试的bug是怎么产生的,所以需要去跟开发人员沟通,开始的时候自己一个人不敢过去开发部,就让老员工(才哥)带着过去,一段时间过后,我开始自己去和开发沟通交流,从发现问题的重现,到催促开发修改和转测试,这一段时间让我深刻体会到沟通时多么重要。 在走秀期间,我们测试部总监还会对我们不定时的培训。教会我们测试的工作流程和每个阶段应该展开的工作范畴。作为测试,必要会使用的缺陷管理工具bugzilla和测试用例管理工具testlink,还给我们培训了,如何使用自动化工具ruby+watir来对一些测试点进行自动化脚本的编写。慢慢的,在对公司的业务了解的比较透的时候,老大就开始让我们自己对一些小需求进行测试,测试的过程中,不仅仅是对页面和表面功能进行测试,还要根据需求文档和页面的显示对数据库表进行查询操作,查看页面的显示和功能是否和数据表里面的一致,还要在后台日志中查看是否有报错。所以,测试并不是像我想象中的那么简单,不是在页面上点来点去就可以测的好的。 实习可以使每一个学生有更多的机会尝试不同的工作,扮演不同的社会角色,逐步完成职业化角色的转化,发现自己真实的潜力和兴趣,以奠定良好的事业基础,也为自我成长丰富了阅历,促进整个社会人才资源的优化配置。作

软件测试总结

一、软件测试流程 整体流程:测试需求分析,测试计划编写,测试用例编写,测试执行,缺陷记录,回归测试,判断测试结束,测试报告提交。 测试流程依次如下: 1.需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。--testing team。一般而言, 需求分析包括软件功能需求分析、测试环境需求分析等 2.测试计划: 根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资 源等。---testing leader or testing manager。测试目的、测试环境、测试方法、测试用例、测试工具 3.用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。---testing leader, senior tester 4.执行测试:根据测试用例的详细步骤,执行测试用例。--every tester(主要是初级测试人员) 5.执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。--every tester(主要是初级测试人员) 6.defect tracking(缺陷跟踪):追踪leader分配给你追踪的bug.直到 bug fixed。--every tester 7.测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug. 8.用户体验、软件发布等…… 总结:项目立项后,开始写测试计划,根据需求编写测试需求,根据测试需求编写测试用例,根据测试用例执行测试,把没用通过的测试用例写成测试缺陷报告,进行回归测试,直到测试的结束编写测试总结,这每个步骤都需要审核通过。 二、软件测试方法 1、黑盒测试 概念:完全不考虑程序或软件的内部逻辑结构和处理过程的情况下,根据需求分析编写并执行测试用例,在程序或软件的界面上进行测试。 主要目的:(1)是否有不正确的或者遗漏的功能。(2)能都正确输入和输出结果。(3)是否有数据结构错误或外部信息访问错误。(4)性能上是否满足要求。(5)是否有初始化或终止行错误。 优点:(1)即使程序发生变化,之前的测试用例依然可以使用;(2)测试用例和软件开发可以同时进行,加快了测试和开发的速度。 局限性:(1)难以查找问题的原因和位置;(2)黑盒测试的依据是需求分析,所以无法发现需求分析上的错误。 测试方法: (1)等价类划分 包括有效等价类(符合需求规格说明)和无效等价类(违反需求规格说明)。 a)确定输入取值范围:可以确定一个有效等价类和两个无效等价类 b)确定输入某个值:可以确定一个有效等价类和两个无效等价类

相关文档
最新文档