基于C#和XML的自动化测试框架系统的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
形式呈现给用户。
1 U i测试框架 N nt
对于单个的测试运行,挖潜的机会在于测试的设置、开始 运行跟最终结果的对比这两种情形。有时候,我们需要反复修 改程序,重新汇编和重新测试。这样,每一个循环过程中各种 手工键人的设置与指令所花费的时间加起来就非常可观。如果 能利用一个 自 动测试软件工具来帮助测试,就能节省大量的时
单元测试工具 NUnt i的基础上 ,并进而扩展 了 NU i的功能 , nt 以满足我们 自己的需要 。
单元测试的 目的是要检验程序最小单位 ( 模块)有无错 误 ,它是在编码完成后,首先要施行的测试工作。一般由编码 人员 自己来完成,因而人们通常把单元测试看成是编码步骤的 附属品。单元测试大多从程序的内部结构出发设计测试用例, 即采用白盒测试方法,多个程序模块可以并行地独立开展测试
D- t t g T e t g u ikp a te , h h l b al t b bo sd te b T e utr o te o a d e- I. i . t i rsl s t h X 1e n s h e n e t e s MI w i cu e e e w e o h w . s c e h atm t 一t s c o d b o r n e h t u f u r e s t g m w r ad ds n t n iut t . i f e ok te i pt r ae s a d n r a n h eg a e r l r e l K y r ; o a d i ; t i ; i C井;X s atm t t t g u it t g N n ; ew d u o e e n s n e n s U t MI
N n ' ucos epne bsd C¥ ad . h f m w r ds nd pr nt y i er s n t g t te U i s tn ae add e o ¥ X t fn i r x a n n MI T e e ok i e spot o ol U t ge i t i b a o r a eg u s n n 一R s o e n u l h s s
关健词 :自动化测试 ;单元测试 :N n ; ;X . Ui C t # MI
D s n A tmae 一t t g a w r Ss m s o C# ad ei o uo t g f d e i F me ok t B e n n X sn r y e a d ML
间。
对于系统测试和回归测试这类涉及大量测试个案运行的情 况,挖潜的机会除了利用软件工具来实现 自动化之外,就是怎
样充分利用一切硬件资源。往往是,就算在白天的工作时间 内,每台计算机的负荷都没有被充分利用。能够把大量测试个 案分配到各台机器上去同时运行,就能节省大量的时间。另
外 ,把大量 的系统测试及回归测试安排到夜间及周末运行 ,更 能提高效率 。微软就是这样做的。
执行 Unt s 的程序) iT t es ,这个 R m t et u nr e oe s n e 会扫描已经 T R
N n[是一个为. e架构准备的自 U i〕 t ' Nt 动化单元测试框架,
它的作用就是帮助你方便地完成单元测试工作,同 J n 一 Ui t 样,都是 x i家族的成员。N i的框架类 图如图 1 Un t Un t 所示 。 根据 X 极限编程户〕 P( 的理论,先编写测试,然后让测试来驱 动你的设计和编码过程。最终得到一套丰富的测试集,它赋予 开发者对代码进行重构以极大 的 自信心。 “ 用代码来证明” (rv iwt cd) Poe i oe,测试先行,这样,当所有的测试通过之 t h
A s at n o ae e i f e ok u . e S s m u t e o h u t sn f e ok i ad ed A atm t 一t t g m w r aot N t t i b i bsd te i et g m w r N n , epn bt c: u r d sn r a b y e s l a n n 一t i r a U t n x
计算机测量与控制.06 1 (0 20 . 1) 4
1 04 3
C m ue Mesrm n o pt r aue et& C nrl ot o
中圈分类号 : P 1 T 31 文献标识码 : A
自动化测试
文章编号:61 5820 )0 34 3 17一49(0 61一10-0
基于 C #和 X ML的自动化测试框架系统的设计
齐 索,那正宏,赵政灰
( 西北工业大学 计算机学院,陕西 西安 707) 102
摘要:在单元测试框架 N n 的基础上,建立了针对 . e 架构的自动化测试框架,结合 C并和 X Ui t Nt ML语言扩展了 N n 的功能; Ui t 设计的框架不仅可以支持单元回归测试,而且可以支持 D- I 1文件的测试,测试结果用 X ML文件保存,可在 WE B上浏览,详细地阐述 了该自动化测试框架的结构以及设计模式,该设计思路对于研究自动化测试具有一定的参考价值。
0 引言 软件测试对确保软件质量有着不可替代的重要性,为了减 少测试开销,同时在有限时间内进行更多的测试,让一部分工 作进行 自 动测试是理想的解决方案。特别是针对版本更新将有 很多重复的基本测试工作,这时进行 自动测试是非常有效的。 软件测试的工作量很大 ( 据统计,会用到 4 %的开发时 0 间;一些可靠性要求非常高的软件,测试时间甚至占到总开发 时间的 6%) 0 ,但测试却是在整个软件过程中极有可能应用计 算机进行 自动化的工作,原因是测试的许多操作是重复性的、 非智力创造性的、需要细致的工作。计算机就最适合代替人类 去完成这些任务。企业在这方面的投资, 会对整个开发工作的 质量、成本、和周期带来非常明显的效果。软件测试 自动化 , 已经成为国内软件工程领域一个众所周知的课题;不言而喻, 软件测试从业者都意识到软件测试这项工作走向成熟化、标准 化的一个必经之路就是要实施 自动化测试。 成熟的测试 自动化机制,可以实现 “ 夜间侧试”和 “ 无人 测试” 动化测试是可重复的,在相同的序列中使用完全相 。自 同的输人再进行测试,而有些条件在手工测试中是不能保证 的。自动测试可以做到即使最大的改动也可以以最小的代价进 行全面的测试。测试 自 动化还可以省去许多繁琐和重复的测试 工作。测试越繁杂,就越需要测试工具的支持。 本文在自 主研究、开发自动测试工具 A t e e 的基础 u Ts r o t 上,对 自动化软件测试 的各种实现技术进行了较详细的介绍。 A t et 是一个 基于 Mioot e 的 自动化测试工具, u Ts r o e c sf N t r .
赵政文(95 男, 15 一) 陕西西安人, 教授, 硕士生导师, 主要从事软件
工程 、 数据结构与算法分析方 向的研究 。
中华测控 网
c i a ac m h n mc .o
第 1 0期
齐震,等 :基于 C #和 X ML的自动化测试框架系统的设计
10 3 5
并没有牺牲 C与 C ++程序员所关心的各种特性 。 C #专门用于 . e运行时。C Nt 井编译器只能生成受管制的 代码,也可以使用 . e 基类。C#的重要性体现在两个方面 : Nt 第一,它是专门为与 . e 运行时高度兼容而设计的。第二, Nt 它是一种现代 的面向对象的语言,在设计它时,Mioot c sf还 r 学习了其他语言的经验,这些语言是近 2 年来面向对象规则 0 得到广泛应用后开发出来的。C#就其本身而言只是一种语 言,尽管它是用于生成面向. e环境的代码,但它本身并不 Nt 是 . e的一部分。一些特性由. e支持, C Nt Nt 但 井不支持;而 另一些特性 C 井支持,但 . e却不支持。 Nt 在实践中,许多企业 自行开发的自动化工具都是利用一些 现成的软件工具再加上 自己写的程序而组成的,没有形成基于 . 的自动化测试框架的特色。本文开发的系统针对 C# Nt e ( 语法与J V A A相似,运行期与 C 1 +-相似)的特点,在单元 一 测试上,保持和 J i框架一致 ,可用性非常强 ;同时,利用 Un t X MI具有良好交换数据的特点,也能根据需要随时改进测试 数据,具有良好的弹性。因此 ,本文讨论的自动化测试框架就 是建立在 N i的基础上进行开发构建的。 Un t
C 1 # [是一种新的现代的面向对象的程序开发语言,它使 3
得程序员能够在 . E N T平台上快速开发种类丰富的应用程序。
. N T平台提供了大量的工具和服Βιβλιοθήκη Baidu, E 能够最大限度地发掘和 使用计算及通信能力。由于其遗留的面向对象的设计,从构建
组件形式的高层商业对象到构建系统级应用程序,C并将是最 合适的选择。使用 C并语言设计 的组件能够用 于 We b服务, 这样通过 It nt ne e,可以被运行于任何操作系统上为任何编程 r 语言所调用。C #在带来对应用程序的快速开发能力的同时,
收稿日期:06 0 - 7 修回日期:06 3 4 20 - 2 1; 20 - - 0 2.
作者简介 : 齐震(91 , , 18 一)男 陕西西安人 , 硕士研究生 , 主要从 事软 件工程与网络软件方 向的研究 。
A t e e Fa e ok u T s r m w r 提供了一种很便捷的 自动测试方法, o t r
Qi n D n Z eg o g Z a Z eg e Z e , g n h n , ho n w n h e h h
(ntue C mptr N r w s n ye nc Unv s y X a r P lt h i l i ri , ' 70 7 , hn) Isi t o o ue, t et t f oh e o c a e t i n 10 2 C i a
工作。
. 引进 了一个新的程序开发的概念一 Atbt 属 Nt e ti e ru
性) t iue 以在 C#程序代码之上再加人 meaaa( ,A t b t 可 r tdt 元
数据,描述程序代码的资料) 。一般来说 A tbt不会影响到 ti e ru 主要 C 程序代码的执行,其功能是在所写程序代码之上添加 # 了额外的信息。A tbt 主要使用在注释程序代码的时候, ti e ru 但是 A tbt也可以用来提供有关 A s b 的额外信息, ti e ru sm l e y 其 它的程序就算没有见过这个 A s b ,也可以使用这些信息。 se l m y 在 A tT s r uo et 里面,作者设计一个 R m t etu nr( e e oe s n e 负责 T R
时我们也就是完成 了代码的编写工作。
编译好的库文件或可执行文件,并且从 Atbt 里面知道哪 ti e ru 些 c s s是 t t se,哪些 m tos是 需 要 执行 的 t t ls ae e c ss s l a ehd e s me os t d。然后,T s R n e 使用 . e 的反射 ( eet n h et nr u Nt R f co ) l i 技术来执行这些 t t tos (N t m w r e me d , . Fa e ok中提供 了 s h e r Ss m Rfco 命名空间,这样我们就可以方便的获得 yt . ltn e ee i . 组件的信息。当想获得正在使用的组件的详细信息,或 Nt e 者在运行期间查询一个组件信息的时候,这个功能将变得十分
当用户编写完 自己的 T s cd 之后,编译成库文件或者可执 et e o 行文件,作为一个基本的侧试集 。当测试产品新的 B i 产生 ud l
时,A t e e可以运行写好的测试集, u Ts r o t 测试结果将被实时地 提供,详细的测试信息也将被提供,包括错误代码位置,错误 的产品外观将会作为图片输出。测试结果将被自动存储成 x l m 文件,通过不同的 T as t 文件,结果可以很容易地以各种 r le na
1 U i测试框架 N nt
对于单个的测试运行,挖潜的机会在于测试的设置、开始 运行跟最终结果的对比这两种情形。有时候,我们需要反复修 改程序,重新汇编和重新测试。这样,每一个循环过程中各种 手工键人的设置与指令所花费的时间加起来就非常可观。如果 能利用一个 自 动测试软件工具来帮助测试,就能节省大量的时
单元测试工具 NUnt i的基础上 ,并进而扩展 了 NU i的功能 , nt 以满足我们 自己的需要 。
单元测试的 目的是要检验程序最小单位 ( 模块)有无错 误 ,它是在编码完成后,首先要施行的测试工作。一般由编码 人员 自己来完成,因而人们通常把单元测试看成是编码步骤的 附属品。单元测试大多从程序的内部结构出发设计测试用例, 即采用白盒测试方法,多个程序模块可以并行地独立开展测试
D- t t g T e t g u ikp a te , h h l b al t b bo sd te b T e utr o te o a d e- I. i . t i rsl s t h X 1e n s h e n e t e s MI w i cu e e e w e o h w . s c e h atm t 一t s c o d b o r n e h t u f u r e s t g m w r ad ds n t n iut t . i f e ok te i pt r ae s a d n r a n h eg a e r l r e l K y r ; o a d i ; t i ; i C井;X s atm t t t g u it t g N n ; ew d u o e e n s n e n s U t MI
N n ' ucos epne bsd C¥ ad . h f m w r ds nd pr nt y i er s n t g t te U i s tn ae add e o ¥ X t fn i r x a n n MI T e e ok i e spot o ol U t ge i t i b a o r a eg u s n n 一R s o e n u l h s s
关健词 :自动化测试 ;单元测试 :N n ; ;X . Ui C t # MI
D s n A tmae 一t t g a w r Ss m s o C# ad ei o uo t g f d e i F me ok t B e n n X sn r y e a d ML
间。
对于系统测试和回归测试这类涉及大量测试个案运行的情 况,挖潜的机会除了利用软件工具来实现 自动化之外,就是怎
样充分利用一切硬件资源。往往是,就算在白天的工作时间 内,每台计算机的负荷都没有被充分利用。能够把大量测试个 案分配到各台机器上去同时运行,就能节省大量的时间。另
外 ,把大量 的系统测试及回归测试安排到夜间及周末运行 ,更 能提高效率 。微软就是这样做的。
执行 Unt s 的程序) iT t es ,这个 R m t et u nr e oe s n e 会扫描已经 T R
N n[是一个为. e架构准备的自 U i〕 t ' Nt 动化单元测试框架,
它的作用就是帮助你方便地完成单元测试工作,同 J n 一 Ui t 样,都是 x i家族的成员。N i的框架类 图如图 1 Un t Un t 所示 。 根据 X 极限编程户〕 P( 的理论,先编写测试,然后让测试来驱 动你的设计和编码过程。最终得到一套丰富的测试集,它赋予 开发者对代码进行重构以极大 的 自信心。 “ 用代码来证明” (rv iwt cd) Poe i oe,测试先行,这样,当所有的测试通过之 t h
A s at n o ae e i f e ok u . e S s m u t e o h u t sn f e ok i ad ed A atm t 一t t g m w r aot N t t i b i bsd te i et g m w r N n , epn bt c: u r d sn r a b y e s l a n n 一t i r a U t n x
计算机测量与控制.06 1 (0 20 . 1) 4
1 04 3
C m ue Mesrm n o pt r aue et& C nrl ot o
中圈分类号 : P 1 T 31 文献标识码 : A
自动化测试
文章编号:61 5820 )0 34 3 17一49(0 61一10-0
基于 C #和 X ML的自动化测试框架系统的设计
齐 索,那正宏,赵政灰
( 西北工业大学 计算机学院,陕西 西安 707) 102
摘要:在单元测试框架 N n 的基础上,建立了针对 . e 架构的自动化测试框架,结合 C并和 X Ui t Nt ML语言扩展了 N n 的功能; Ui t 设计的框架不仅可以支持单元回归测试,而且可以支持 D- I 1文件的测试,测试结果用 X ML文件保存,可在 WE B上浏览,详细地阐述 了该自动化测试框架的结构以及设计模式,该设计思路对于研究自动化测试具有一定的参考价值。
0 引言 软件测试对确保软件质量有着不可替代的重要性,为了减 少测试开销,同时在有限时间内进行更多的测试,让一部分工 作进行 自 动测试是理想的解决方案。特别是针对版本更新将有 很多重复的基本测试工作,这时进行 自动测试是非常有效的。 软件测试的工作量很大 ( 据统计,会用到 4 %的开发时 0 间;一些可靠性要求非常高的软件,测试时间甚至占到总开发 时间的 6%) 0 ,但测试却是在整个软件过程中极有可能应用计 算机进行 自动化的工作,原因是测试的许多操作是重复性的、 非智力创造性的、需要细致的工作。计算机就最适合代替人类 去完成这些任务。企业在这方面的投资, 会对整个开发工作的 质量、成本、和周期带来非常明显的效果。软件测试 自动化 , 已经成为国内软件工程领域一个众所周知的课题;不言而喻, 软件测试从业者都意识到软件测试这项工作走向成熟化、标准 化的一个必经之路就是要实施 自动化测试。 成熟的测试 自动化机制,可以实现 “ 夜间侧试”和 “ 无人 测试” 动化测试是可重复的,在相同的序列中使用完全相 。自 同的输人再进行测试,而有些条件在手工测试中是不能保证 的。自动测试可以做到即使最大的改动也可以以最小的代价进 行全面的测试。测试 自 动化还可以省去许多繁琐和重复的测试 工作。测试越繁杂,就越需要测试工具的支持。 本文在自 主研究、开发自动测试工具 A t e e 的基础 u Ts r o t 上,对 自动化软件测试 的各种实现技术进行了较详细的介绍。 A t et 是一个 基于 Mioot e 的 自动化测试工具, u Ts r o e c sf N t r .
赵政文(95 男, 15 一) 陕西西安人, 教授, 硕士生导师, 主要从事软件
工程 、 数据结构与算法分析方 向的研究 。
中华测控 网
c i a ac m h n mc .o
第 1 0期
齐震,等 :基于 C #和 X ML的自动化测试框架系统的设计
10 3 5
并没有牺牲 C与 C ++程序员所关心的各种特性 。 C #专门用于 . e运行时。C Nt 井编译器只能生成受管制的 代码,也可以使用 . e 基类。C#的重要性体现在两个方面 : Nt 第一,它是专门为与 . e 运行时高度兼容而设计的。第二, Nt 它是一种现代 的面向对象的语言,在设计它时,Mioot c sf还 r 学习了其他语言的经验,这些语言是近 2 年来面向对象规则 0 得到广泛应用后开发出来的。C#就其本身而言只是一种语 言,尽管它是用于生成面向. e环境的代码,但它本身并不 Nt 是 . e的一部分。一些特性由. e支持, C Nt Nt 但 井不支持;而 另一些特性 C 井支持,但 . e却不支持。 Nt 在实践中,许多企业 自行开发的自动化工具都是利用一些 现成的软件工具再加上 自己写的程序而组成的,没有形成基于 . 的自动化测试框架的特色。本文开发的系统针对 C# Nt e ( 语法与J V A A相似,运行期与 C 1 +-相似)的特点,在单元 一 测试上,保持和 J i框架一致 ,可用性非常强 ;同时,利用 Un t X MI具有良好交换数据的特点,也能根据需要随时改进测试 数据,具有良好的弹性。因此 ,本文讨论的自动化测试框架就 是建立在 N i的基础上进行开发构建的。 Un t
C 1 # [是一种新的现代的面向对象的程序开发语言,它使 3
得程序员能够在 . E N T平台上快速开发种类丰富的应用程序。
. N T平台提供了大量的工具和服Βιβλιοθήκη Baidu, E 能够最大限度地发掘和 使用计算及通信能力。由于其遗留的面向对象的设计,从构建
组件形式的高层商业对象到构建系统级应用程序,C并将是最 合适的选择。使用 C并语言设计 的组件能够用 于 We b服务, 这样通过 It nt ne e,可以被运行于任何操作系统上为任何编程 r 语言所调用。C #在带来对应用程序的快速开发能力的同时,
收稿日期:06 0 - 7 修回日期:06 3 4 20 - 2 1; 20 - - 0 2.
作者简介 : 齐震(91 , , 18 一)男 陕西西安人 , 硕士研究生 , 主要从 事软 件工程与网络软件方 向的研究 。
A t e e Fa e ok u T s r m w r 提供了一种很便捷的 自动测试方法, o t r
Qi n D n Z eg o g Z a Z eg e Z e , g n h n , ho n w n h e h h
(ntue C mptr N r w s n ye nc Unv s y X a r P lt h i l i ri , ' 70 7 , hn) Isi t o o ue, t et t f oh e o c a e t i n 10 2 C i a
工作。
. 引进 了一个新的程序开发的概念一 Atbt 属 Nt e ti e ru
性) t iue 以在 C#程序代码之上再加人 meaaa( ,A t b t 可 r tdt 元
数据,描述程序代码的资料) 。一般来说 A tbt不会影响到 ti e ru 主要 C 程序代码的执行,其功能是在所写程序代码之上添加 # 了额外的信息。A tbt 主要使用在注释程序代码的时候, ti e ru 但是 A tbt也可以用来提供有关 A s b 的额外信息, ti e ru sm l e y 其 它的程序就算没有见过这个 A s b ,也可以使用这些信息。 se l m y 在 A tT s r uo et 里面,作者设计一个 R m t etu nr( e e oe s n e 负责 T R
时我们也就是完成 了代码的编写工作。
编译好的库文件或可执行文件,并且从 Atbt 里面知道哪 ti e ru 些 c s s是 t t se,哪些 m tos是 需 要 执行 的 t t ls ae e c ss s l a ehd e s me os t d。然后,T s R n e 使用 . e 的反射 ( eet n h et nr u Nt R f co ) l i 技术来执行这些 t t tos (N t m w r e me d , . Fa e ok中提供 了 s h e r Ss m Rfco 命名空间,这样我们就可以方便的获得 yt . ltn e ee i . 组件的信息。当想获得正在使用的组件的详细信息,或 Nt e 者在运行期间查询一个组件信息的时候,这个功能将变得十分
当用户编写完 自己的 T s cd 之后,编译成库文件或者可执 et e o 行文件,作为一个基本的侧试集 。当测试产品新的 B i 产生 ud l
时,A t e e可以运行写好的测试集, u Ts r o t 测试结果将被实时地 提供,详细的测试信息也将被提供,包括错误代码位置,错误 的产品外观将会作为图片输出。测试结果将被自动存储成 x l m 文件,通过不同的 T as t 文件,结果可以很容易地以各种 r le na