CN102227716A - 动作验证装置、动作验证方法、以及动作验证系统 - Google Patents

动作验证装置、动作验证方法、以及动作验证系统 Download PDF

Info

Publication number
CN102227716A
CN102227716A CN2010800034351A CN201080003435A CN102227716A CN 102227716 A CN102227716 A CN 102227716A CN 2010800034351 A CN2010800034351 A CN 2010800034351A CN 201080003435 A CN201080003435 A CN 201080003435A CN 102227716 A CN102227716 A CN 102227716A
Authority
CN
China
Prior art keywords
mentioned
function
file
test
webpage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800034351A
Other languages
English (en)
Other versions
CN102227716B (zh
Inventor
安田守
松本俊一
东野孝也
并河英二
高畠勇人
石桥琢磨
沟口拓治
阪上纱里
伊藤俊廷
今井久夫
三宅光太郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2009083198A external-priority patent/JP4795446B2/ja
Priority claimed from JP2010024652A external-priority patent/JP4903279B2/ja
Priority claimed from JP2010024649A external-priority patent/JP4681673B1/ja
Priority claimed from JP2010024650A external-priority patent/JP4846030B2/ja
Priority claimed from JP2010024651A external-priority patent/JP4846031B2/ja
Priority claimed from JP2010024648A external-priority patent/JP4903278B2/ja
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority claimed from JP2010024647A external-priority patent/JP4846029B2/ja
Publication of CN102227716A publication Critical patent/CN102227716A/zh
Publication of CN102227716B publication Critical patent/CN102227716B/zh
Application granted granted Critical
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种实施方式的动作验证装置取得表示对预定机器所执行过的一系列操作的内容的日志,根据该日志确定对应的函数,根据所确定的函数来自动生成程序。另外,设定应成为这些函数的自变量的输入数据。将程序与输入数据组合而构成执行集、进而构成测试剧本,通过使各执行集连续执行,基于测试程序的动作测试被自动执行。

Description

动作验证装置、动作验证方法、以及动作验证系统
技术领域
本发明涉及用于测试产品的动作的技术。
背景技术
在保证产品质量方面,产品出厂前的动作测试不可缺少。一般来说,多是通过测试工程师手动操作产品并确认该操作的结果来执行动作测试的。但是,对于操作变化(Variation)较丰富的多功能产品,手动的动作测试就难以满足要求了。
因此,多是通过用测试程序自动执行动作测试来谋求动作测试的省力化。例如,HP(Hewlett-Packard)公司提供的自动功能测试工具“QTP(Quick Test Professional)”就是通过执行用户自制的测试程序来实现动作测试的自动化的。
〔在先技术文献〕
〔专利文献〕
〔专利文献1〕日本特开2004-227396号公报
发明内容
〔发明所要解决的课题〕
但是,如果通过测试程序进行动作测试,则需要花费功夫先编制出测试程序。另外,根据编制者不同,测试程序的内容、质量也会出现偏差,因而难以确保动作测试的可靠性。
本发明是基于上述课题而完成的发明,其主要目的在于提供一种用于高效地执行动作测试的技术。
〔用于解决课题的手段〕
本发明的一个实施方式涉及一种使用于确认预定机器的动作的测试程序得以执行的动作验证装置。
该装置取得表示对预定机器所执行过的一系列操作的内容的日志,从被编入有用于实现各种操作的逻辑的多种函数中选择与上述日志所记录的操作对应的函数,并针对对预定机器的数据输入操作,选择具有用于取得对预定机器的输入数据的接口的输入函数,由此生成用于再现一系列操作的测试程序。
然后,取得应传递给输入函数的输入数据,为进行在基于该输入数据而执行一系列操作时的动作确认,将所取得的输入数据传递给输入函数,来使测试程序执行。
另外,将以上构成要素的任意组合、本发明的表现形式在装置、方法、系统、程序、存储有程序的记录介质等之间变换后的形式,作为本发明实施方式也是有效的。
〔发明效果〕
通过本发明,高效地执行动作测试变得容易。
附图说明
图1(a)是入口站点第一画面的画面图。
图1(b)是入口站点第二画面的画面图。
图2是表示执行词典测试时的日志的图。
图3是表示用于执行词典测试的程序的图。
图4是第一实施方式的动作验证装置的功能框图。
图5是至取得日志并执行动作测试的示意图。
图6是日志画面的画面图。
图7是函数设定画面的画面图。
图8是程序画面的画面图。
图9是输入设定画面的画面图。
图10是事例设定画面的画面图。
图11是表示第一实施方式的动作验证装置和第二实施方式的动作验证装置各自的结构概要的图。
图12是表示第一实施方式的动作验证装置和第二实施方式的动作验证装置各自的动作概要的图。
图13是表示第二实施方式的动作验证装置的功能结构的框图。
图14是在第二实施方式中,至检测出用户的数据输入操作并执行动作测试的示意图。
图15是第二实施方式中的函数设定画面的画面图。
图16是第二实施方式中的函数设定画面的画面图。
图17是第二实施方式中的输入设定画面的画面图。
图18是第二实施方式中的事例设定画面的画面图。
图19是表示第三实施方式的动作测试中的系统配置的图。
图20是更详细地表示图19的图。
图21是表示第三实施方式的程序执行部的功能构成的框图。
图22是表示在第三实施方式的动作验证装置中用户所能设定的函数的例子的图。
图23是表示GUI组件的显示画面的图。
图24是表示GUI组件的显示画面的图。
图25是表示状态消息的核对结果的图。
图26是表示针对网页浏览器的两个操作方式的特征的图。
图27是模式性地表示在针对网页浏览器的两个操作方式下、功能间的调用关系的图。
图28是表示第四实施方式的动作验证装置的功能构成的框图。
图29是表示图28的程序执行部的详细情况的框图。
图30是表示动作验证装置的动作的流程图。
图31是表示第五实施方式A的动作验证系统的构成的图。
图32是表示图31的试验管理装置的功能构成的框图。
图33是表示图31的试验执行装置的功能构成的框图。
图34是表示第五实施方式A的动作验证系统的动作的流程图。
图35是表示第五实施方式B的动作验证系统的构成的图。
图36是表示第五实施方式B的动作验证系统的动作的流程图。
图37的(a)表示在利用了Ajax的网页中动态追加标签的例子,(b)表示JavaScript改写DOM的例子。
图38是表示第六实施方式的动作验证装置的构成的框图。
图39是表示通过事件记录部以及动态标签记录部而被追加到操作内容文件中的函数的例子的图。
图40是第六实施方式的动作验证装置的操作记录时的流程图。
图41是第六实施方式的动作验证装置的程序执行时的流程图。
图42是表示第七实施方式的动作验证装置的构成的框图。
图43是说明测试结果比较部的作用的图。
图44是表示用于指定作为比较对象的测试结果数据的画面例子的图。
图45是表示通过动作验证对象的网页而生成的测试结果图像数据的一个例子的图。
图46是表示通过动作验证对象的网页而生成的测试结果图像数据的一个例子的图。
图47是表示比较结果图像的一个例子的图。
图48是表示掩模图像的一个例子的图。
图49是第七实施方式的测试结果比较处理的流程图。
图50是表示第八实施方式的动作验证装置的构成的框图。
图51是说明测试结果比较部的作用的图。
图52是表示用于指定作为比较对象的测试结果数据的画面例子的图。
图53是说明PDF处理部的动作的流程图。
图54是表示通过动作验证对象的网页而生成的测试结果图像数据的一个例子的图。
图55是表示通过动作验证对象的网页而生成的测试结果图像数据的一个例子的图。
图56是表示比较结果图像的一个例子的图。
图57是表示掩模图像的一个例子的图。
图58是第八实施方式的测试结果比较处理的流程图。
具体实施方式
(第一种实施的方式(下称“第一实施方式”))
图1(a)是入口站点第一画面300的画面图。
在第一实施方式中,说明以入口站点“XYZ!”为对象的动作测试。入口站点第一画面300包含编辑框302和检索链接304。检索链接304包括“网页”、“博客”、“图像”、“词典”这四个链接。用户在编辑框302中输入字符串并鼠标点击检索链接304中的某一个后,就开始输入字符串的检索了。例如在编辑框302中输入字符串“液晶”,并鼠标点击链接“网页”时,包含字符串“液晶”的网站就成为检索对象。而如果在编辑框302中输入字符串“液晶”并鼠标点击链接“博客”,则该入口站点内所开设的博客(Weblog)中包含字符串“液晶”的博客页就成为检索对象。
在此,假定在编辑框302中输入了字符串“测试”,并且鼠标点击了链接“词典”。
图1(b)是入口站点第二画面310的画面图。
在入口站点第一画面300中输入“测试”并鼠标点击“词典”后,图1的(b)所表示的入口站点第二画面310就被显示出来。通过该入口站点所提供的“词典”服务,与该字符串“测试”相关联的对象被罗列在检索结果栏306中。
这里,假定鼠标点击了检索结果栏306的最上面的链接“测试(test)”。
在上述过程中,以下所示的三个操作被进行。
A1.在入口站点第一画面300的编辑框302中输入字符串“测试”的操作。
A2.鼠标点击入口站点第一画面300的检索链接304中的链接“词典”的操作。
A3.鼠标点击入口站点第二画面310的检索结果栏306中的链接“测试(test)”的操作。
以下,将通过上述A1~A3的操作而实现的动作过程称为“词典测试”。
图2是表示执行了词典测试时的日志320的图。
在操作被导入了HP公司的QTP的客户端终端来访问上述入口站点,并执行了A1~A3的操作的情况下,QTP生成图2所示的日志320。操作A1~A3被作为预定格式的码文记录在日志320中。
例如,操作A1被表达为
Browser(″XYZ!″).Page(″XYZ!″).WebEdit(″p″).Set″测试″这样的码文。其意思是对“XYZ!”网站、名称为“XYZ!”的网页、名称为“p”的编辑框(相当于图1的(a)、图1的(b)中所示的编辑框302)输入了字符串“测试”。
同样,操作A2被显示为
Browser(″XYZ!″).Page(″XYZ!″).Link(″词典″).Click
操作A3被显示为
Browser(″XYZ!″).Page(″XYZ!-所有词典-测试″).Link(″测试(test)″).Click这样的码文。在第一实施方式中,是基于QTP的语法进行说明的,但码文的格式并不限于此。
QTP能够一边解释日志320的码文一边再现执行码文所表达的操作。因此,一旦生成了日志320,就能任意次地重复执行同一内容的词典测试。另外,只要改写日志320的一部分,就能以不同于手动操作时的内容来执行词典测试。例如,将
Browser(″XYZ!″).Page(″XYZ!″).WebEdit(″p″).Set″测试″中所包含的字符串“测试”变更成其它字符串“测—试”,改写成
Browser(″XYZ!″).Page(″XYZ!″).WebEdit(″p″).Set″测—试″而输入到QTP中,则能够自动执行仅改变了编辑框302的输入字符串的同内容的词典测试。
但是,要改写日志320地执行动作测试,需要针对日志320的语法拥有某种程度的知识。另外,在改写日志320时有可能会发生人为性的错误。
图3是表示用于执行词典测试的程序330的图。
也可以不通过日志320执行动作测试,而是通过用VB(Visual Basic)脚本等记述与日志320同等的内容来执行测试程序。图3所示的程序330是参照图2的日志320而编制成的测试程序。
例如,操作A1被表达为
WebEditSet(Browser(″XYZ!″).Page(″XYZ!″).WebEdit(″p″),DataTable(″p1,dtGlobalSheet″)
这样的VB函数。WebEditSet函数的具体逻辑如该图中部所记述的那样。
在程序330不包含字符串“测试”这样的输入数据这一点上,程序330不同于日志320。作为替代手段,WebEditSet函数是从被表达为dtGlobalSheet的文件(下称“输入数据文件”)接受输入数据的。即,逻辑与输入数据是分离的。通过输入数据文件的改写或替换,能够基于各种各样的输入数据执行同一逻辑的词典测试。与基于手动的动作测试或基于日志320的动作测试相比,基于程序330的动作测试具有易于增加输入数据的变化这样的优点。
但是,基于程序330的动作测试中存在以下问题。
D1.需要新花费编程的功夫。
D2.根据程序编制者不同,程序的内容会变化。例如,程序员P1针对操作A1编制的WebEditSet函数和程序员P2针对操作A1编制的WebEditSet函数,即使函数名相同,逻辑也未必相同。另外,程序本身也有可能混入了漏洞(bug)。因此,就需要用于确保程序330自身的可靠性的措施。此外,程序330中还需要例外处理等与动作测试没有直接关系的逻辑,但未必所有程序员都会编入考虑到例外处理的逻辑。例如在图3所示的WebEditSet函数的情况下,编入了能应对输入数据为空字符的情况的逻辑,但其他程序员在编制WebEditSet函数时可能会漏掉这样的考虑。
结果,动作测试的内容结果容易受到程序员的水平的影响。
图4是动作验证装置100的功能框图。
对于本说明书的框图所示的各功能块,硬件上可以用计算机的CPU等元件或机械装置来实现,软件上可以通过计算机程序等来实现,在此,描述通过它们的结合来实现的功能块。因此,本领域技术人员当理解这些功能块可以通过硬件、软件的组合以各种各样的形式来实现。例如,各功能块可以作为计算机程序存储在记录介质中,通过安装到信息处理装置的硬盘中,并适时地被读入到主存储器而被处理器执行。
动作验证装置100可以被形成为专用硬件,也可以被形成为网页浏览器等与用户接口协作的软件模块。
作为第一实施方式的动作验证装置100,说明其被形成为QTP的插件的软件模块的情况。
动作验证装置100包括IF(接口)部110、数据处理部130以及数据保持部140。
IF部110负责与用户、QTP的接口。数据处理部130基于从IF部110、数据保持部140取得的数据执行各种数据处理。数据处理部130还发挥IF部110与数据保持部140间的接口的作用。数据保持部140是用于保持各种数据的存储区域。
IF部110:
IF部110包括输入部112和输出部118。输入部112负责来自用户和QTP的输入处理,输出部118负责向用户和QTP的输出处理。输入部112包括日志取得部114和输入数据取得部116。日志取得部114从QTP取得日志。输入数据取得部116取得输入数据文件,并从输入数据文件取得要提供给程序的输入数据。关于输入数据文件的详细情况,将结合图5和图9详细叙述。
输出部118包括函数设定画面显示部120、输入设定画面显示部122、程序画面显示部124以及事例设定画面显示部126。函数设定画面显示部120使得图7所示的函数设定画面210显示出来。输入设定画面显示部122使得图9所示的输入设定画面230显示出来。程序画面显示部124使得图8所示的程序画面220显示出来。事例设定画面显示部126使得图10所示的事例设定画面240显示出来。
数据处理部130:
数据处理部130包括程序生成部132、程序执行部134以及测试事例登录部136。程序生成部132自动生成动作测试用的程序。程序执行部134使所被生成的程序执行。在第一实施方式中,是使QTP执行程序。测试事例登录部136将执行集(set)登录在事例文件中。关于执行集和事例文件,将结合图10进行详细叙述。
数据保持部140:
数据保持部140包括日志保持部142、程序保持部144、输入数据文件保持部146、事例文件保持部148、函数保持部150以及结果保持部152(以下也称“测试结果保持部152”)。日志保持部142保持日志。程序保持部144保持程序。输入数据文件保持部146保持输入数据文件。事例文件保持部148保持事例文件。函数保持部150保持可被登录到动作测试用的程序中的函数的函数库。结果保持部152保持动作测试的结果。
图5是在第一实施方式中至取得日志并执行动作测试为止的示意图。
首先,手动操作动作测试的对象机器。在第一实施方式中,操作客户端终端的网页浏览器,访问入口站点“XYZ!”。QTP生成日志,日志取得部114从QTP取得日志。各种码文预先与函数建立有对应关系。函数设定画面显示部120读取函数保持部150的函数库,并使与日志中所包含的各码文对应的函数一览显示(S1)。在函数设定画面显示部120中,用户能够根据需要追加、变更、删除函数。这样,应被包含在程序中的函数就被确定了。关于S1,将与图7相结合地在后面详述。
接下来,设定应提供给该程序的输入数据(S2)。设定内容以输入数据文件的形式被登录。关于S2,将结合图9在后面详述。基于在S1中设定的函数群自动生成程序(S3)。关于S3,将结合图8在后面详述。
接下来,基于多种程序以及多种输入数据文件,将程序与输入数据文件的组合作为“执行集”登录。也可以登录多个执行集(S4)。设定内容被以事例文件的形式登录。例如,当想要使得在基于输入数据文件F2执行程序P1后再基于输入数据文件F6执行程序P2的情况下,被以
执行集1:程序P1+输入数据文件F2
执行集2:程序P2+输入数据文件F6
的形式登录到事例文件中。关于S4,将结合图10详述。
最后,按照事例文件执行程序(S5)。在上述例子的情况下,程序执行部134使执行集1和执行集2连续执行。程序执行部134将程序的执行结果、换言之是将测试结果登录到结果保持部152中。
图6是日志画面200的画面图。
在日志取得部114取得日志后,输出部118使日志画面显示在日志画面200中的日志显示区域202。用户也可以将QTP的日志复制并粘贴到日志显示区域202中。或者,也可以是输出部118在日志画面200显示时取得QTP所生成的日志(文件),并使之画面显示在日志显示区域202中。用户鼠标点击执行按钮204后,接下来的图7所示的函数设定画面210被显示出来。
图7是函数设定画面210的画面图。
程序生成部132针对日志所包含的码文确定函数,并使确定的函数一览显示在函数设定画面210的函数栏214中。编号栏212表示执行顺序,说明栏216表示函数的概要说明,对象栏218表示操作对象的对象(object),参数栏219表示参数名,输入值栏217表示输入数据。
对于前述的表示操作A1的码文
Browser(″XYZ!″).Page(″XYZ!″).WebEdit(″p″).Set″测试″,WebEditSet函数在函数库中预先与其建立有对应关系。程序生成部132读出日志320的第一个码文后,参照函数保持部150的函数库,确定WebEditSet函数。因为操作A1中被作为操作对象的对象是“Browser(″XYZ!″).Page(″XYZ!″)”页,所以对象栏218中被设定为“Browser(″XYZ!″).Page(″XYZ!″)”。WebEditSet函数是以设定在编辑框p(编辑框302)中的输入数据为自变量的函数。虽然也可以在输入值栏217中设定应设定到编辑框p中的输入数据,但这里假定在函数设定画面210中没有登录输入数据的情况来进行说明。应设定到编辑框p中的输入数据在将结合图9详述的输入设定画面230中被设定。
由于日志320中对应于操作A1~A3地包含有三个码文,所以程序生成部132确定三个函数。用户也可以在函数设定画面210中追加、删除、变更函数。图7中的第四个TextCheck函数与第五个WebScreenCapture函数是用户追加选择的函数。
TextCheck函数是判定正在显示的网页中是否包含被赋值为变量q的字符串的函数。WebScreenCapture函数是对正在显示的网页进行画面抓图的函数。在对动作测试的结果进行证迹管理方面,WebScreenCapture函数是非常方便的函数。这样,函数库中不仅备有WebEditSet函数那样的与用户的操作相对应的函数,还备有TestCheck函数这样的用于辅助支持动作测试的函数。用户只要从函数库中选择所希望的函数,就能设定想要包含在动作测试中的逻辑。
测试事例设定按钮215被点击时,图10的事例设定画面240被显示出来。输入数据文件生成按钮213被点击时,图9的输入设定画面230被显示出来。程序生成按钮211被点击时,图8的程序画面220被显示出来。
第一实施方式的动作验证装置100具有如下优点。
m1.仅基于GUI(Graphical User Interface:图形用户接口)选择函数,就能选择想要包含在程序中的逻辑。几乎不需要花费用于编制程序的功夫。
m2.被包含在程序中的函数是已被登录在函数库中的函数,所以很难因编制者不同而出现程序质量的偏差。例外处理等必要的逻辑也被预先编入了各函数中。
图8是程序画面220的画面图。
在函数设定画面210中,若程序生成按钮211被鼠标点击,则程序生成部132生成程序,程序画面显示部124使其源代码显示在程序画面220中的程序显示区域222内。程序被保持在程序保持部144中。
图9是输入设定画面230的画面图。
在函数设定画面210中,若输入数据文件生成按钮213被鼠标点击,则输入设定画面显示部122使输入设定画面230显示出来。在函数设定画面210中,参数p和q被定义了。编号栏232表示输入顺序,变量栏234表示对参数p的输入数据,变量栏236表示对参数q的输入数据。在输入设定画面230中,设定要赋值给该参数p和q的输入数据。各输入数据被作为输入数据文件保持在输入数据文件保持部146中。
例如若给与程序330图9所示的格式的输入数据文件,则如
1.将字符串“测试”输入到编辑框302中检索词典,并判定表示执行结果的画面中是否包含有字符串“试验”的测试
2.将字符串“test”输入到编辑框302中检索词典,并判定表示执行结果的画面中是否包含有字符串“试验”的测试
3.将字符串“测试事例”输入到编辑框302中检索词典,并判定表示执行结果的画面中是否包含有字符串“试验”的测试这样,连续执行基于不同的输入数据的多个词典测试。
图10是事例设定画面240的画面图。
在函数设定画面210中,若测试事例设定按钮215被鼠标点击,则事例设定画面显示部126使事例设定画面240显示出来。编号栏244表示执行顺序,执行集栏245表示执行集的概要,程序栏246表示成为执行对象的程序,输入数据文件栏247表示成为输入数据的提取对象的输入数据文件。
这里,以网络证券的网站为动作测试对象进行说明。
在该图中,1.登入(login)、2.查看新闻、3.卖出股票、4.卖出债券、5.住所变更、6.退出(logout)这六个执行集被登录了。首先,QTP基于程序“login.vbs”生成“login”项目。这里所谓“项目”,是包含QTP的执行格式文件群的目录。QTP以“login”项目为输入来执行login.vbs和login.xls中所定义的处理。若用户鼠标点击执行按钮248,则先是执行集“登入”的“login”项目被执行。第一个执行集“登入”完成后,作为执行集“查看新闻”,“ncheck”项目被执行。
这样,在执行按钮248被鼠标点击后,1.登入(login)、2.查看新闻、3.卖出股票、4.卖出债券、5.住所变更、6.退出(logout)这六个执行集被连续执行。由此,能够将基于“先登入,在查看新闻后指示卖出所持股票和所持债券,再在变更住所后退出”这样一个测试剧本(scenario)的动作测试自动化。
用户能够在事例设定画面240中自由制作测试剧本。例如可以登录执行集“买入股票”来取代执行集“卖出股票”,另外,作为执行集“卖出股票”的输入数据文件,也可以不登录“stock1.xls”而是登录其它输入数据文件。在事例设定画面240中所登录的测试剧本被作为事例文件记录,并被保持在事例文件保持部148中。
通过一点点地改变测试剧本的构成或输入数据文件等,易于扩展动作测试的变化。
以上说明了第一实施方式的动作验证装置100。
通过动作验证装置100,能够分离程序与输入数据,即能够使处理与参数相分离。并且,能够基于GUI界面的设定自动生成其所要使用的程序。由此,能够既确保包含在程序中的逻辑的多样性,又能简单地生成质量稳定的程序。另外,由于仅改变输入数据文件的内容就能变更动作测试的内容,所以易于扩展动作测试的变化。
进而,通过将执行集登录在事例文件中制作测试剧本,能够组合既有程序地实现各种各样状况下的动作测试。另外,由于不仅备有WebEditSet函数这样的用于操作测试对象机器的函数,还备有WebScreenCapture函数这样的用于辅助动作测试的函数,所以易于进一步提高动作测试的効率和可靠性。
以上基于第一实施方式说明了本发明。本领域技术人员当理解本说明书中的实施方式仅是例示,可以对其各构成要素、各处理过程的组合进行各种变形,并且这些变形例也属于本发明的范围。下面说明变形例。
在第一实施方式中,动作验证装置100是以QTP接受用户的操作生成了日志为条件生成程序的。
作为变形例,也可以是在网页浏览器取得了HTML文件的时点生成程序。在该情况下,动作验证装置100检索HTML文件中所包含的表单(form)标签,确定HTML文件中包含有什么样的输入接口。然后,只要选择用于将数据输入到各输入接口的函数并将这些函数按各种顺序排列,即使没有用户明示的网页操作,也能生成测试用的程序。
(第二种实施的方式(下称“第二实施方式”))
第二实施方式所要解决的课题也是在基于测试程序的动作测试的情况下,需要花费功夫编制测试程序,以及因编制者不同,测试程序的内容和质量会出现偏差,因此难以确保动作测试的可靠性。第二实施方式的主要目的也是提供一种用于高效地执行动作测试的技术。
为解决上述课题,第二实施方式的动作验证装置是一种使用于预定机器的动作确认的测试程序得以执行的装置,包括:操作记录部,检测对预定机器的数据输入操作,向记录应设定在测试程序内的函数的操作内容文件,记录与数据输入操作相对应、且具有用于取得对预定机器的输入数据的接口的函数;程序生成部,通过根据被记录在操作内容文件中的函数而设定程序代码,来生成用于再现对预定机器所执行过的一系列操作的测试程序;程序执行部,通过从不同于操作内容文件的输入数据文件取得输入数据并传递给函数,来使测试程序执行。下面详细进行说明。
在第二实施方式中,提出一种对上述第一实施方式改良后的动作验证装置100。
首先,比较第一实施方式中的动作验证装置100和第二实施方式的动作验证装置100来说明第二实施方式的动作验证装置100的概要。
图11表示第一实施方式的动作验证装置100和第二实施方式的动作验证装置100各自中的构成的概要。如图11的(a)所示,第一实施方式的动作验证装置100具有作为动作测试的执行引擎的QTP模块102和用于使利用了QTP模块102的网页服务器400的动作测试高效化的包装器(Wrapper)模块104。该包装器模块104包含图4所示的各功能块。
在图11的(a)中,用户通过QTP模块102操作作为动作确认的对象装置的网页服务器400(S100)。包装器模块104从QTP模块102取得记录有其操作内容的日志,将函数设定画面210提供给用户(S102)。用户在动作测试执行时,使得在包装器模块104中生成QTP模块可读的动作测试用程序,并使QTP模块102执行该程序(S104)。
与此不同,图11的(b)所示的第二实施方式的动作验证装置100具有统合了动作测试的执行引擎的功能和包装器模块104的功能的统合验证模块106。用户通过统合验证模块106操作网页服务器400时(S200),统合验证模块106逐次检测出其操作内容,设定函数设定画面210的数据,并将函数设定画面210提供给用户(S202)。用户在执行动作测试的时候,使得在统合验证模块106中生成并执行动作测试用程序(S204)。
图12表示第一实施方式的动作验证装置100和第二实施方式的动作验证装置100各自中的动作的概要。图12的(a)表示出第一实施方式的动作验证装置100中的动作的概要。用户执行对网页服务器400的数据输入操作(S110),QTP模块102输出记录了其操作内容的日志(S112)。用户将该日志的数据复制到QTP模块102的预定的输入区域(S114)。包装器模块104基于被设定在预定的输入区域中的日志的数据,设定函数设定画面并使之显示(S116),用户通过该函数设定画面设定应追加、变更的函数输入数据(S118)。
包装器模块104基于函数设定画面的数据生成用于动作测试的QTP用程序(S120)。用户将QTP用程序复制到QTP模块102的预定的输入区域(S122)。用户在事例设定画面中设定以QTP用程序和输入数据文件为集(set)而指定的动作测试的剧本(S124)。包装器模块104基于该剧本,将QTP用程序和输入数据文件的集交给QTP模块102,按每个集来使动作测试执行(S126)。
图12的(b)表示出第二实施方式的动作验证装置100中的动作的概要。用户执行对网页服务器400的数据输入操作(S210)。统合验证模块106逐次检测出其数据输入操作,将与数据输入操作对应的函数记录到操作内容文件中,并在函数设定画面中显示该操作内容文件的记录数据(S212)。用户通过该函数设定画面将应追加、变更的函数和输入数据设定在操作内容文件中(S214)。然后,用户在事例设定画面中设定以操作内容文件和输入数据文件为集而指定的动作测试的剧本(S216)。统合验证模块106基于该剧本生成集约了剧本内的一个以上集的动作测试用程序并执行(S218)。
这样,在第一实施方式的动作验证装置100中,QTP模块102和包装器模块104是分离的。因此,为使两模块联系起来,需要用户自己来执行中介作业。另外,包装器模块104需要针对剧本内的每个集来调用QTP模块102,需要按每个集来使测试用程序执行。
与此不同,在第二实施方式的动作验证装置100中,动作测试的执行引擎和实现其高效利用的包装器并不相分离,而是被无缝地统合在一起。因此,与第一实施方式的动作验证装置100相比,原本为使相分离的模块联系起来而所需的用户作业变得不再需要,用于动作测试的用户的作业量降低了。另外,由于是生成将剧本内的多个集集约起来的动作测试用程序,并通过该程序的执行而执行一连串剧本,所以能实现迅速的动作测试。
图13是表示第二实施方式的动作验证装置100的功能构成的框图。该图的功能块被包含在图11的(b)所示的统合验证模块106中。第二实施方式的功能块中与第一实施方式的功能块对应的功能块被标注了相同的标号。关于赋予了与第一实施方式的功能块相同标号的功能块,仅在其功能不同于第一实施方式中已述的内容时进行说明,对于同样的功能省略其说明。
数据保持部140具有操作内容文件保持部143、程序保持部144、输入数据文件保持部146、事例文件保持部148、函数保持部150。操作内容文件保持部143用于存储记录有应设定在动作测试用程序中的函数的操作内容文件。程序保持部144存储按操作内容文件而生成的动作测试用程序。
IF部110的输入部112具有操作检测部115和用户设定受理部117。操作检测部115逐次检测出用户对网页服务器400的数据输入操作。用户设定受理部117检测用户对函数设定画面210、输入设定画面230、事例设定画面240的设定信息。
IF部110的输出部118具有函数设定画面显示部120、输入设定画面显示部122、事例设定画面显示部126。函数设定画面显示部120使函数设定画面210显示在预定的显示装置中,该函数设定画面210用于显示被记录在操作内容文件保持部143中的操作内容文件的内容。
数据处理部130具有程序生成部132、程序执行部134、测试事例登录部136、操作记录部137、输入数据记录部138。操作记录部137参照函数保持部150来确定与在操作检测部115中被检测出的数据输入操作对应的函数,将该函数记录在操作内容文件中。另外,操作记录部137将用户对函数设定画面210的设定信息记录在操作内容文件中。输入数据记录部138将用户通过输入设定画面230输入的输入数据记录在输入数据文件中。程序生成部132根据被记录在操作内容文件中的函数而生成动作测试用程序。程序执行部134作为动作测试的执行引擎而执行动作测试用程序,并将其结果记录到结果保持部152中。
图14是第二实施方式中至检测出用户的数据输入操作并执行动作测试为止的示意图。首先,用户操作客户端终端的网页浏览器访问网页服务器400,执行对网页服务器400的各种操作,典型的是执行对网页服务器400所提供的网页的数据输入操作。操作检测部115逐次检测用户的数据输入操作,操作记录部137读取函数保持部150的函数库,将与该数据输入操作对应的函数逐次记录到操作内容文件中(S220)。
接下来,函数设定画面显示部120读取操作内容文件保持部143的操作内容文件,使一览显示与用户的操作对应的函数的函数设定画面显示出来。在函数设定画面中,用户能够根据需要追加、变更、删除函数,并且能够设定应静态地设定在动作测试用程序中的输入数据。这样,应包含在动作测试用程序中的函数就被确定了。关于函数设定画面,将结合图15和图16在后面叙述。
接下来,输入设定画面显示部122使输入设定画面230显示出来。用户通过输入设定画面230设定应在动作测试执行时动态地提供给动作测试用程序的输入数据。用户所设定的输入数据被记录在输入数据文件中(S222)。关于输入设定画面230,将结合图17在后面叙述。
接下来,事例设定画面显示部126使事例设定画面240显示出来。用户基于多种操作内容文件以及多种输入数据文件,将操作内容文件和输入数据文件的组合登录为执行集。测试事例登录部136将一个以上的执行集记录在事例文件中S224)。例如,在测试事例1中,若要在基于输入数据文件F12使操作内容文件F01的设定内容执行后,再基于输入数据文件F16使操作内容文件F02的设定内容执行,则以
测试事例1:
执行集1:操作内容文件F01+输入数据文件F12
执行集2:操作内容文件F02+输入数据文件F16
的形式登录到事例文件中。关于事例设定画面240,将结合图18在后面叙述。
接下来,程序生成部132基于事例文件和操作内容文件生成动作测试用程序(S226)。具体来说,可以将被依次记录在执行集所设定的操作内容文件中的函数,依次设定为动作测试用程序的程序代码。另外,在一个测试事例中设定有多个执行集时,程序生成部132将被记录在各执行集的操作内容文件中的函数集约设定成一个动作测试用程序。
另外,在针对操作内容文件的函数设定有输入数据本身的情况下,程序生成部132将该输入数据静态地设定到动作测试用程序中。例如,在生成动作测试用程序时,预先设定输入数据作为该程序代码中的函数的自变量。另外,在针对操作内容文件的函数指定有输入数据文件的情况下,进行设定使得在程序执行时读入该输入数据文件的数据。
最后,程序执行部134执行动作测试用程序,再现用户对网页服务器400执行的一连串操作(S228)。对于需要输入数据文件的数据的函数,将动作测试用程序执行时所读入的输入数据文件的数据作为自变量传递给它。即,基于从输入数据文件动态地取得的输入数据来执行函数。
图15是函数设定画面210的画面图。该图表示了显示将在后面的图18中叙述的“检索记入.xls”的函数设定画面210。数据文件列名(column name)栏250是用于指定输入数据文件的列名的区域,该输入数据文件记录有要设定给参数的输入数据。用户可以在输入值栏217中记述输入数据本身,也可以不这样,而是在数据文件列名栏250中指定输入数据文件的列名。当数据文件列名栏250内有输入数据文件的列名被指定时,在动作测试用程序执行时,被设定在该输入数据文件的列中的一个以上的输入数据会被读取并传递给函数。
图16是第二实施方式中的函数设定画面210的画面图。在该图的“检索部署名”参数的输入值栏217中,输入数据的候选被用下拉列表252一览显示。下拉列表252中所显示的输入数据候选,是在用户对网页进行数据输入时被显示在该网页的下拉列表中的输入数据候选。用户可以从下拉列表252中选择输入数据,能减轻用户在设定输入数据过程中的负担。
为设定下拉列表252,操作检测部115取得在用户对网页进行数据输入操作时显示在该网页的下拉列表中的输入数据的候选。例如,基于从网页服务器400取得的网页的数据、例如HTML数据,取得下拉列表中的输入数据候选。操作记录部137将该输入数据候选记录在操作内容文件的输入值栏217中。函数设定画面显示部120在输入值栏217有输入时,使被记录在操作内容文件中的输入数据候选以下拉列表的形式一览显示出来。
图17是第二实施方式中的输入设定画面230的画面图。图17的(a)表示了输入设定画面230,该输入设定画面230显示在图15和图16的函数设定画面210中被指定了列名的输入数据文件“检索记入数据.xls”。在图15和图16中,图17的(a)的“姓名汉字”列和“姓名读音”列被指定了。图17的(b)表示了显示另一输入数据文件“登入数据2.xls”的输入设定画面230。关于该图的输入数据文件,将结合图18在后面叙述。
图18是第二实施方式中的事例设定画面240的画面图。执行编号栏253中被设定各执行集的基本的执行顺序,测试事例ID栏254中被设定测试事例的识别信息。组(group)ID栏256中被设定表示执行集的重复处理的组的识别信息,行编号栏258中被设定动作测试中的输入数据文件的参照范围。操作内容文件栏260被设定各执行集中的操作内容文件,输入数据文件栏262被设定各执行集的输入数据文件。事例设定画面240中的设定内容被作为事例文件存储在事例文件保持部148中。
在事例设定画面240中测试执行按钮264被按下时,程序生成部132按照事例文件和操作内容文件生成动作测试用程序。具体来说,基于在事例文件中被设定相同测试事例ID的一个以上的操作内容文件,生成各操作内容文件所记录的函数被设定为程序代码后的一个动作测试用程序。例如,程序生成部132按照记录有图18的事例设定画面240的内容的事例文件,生成用于执行登录事例的一个动作测试用程序和用于执行检索事例的一个动作测试用程序。所谓“一个动作测试用程序”,意思是被作为一个执行单位来执行的程序,换言之是在一次执行机会中被执行的程序,与其物理上的程序数量无关。
程序执行部134在执行各操作内容文件内所记录的一个函数时,将与该操作内容文件相对应的输入数据文件的数据中、在操作内容文件中与该函数相对应的列的数据传递给该函数。
另外,程序执行部134将在同一测试事例中被赋予相同组ID的多个执行集作为应执行相同重复处理的相同组来处理。具体来说,重复进行被赋予相同组ID的多个执行集的执行,在每次重复执行时,向被记录在各执行集的操作内容文件中的函数传递被记录在输入数据文件中的预定数量的记录(record)。在第二实施方式中,假定每次重复时将被记录在输入数据文件中的一个记录(record)传递给函数。另外,也可以在程序生成部132中生成已将用于执行上述处理的重复命令设定在程序代码中的动作测试用程序。
另外,针对被指定了行编号的执行集,程序执行部134将在输入数据文件中以该行编号所确定的输入数据传递给该操作内容文件中所记录的函数。因此,在被指定了基于组ID的重复处理,并进一步被指定了行编号的情况下,就重复执行行编号所指定的次数。例如,在图18的登录事例中,没有设定跨执行集的组,在各执行集中被执行一个输入数据量的处理。与此不同,在图18的检索事例中,各执行集中的一个输入数据量的处理被重复执行三次。
具体来说,在第一次的重复中,登入数据2.xls的第35行的数据“t_yamada”被传递给登入2.xls中所记录的函数。并且,检索记入数据.xls的第1行姓名汉字的数据“山田太郎”被传递给检索记.xls中所记录的函数、具体来说是图15的No1的函数。此外,检索记入数据.xls的第1行姓名读音的数据“ヤマダタロウ”被传递给图15的No2的函数。
在第二次的重复中,登入数据2.xls的第36行的数据“h_yamada”被传递给登入2.xls中所记录的函数。并且,检索记入数据.xls的第2行姓名汉字的数据“山田花子”被传递给检索记入.xls中所记录的图15的No1的函数。此外,检索记入数据.xls的第2行姓名读音的数据“ヤマダハナコ”被传递给图15的No2的函数。
在第三次的重复中也是一样,递增后的行编号中的输入数据被传递给各函数。
在第二实施方式的动作验证装置100中,也能发挥在第一实施方式中说明过的效果。具体来说,由于实现了处理与参数的分离以及基于GUI的设定,所以能够既确保包含在动作测试用程序中的逻辑的多样性,又能简单地生成质量稳定的程序。此外,通过输入数据文件的设定,容易扩展动作测试的变化。此外,通过事例文件的设定,能实现各种各样的剧本下的动作测试。
在第二实施方式的动作验证装置100中,执行动作测试用程序的执行引擎功能和实现执行引擎的高效利用的包装器功能无缝地、不需要用户中介地联系在一起。由此,能够减轻用于执行动作测试的用户的负担。此外,与第一实施方式的动作验证装置100时不同,用户无需熟悉QTP的项目等用于程序执行的环境。即,只要设定用户容易理解操作的形式的操作内容文件和输入数据文件即可。由此,用户能够容易地实施动作测试。
在第二实施方式的动作验证装置100中,是生成一个集约了同一测试事例的多个执行集的动作测试用程序,并执行该一个动作测试用程序的。与第一实施方式的动作验证装置100中的按执行集、即按照基于执行集生成的每个QTP项目进行执行的情况相比,能够降低在执行一个测试事例中的一连串动作测试时的系统开销(overhead),能实现迅速的动作测试。
以上、基于第二实施方式说明了本发明。下面说明变形例。
在第二实施方式的动作验证装置100中,还能够设定跨多个执行集重复的组。由此,能够灵活分割执行集,能够灵活设定动作测试的剧本。此外,还能够设定输入数据文件的参照范围。由此,即使输入数据文件相同,也能够根据剧本灵活地变更参照范围,能够容易地实现各种各样变化的动作测试。
在上述的第二实施方式中,作为对函数设定画面210中的值的设置进行辅助的例子,表示出了下拉列表252。在变形例中,网页中的单选按钮、复选框、列表框等以可选方式显示的输入数据候选也可以被以下拉列表252或其它形式可选地显示在函数设定画面210中。即,在对动作确认对象机器进行数据输入操作时以各种各样的可选形式显示给用户的输入数据候选,也可以在函数设定画面210中的值的设置时被可选地显示出来。
在上述的第一实施方式中,QTP受理用户对网页服务器400的操作,动作验证装置100以生成了日志为条件生成动作测试用程序。另外,在上述第二实施方式中,动作验证装置100检测用户对网页服务器400的操作,来生成动作测试用程序。作为变形例,在动作验证装置100中也可以在从网页服务器400取得了HTML文件的时点生成动作测试用程序。在该情况下,动作验证装置100检索被包含在HTML文件中的表单(form)标签,确定HTML文件中包含有什么样的输入接口。然后,只要选择用于将数据输入到各输入接口的函数并将这些函数按各种顺序排列,即使没有用户明示的网页操作,也能生成测试用的程序。
(第三种实施的方式(下称“第三实施方式”))
先说明第三实施方式所要解决的课题。本发明人考虑在导入ERP(Enterprise Resource Planning:企业资源规划)软件包谋求提高经营效率的企业中,有想要高效地执行被编入在该ERP软件包中运行的应用的动作测试的需求。但是,目前却没有人充分提出过用于高效执行被编入ERP软件包的应用的动作测试的具体方法。第三实施方式的主要目的在于提供一种用于高效地执行被编入ERP软件包中运行的应用的动作测试的技术。
为解决上述课题,第三实施方式的动作验证装置是针对被编入ERP软件包中进行动作的应用,使用于其动作确认的测试程序得以执行的装置,包括:日志取得部,取得表示对应用所执行过的一系列操作的内容的日志;程序生成部,从被编入有用于实现各种操作的逻辑的多种函数中选择与日志所记录的操作对应的函数,并针对对应用的数据输入操作,选择具有用于取得对应用的输入数据的接口的输入函数,由此生成用于再现一系列操作的测试程序;输入数据取得部,取得应传递给输入函数的输入数据;程序执行部,为进行在基于所取得的输入数据而执行一系列操作时的动作确认,将所取得的输入数据传递给输入函数来使测试程序执行。
第三实施方式的另一种实施方式是动作验证方法。该方法由针对被编入ERP软件包中进行动作的应用,使用于其动作确认的测试程序得以执行的装置来执行,该动作验证方法包括:取得表示对应用所执行过的一系列操作的内容的日志的步骤;从被编入有用于实现各种操作的逻辑的多种函数中选择与日志所记录的操作对应的函数,并针对对应用的数据输入操作,选择具有用于取得对应用的输入数据的接口的输入函数,由此生成用于再现一系列操作的测试程序的步骤;取得应传递给输入函数的输入数据的步骤;为进行在基于所取得的输入数据而执行一系列操作时的动作确认,将所取得的输入数据传递给输入函数来使测试程序得以执行的步骤。下面详细说明。
首先,说明第三实施方式的概要。
在第三实施方式中,提出一种高效地执行被编入ERP软件包中运行的应用的动作测试的技术。作为ERP软件包的一个例子,下文中表示了SAP公司提供的ERP软件包(SAPR/3、SAPERP等,以下简称“SAP软件”)(“SAP”为注册商标),但本领域技术人员当理解同样的技术也能适用于其它ERP软件包。
如第一实施方式所示,作为动作测试的自动化工具的QTP是标配用于网页的动作测试的测试引擎的。该测试引擎通过使网页浏览器执行动作测试用程序中所设定的各种操作,来执行网页的动作测试。
QTP还能扩展(addin)对在安装有SAP软件的SAP服务器上运行的应用(以下也称“SAP用AP”)进行动作测试所用的测试引擎。以下也将该测试引擎称作“SAP用插件”。SAP用插件是通过使客户端程序(以下也称“SAPGui客户端”)执行动作测试用程序中所设定的各种操作,来执行SAP用AP的动作测试的插件。其中,所述客户端程序提供用于操作SAP用AP的GUI环境。
SAPGui客户端所提供的GUI组件中包含窗口对象、表对象、网格对象。以下将这些对象称作“SAPGuiWindow”、“SAPGuiTable”、“SAPGuiGrid”。SAPGuiWindow形成显示关于SAP用AP的数据的显示区域的外框。SAPGuiTable和SAPGuiGrid是类似于数据表(Spread sheet)的GUI组件,显示在SAPGuiWindow上,输入数据被设定到由行和列确定的单元格中。
在SAP用AP的动作测试中,需要滚动(scroll)操作这些GUI组件。例如,被设定在GUI组件的下部的数据有时并未被显示在初始状态的画面上。在要将该数据确保为用于证明动作测试的结果的数据(以下也称“佐证物”)时,需要在对GUI组件执行向下的滚动操作后、换言之是使其在画面上处于可视状态后,执行画面抓图。
但是,SAP用插件虽然提供使SAPGuiWindow滚动的功能,但不提供使SAPGuiTable和SAPGuiGrid滚动的功能。因此,为确保佐证物,用户需要手动进行滚动操作,这阻碍了高效的动作测试的实现。
因此,在本实施方式中,提出一种在利用被装入了SAP用插件的QTP的前提下,补足其不完备的功能,机械地执行对SAPGuiTable和SAPGuiGrid的滚动操作的动作验证装置。由此,实现对SAP的GUI组件的全面滚动操作,实现高效的动作测试。
本实施方式的SAP用AP提供用于对SAP的GUI组件输入测试数据的输入函数。例如,提供与图7的“WebEdit Set”函数对应的SAP用的输入函数。并且,与在第一实施方式中记载的对网页的操作记录一样,执行用户对SAP用AP的操作的记录。但是,SAP用AP不记录对GUI组件的滚动操作。因此,在动作测试中需要滚动操作时,用户需要向动作测试用程序新登录滚动操作用的函数。
下面说明本实施方式的动作验证装置中的其它特征。SAP用AP使SAP用AP的动作状况显示在GUI组件下部的状态栏区域中。例如,使是否恰当设定了输入数据这一信息显示在状态栏区域中。因此,在SAP用AP的动作测试中,就需要确认显示在GUI组件的状态栏区域中的消息是否为恰当的信息。但是,SAP用插件不提供取得显示在状态栏区域中的消息的功能。因此,以往用户需要目视确认状态栏区域的消息,这阻碍了高效的动作测试的实现。
因此,在本实施方式的动作验证装置中,取得被显示在GUI组件的状态栏区域中的消息,并机械性地确认是否已输出了测试前所设想的消息。由此,将以往靠用户自己手动作业来进行的确认作业自动化,实现高效的动作测试。
图19表示第三实施方式的动作测试下的系统配置。动作验证系统1000具有动作验证装置100、网页服务器400、SAP服务器402。这些装置通过LAN/WAN/因特网等公知的通信手段连接起来。
测试引擎IF412一并检测动作测试用程序中所设定的动作测试用的函数、具体来说是用于操作网页浏览器404的函数和用于操作SAPGui客户端406的函数。浏览器用驱动器414在用于操作网页浏览器404的函数被检测到时,通过调用与该函数对应的QTP408的API来操作网页浏览器404。SAP用驱动器416在用于操作SAPGui客户端406的函数被检测到时,通过调用与该函数对应的SAP用插件410的API来操作SAPGui客户端406。另外,测试引擎IF412、浏览器用驱动器414、SAP用驱动器416是作为图11的(a)中所示的包装器模块104来发挥功能的,其被安装在后面叙述的程序执行部134中。
图20详细表示了关于图19的SAP操作的部分。SAPGui客户端406包括AP显示画面420和SAPScriptingAPI 428。AP显示画面420的功能是控制用于操作SAP用AP的GUI组件的显示,在该图中表示了要显示在预定的显示器中的画面图像。AP显示画面420中包括SAPGuiWindow422、SAPGuiTable424、SAPGuiGrid426。各GUI组件被设定有用于纵向滚动的纵向滚动条和用于横向滚动的横向滚动条。
SAPScriptingAPI428是用于操作SAPGui客户端406的SAPGui客户端406的本地方法(native method)群。换言之,是从外部直接调用SAPGui客户端406的库的API群。SAPGui客户端406的外部处理通过调用与各种GUI组件对应的SAPScriptingAPI428,能够执行针对各个GUI组件的各种操作。
SAP用插件410包括滚动专用函数430和本地参照对象432。滚动专用函数430是用于执行对SAPGuiWindow422的滚动操作的专用函数。本地参照对象432是用于访问SAPGui客户端406的客户端模块。例如,SAPGui客户端406的外部处理能够以本地参照对象432为指针调用SAPScriptingAPI428。
在要执行对SAPGuiWindow422的滚动操作时,SAP用驱动器416调用滚动专用函数430,由此来使SAPGuiWindow422的滚动条移动。另一方面,在要执行对SAPGuiTable424或SAPGuiGrid426的滚动操作时,通过介由本地参照对象432地调用SAPScriptingAPI428,来使SAPGuiTable424或SAPGuiGrid426的滚动条移动。
图21是表示第三实施方式的程序执行部134的功能构成的框图。程序执行部134为再现在SAPGui客户端406中所执行的对SAP用AP的操作,按照动作测试用程序来操作SAPGui客户端406。程序执行部134包括GUI操作部160、佐证物设定部162、核对部164、验证结果提示部166。
动作验证装置100整体的功能构成与第一实施方式是一样的,即与图4的框图是一样的。具体来说,在SAP用插件410中所记录的对SAP用AP的操作内容,在日志取得部114中被作为日志而取得。程序生成部132将日志中所记录的函数和用户在函数设定画面210中设定的函数设定成动作测试用程序的程序代码。来自输入数据文件的输入数据的取得、执行集的设定也都跟第一实施方式一样。即,本实施方式中的动作测试的执行步骤与图5是一样的。
GUI操作部160对应于图19和图20的SAP用驱动器416,通过SAP用插件410来执行对SAPGui客户端406的GUI组件的操作。在要执行GUI组件的滚动操作时,根据该GUI组件的种类而调用SAP用插件410的滚动专用函数430,或者介由本地参照对象432而调用SAPScriptingAPI428。
佐证物设定部162设定针对SAP用AP的动作测试的佐证物。具体来说,是对在动作测试中被显示在AP显示画面420中的GUI组件的图像数据进行抓图。佐证物设定部162将所抓图到的图像数据、即GUI组件的画面快照作为佐证物保持到结果保持部152中。
此外,佐证物设定部162取得显示在SAPGuiWindow422下部的状态栏区域中的消息(以下也称“状态消息”)。具体来说,通过以本地参照对象432为指针地调用SAPScriptingAPI428的状态消息取得方法(method)来取得状态消息。佐证物设定部162将状态消息的数据作为佐证物保存到结果保持部152中。
核对部164将用户所预先设定的状态消息的期待值与作为状态消息所实际显示的数据(以下也称“实际值”)进行比较核对,并将该核对结果作为佐证物保存到结果保持部152中。该核对结果是表示动作测试中的状态消息的期待值与实际值是否一致的信息。例如,如果状态消息的期待值与实际值不一致,则核对部164将表示状态消息异常的错误报告保存到结果保持部152中。
验证结果提示部166将在SAP用AP的动作测试中取得的佐证物提示给用户。具体来说,根据用户的要求,从结果保持部152取得SAP的GUI组件的画面快照、状态消息的核对结果,使它们显示在预定的显示器上。
图22表示在第三实施方式的动作验证装置100中用户所能设定的函数的例子。该图中表示出用于使对SAP的GUI组件的滚动操作得以执行的测试函数、用于取得GUI组件的画面快照的测试函数、以及用于使状态消息的核对处理得以执行的测试函数。该图中的设定形式与图7的函数设定画面210相对应。
测试函数170是使SAPGuiWindow422横向滚动参数所指定的像素数的函数。测试函数172是使SAPGuiWindow422纵向滚动参数所指定的像素数的函数。测试函数174是一边在其内部调用测试函数170、172,一边取得SAPGuiWindow422的画面快照的函数。具体来说,是一边重复进行横向滚动量所指定的像素数的横向滚动,一边对显示画面进行抓图,其中横向滚动被进行横向滚动次数次。并且,在进行纵向滚动量所指定的像素数的纵向滚动后,再次执行横向滚动和画面抓图。即,适当组合横向滚动和纵向滚动地来取得SAPGuiWindow422整体的画面抓图。
测试函数170、172是作为滚动专用函数430而被提供的函数。GUI操作部160在从动作测试用程序检测到这些函数时调用滚动专用函数430。测试函数174是佐证物设定部162提供的函数。佐证物设定部162在从动作测试用程序检测到该函数时,通过GUI操作部160调用滚动专用函数430,并执行画面抓图。例如,可以调用OS(Operating System)的画面抓图功能来取得被记录在剪贴板中的画面快照的数据。
测试函数176是使SAPGuiTable424横向滚动参数所指定的列数的函数。测试函数178是使SAPGuiTable424纵向滚动参数所指定的行数的函数。测试函数180是在其内部调用测试函数176、178的情况下取得SAPGuiTable424的画面快照的函数。具体来说,是一边重复进行横向滚动量所指定的列数的横向滚动直到最后一列,一边对显示画面进行抓图。然后,在进行纵向滚动量所指定的行数的纵向滚动后,再次执行横向滚动和画面抓图。即,适当组合横向滚动和纵向滚动来记录SAPGuiTable424整体的画面抓图。
测试函数182是使SAPGuiGrid426横向滚动参数所指定的列数的函数。测试函数184是使SAPGuiGrid426纵向滚动参数所指定的行数的函数。测试函数186是一边在其内部调用测试函数182、184,一边取得SAPGuiGrid426的画面快照的函数。具体来说,是一边反复进行横向滚动量所指定的列数的横向滚动直到最后一列,一边对显示画面进行抓图。然后,在进行纵向滚动量所指定的行数的纵向滚动后,再次执行横向滚动和画面抓图。即、适当组合横向滚动和纵向滚动,来取得SAPGuiGrid426整体的画面抓图。
测试函数176、178、182、184是作为SAPScriptingAPI428而被提供的函数。GUI操作部160在从动作测试用程序检测到这些函数时,介由本地参照对象432地调用SAPScriptingAPI428。测试函数180、186是佐证物设定部162提供的函数。佐证物设定部162在从动作测试用程序检测到这些函数时,介由GUI操作部160地调用SAPScriptingAPI428,并执行画面抓图。
如图22所示,不论成为滚动操作对象的GUI组件是SAPGuiWindow422、SAPGuiTable424、还是SAPGuiGrid426,用户都无需认识到其内部处理的差异,只要在函数设定画面210中无区别地指定测试函数即可。换言之,对于GUI组件的滚动操作是经由滚动专用函数430来执行,还是经由本地参照对象432~SAPScriptingAPI428来执行,对于用户来说是隐蔽的。因此,用户只要在函数设定画面210中适当选择、设定预先决定的测试函数176~186,就能一概地执行GUI组件的滚动操作和画面抓图操作。
另外,SAPGuiTable424的纵向滚动也可以不以用户的指定为必需,可以自动滚动SAPGui客户端406的AP显示画面420中所显示的行数量。具体来说,可以取得SAPScriptingAPI428中的GUITableControl对象的VisibleRowCount属性值作为纵向滚动量。同样,SAPGuiGrid426的纵向滚动也是一样,可以自动滚动SAPGui客户端406的AP显示画面420所显示的行数量。具体来说,可以取得SAPScriptingAPI428中的GUIGridControl对象的VisibleRowCount属性值作为纵向滚动量。通过削减用户所要指定的参数,能既降低用户的负担又记录充分必要的画面快照。
测试函数188是使状态栏中所显示的状态消息与其期待值进行核对的函数,作为参数,可以指定状态消息的期待值,在本实施方式中指定为S(正常)、W(警告)、E(错误)。测试函数188是核对部164提供的函数。核对部164在从动作测试用程序检测到该函数时,介由本地参照对象432地调用SAPScriptingAPI428,取得状态消息的实际值。然后,比较该实际值与期待值,记录比较结果。
下面说明状态消息的核对例子。图23表示SAP的GUI组件的显示画面。该图表示出在动作测试的准备阶段,用户手动地向SAPGuiWindow画面190输入了接受订货信息的情况。在该图中,尽管被输入了老客户订货日,但未输入老客户订货编号,所以状态栏区域192中显示着表示警告的状态消息。
图24表示SAP的GUI组件的显示画面。该图表示出在对SAPGuiWindow画面190的动作测试中自动输入了接受订货信息的情况。在该图中,尽管老客户订货编号未被输入、老客户订货日被输入了,状态栏区域192中却显示着表示正常的状态消息。
图25表示状态消息的核对结果。该图表示出图22的测试函数188被设定在动作测试用程序中时的错误报告的显示画面194。具体来说,如图23所示状态消息的期待值是W(警告),但如图24所示其实际值却是S(正常),所以被核对部164检测为错误。然后,表示该意思的错误报告被验证结果提示部166提示给用户。
通过本实施方式的动作验证装置100,动作测试的对象为SAP用AP时也能发挥在第一实施方式中说明过的那样的效果,能够实现高效的动作测试。例如,通过处理与参数的分离,易于扩展动作测试的变化。另外,用于操作SAP用AP的函数和用于画面抓图的各种函数被以用户可选的形态提供在统一的函数设定画面210中,由此,易于提高动作测试的効率和可靠性。
此外,通过动作验证装置100,在QTP408中无法进行自动化的GUI组件的滚动操作和状态消息的核对处理也能被自动化,从而能够实现更高效的动作测试。往往SAP服务器402中构建有多个SAP用AP,而这多个SAP用AP会成为动作测试的对象。因此,应作为佐证物而取得的GUI组件的画面快照数和状态消息数也会较多。通过使这些佐证物的取得和核对自动化,能大幅削减动作测试所需要的工作量。
以上,基于第三实施方式说明了本发明。
(第四种实施的方式(下称“第四实施方式”))
先说明第四实施方式所要解决的课题。网页的动作测试一般是通过对显示该网页的网页浏览器进行输入操作,确认操作结果来实施的。当在各种种类的网页浏览器中实施网页的动作测试时,使该动作测试自动化的动作验证装置所应采取的具体配置,以往并没有被充分提案。第四实施方式的主要目的在于提供一种用于高效地执行多种网页浏览器中的网页的动作测试的技术。
为解决上述课题,第四实施方式的动作验证装置是执行用于网页的动作确认的测试程序的装置,包括:操作记录部,检测对网页的数据输入操作,将与数据输入操作相对应、且具有用于取得对网页的输入数据的接口的函数,记录到操作内容文件中;程序生成部,通过根据被记录在操作内容文件中的函数而设定程序代码,来生成用于再现对网页所执行过的一系列操作的测试程序;第一测试执行部,从记录有对网页的输入数据的输入数据文件取得输入数据并传递给测试程序的函数,从测试程序调用进行网页的动作确认所使用的网页浏览器所公开的、用于操作正在显示的网页的操作接口,来执行网页的动作确认;代理处理部,取得网页的程序代码,并在将用于操作网页的新的代码追加到该程序代码中后,使进行网页的动作确认所使用的网页浏览器显示网页;第二测试执行部,从记录有对网页的输入数据的输入数据文件取得输入数据并传递给测试程序的函数,从测试程序调用网页浏览器中正显示的网页中的新的代码,由此来执行网页的动作确认;测试主体选择部,在要执行网页的动作确认时,当该动作确认所使用的网页浏览器中操作接口是被公开的时,使第一测试执行部执行网页的动作确认,当操作接口是非公开的时,使代理处理部和第二测试执行部执行网页的动作确认。
第四实施方式另一种实施方式也是动作验证装置。该装置是执行用于网页的动作确认的测试程序的装置,包括:操作记录部,检测对网页的数据输入操作,将与数据输入操作相对应、且具有用于取得对网页的输入数据的接口的函数,记录到操作内容文件中;程序生成部,通过根据被记录在操作内容文件中的函数而设定程序代码,来生成用于再现对网页所执行过的一系列操作的测试程序;测试执行部,从记录有对网页的输入数据的输入数据文件取得输入数据并传递给测试程序的函数,从测试程序调用进行网页的动作确认所使用的网页浏览器所公开的、用于操作正在显示的网页的接口,来执行网页的动作确认。
第四实施方式的再一种实施方式也是动作验证装置。该装置是执行用于网页的动作确认的测试程序的装置,包括:操作记录部,检测对网页的数据输入操作,将与数据输入操作相对应、且具有用于取得对网页的输入数据的接口的函数,记录到操作内容文件中;程序生成部,通过根据被记录在操作内容文件中的函数而设定程序代码,来生成用于再现对网页所执行过的一系列操作的测试程序;代理处理部,取得网页的程序代码,并在将用于操作网页的新的代码追加到该程序代码中后,使进行网页的动作确认所使用的网页浏览器显示网页;测试执行部,从记录有对网页的输入数据的输入数据文件取得输入数据并传递给测试程序的函数,从测试程序调用网页浏览器中正显示的网页中的新的代码,由此来执行网页的动作确认。
第四实施方式的再一种实施方式是动作验证方法。该方法由执行用于网页的动作确认的测试程序的装置来执行,包括:检测对网页的数据输入操作,将与数据输入操作相对应、且具有用于取得对网页的输入数据的接口的函数,记录到操作内容文件中的步骤;通过根据被记录在操作内容文件中的函数而设定程序代码,来生成用于再现对网页所执行过的一系列操作的测试程序的步骤;在要执行网页的动作确认时,当该动作确认所使用的网页浏览器中、进行网页的动作确认所使用的用于操作正显示的网页的操作接口是被公开的时,执行第一测试执行处理,当操作接口是非公开的时,执行第二测试执行处理的步骤。第一测试执行处理包括从记录有对网页的输入数据的输入数据文件取得输入数据并传递给测试程序的函数,从测试程序调用操作接口来执行网页的动作确认的步骤。第二测试执行处理包括:取得网页的程序代码,并在将用于操作网页的新的代码追加到该程序代码中后,使进行网页的动作确认所使用的网页浏览器显示网页的步骤;从记录有对网页的输入数据的输入数据文件取得输入数据并传递给测试程序的函数,从测试程序调用网页浏览器中正显示的网页中的新的代码,由此来执行网页的动作确认的步骤。以下详细进行说明。
首先,说明第四实施方式的概要。
目前公开有非常多的网页浏览器,用户的PC中也有多种网页浏览器被使用。因此,作为动作验证装置,希望能够支持针对多种网页浏览器的网页的动作测试。此时,动作验证装置需要根据网页浏览器的规格操作网页浏览器,其方法大致可分为以下两种。以下也将成为动作测试对象的网页称为“测试对象页”。
方式1.来自外部的操作:
通过调用网页浏览器对外公开的API、即接受对正显示在网页浏览器中的测试对象页的输入操作的接口(以下也称“操作IF”),来从外部操作网页浏览器。本实施方式的操作IF具体来说是用于对测试对象页输入数据、执行测试对象页的表单(form)、以及对网页服务器的GET请求(Request)和POST请求(Request)的函数。
方式2.来自内部的操作:
向测试对象页的程序代码(即HTML文件)追记接受对测试对象页的输入操作,并使网页浏览器执行该输入操作的脚本文件(以下也称“控制代码”)。然后,通过调用该控制代码来从内部操作网页浏览器。换言之,通过被预先编入网页浏览器所表示的网页中的脚本文件来操作该网页浏览器。
本实施方式的控制代码是记述了包含接受外部对测试对象页的输入操作的接口功能的函数的程序代码。并且还是记述了包含通过操作测试对象页的DOM树来更新测试对象页的显示内容的功能、发送对网页服务器的GET请求和POST请求的功能的函数的程序代码。控制代码也可以用预定的脚本语言(例如JAVA脚本(“JAVA”是注册商标))来记述。
图26表示对网页浏览器的两种操作方式的特征。该图是来自外部的操作方式与来自内部的操作方式的比较图。在被认为最重要的动作测试本身的可靠性方面,由于来自内部的操作方式是改写测试对象页的操作,所以可以说来自外部的操作方式更佳。而在适合性和通用性方面,由于来自外部的操作方式是依赖于网页浏览器中的操作IF的操作,所以可以说来自内部的操作方式更佳。
因此,在本实施方式中,提出一种如果动作测试所使用的网页浏览器的操作IF是公开的,则从外部操作网页浏览器,而如果操作IF是非公开的,则从内部操作网页浏览器的动作验证装置。由此,能够在尽可能地确保动作测试的可靠性的同时,支持基于各种各样的网页浏览器的动作测试。
图27针对对网页浏览器的两种操作方式,示意性地示出了功能间的调用关系。网页服务器1400是提供测试对象页的信息处理装置。以浏览器1402为总称的浏览器A1402a、浏览器B1402b、浏览器C1402c、浏览器D1402d是作为HTTP用户代理而发挥功能的网页浏览器,执行测试对象页的显示处理、操作处理等。另外,假定该图的浏览器A1402a和浏览器B1402b将其操作IF对外公开,而浏览器C1402c和浏览器D1402d不公开其操作IF。
以个别浏览器用引擎1404为总称的浏览器A用引擎1404a和浏览器B用引擎1404b分别是调用浏览器A1402a和浏览器B1402b各自的操作IF的程序代码。通用IF1406是用于调用多种浏览器1402各自的操作IF的接口,是具有不依赖于多种浏览器1402各自不同的操作IF的通用格式的接口的程序代码。以个别浏览器用引擎驱动器1408为总称的浏览器A用引擎驱动器1408a、浏览器B用引擎驱动器1408b通过将不依赖于浏览器1402的种类的通用IF1406格式的数据变换成按各浏览器1402而不同的操作IF格式的数据,来桥接动作测试用程序和个别浏览器用引擎1404。
代理(proxy)服务器1410作为浏览器1402的代理,发挥从网页服务器取得测试对象页的反向代理的功能。代理服务器1410在向测试对象页追加控制代码后,将该测试对象页提供给浏览器C1402c和浏览器D1402d。内部操作引擎1412介由代理服务器1410调用被附加在测试对象页中的控制代码。内部操作引擎驱动器1414通过将通用IF1406格式的数据变换成用于调用控制代码的预定格式的数据,来桥接动作测试用程序和内部操作引擎1412。
下面说明图27的动作。当显示测试对象页的网页浏览器是浏览器A1402a或浏览器B1402b时,动作测试用程序调用通用IF1406。伴随于此,网页浏览器的操作IF被介由个别浏览器用引擎驱动器1408和个别浏览器用引擎1404而调用,由此,网页浏览器被操作,对测试对象页的输入操作被实现。
另一方面,当显示测试对象页的网页浏览器是浏览器C1402c或浏览器D1402d时,代理服务器1410向测试对象页追加控制代码,并使该测试对象页显示在网页浏览器中。此时,动作测试用程序也是调用通用IF1406,被附加在测试对象页中的控制代码被介由内部操作引擎驱动器1414、内部操作引擎1412、代理服务器1410地调用。由此,网页浏览器被不介由网页浏览器的操作IF地操作,对测试对象页的输入操作被实现。
通过图27的结构,网页浏览器的接口的差异被个别浏览器用引擎驱动器1408和内部操作引擎驱动器1414所吸收。由此,动作测试用程序能够不依赖于网页的动作测试中所使用的网页浏览器(以下也称“测试执行浏览器”)的种类,总是通过调用通用IF1406来操作测试执行浏览器。换言之,通过同一个动作测试用程序就能使基于多种网页浏览器的动作测试自动执行。
图28是表示实施方式的动作验证装置的功能构成的框图。对该图的功能块中的与参考技术1和2所示的动作验证装置100的功能块对应的功能块标注相同的标号。关于标注了相同标号的功能块,仅在其功能不同于参考技术1和2中已述的内容时再进行说明,对于同样的功能,由于已经说明过了,故适当省略其说明。
动作验证装置100除图13所示的功能块外还具有浏览器处理部1160。浏览器处理部1160对应于图27的浏览器1402,作为网页浏览器而发挥功能。当然,也可以是一个动作验证装置100具有多种浏览器处理部1160。
程序执行部134在动作测试用程序的执行时,根据测试执行浏览器的种类、换言之根据浏览器处理部1160的形态来选择来自外部的操作方式或来自内部的操作方式而操作浏览器处理部1160。图29是表示图28的程序执行部134的详细情况的框图。程序执行部134包括测试主体选择部1162、外部操作执行部1164、代理处理部1166、内部操作执行部1168、佐证物设定部1170。
测试主体选择部1162从预定的设定文件或动作测试用程序取得表示测试执行浏览器的种类的信息、换言之取得表示浏览器处理部1160中的操作IF的公开状况的信息,按照该信息决定动作测试的执行主体。例如,可以参照将各种网页浏览器与各自的操作IF的公开状况建立起对应关系的表,来确定测试执行浏览器中的操作IF的公开状况。
当浏览器处理部1160是对外公开操作IF的时,测试主体选择部1162选择在后文中叙述的外部操作执行部1164作为动作测试的执行主体。另一方面,当浏览器处理部1160不对外公开操作IF时,选择在后文中叙述的代理处理部1166和内部操作执行部1168作为动作测试的执行主体。
外部操作执行部1164对应于图27的个别浏览器用引擎1404,在动作测试用程序的执行时检测动作测试用程序对通用IF1406的调用。然后,通过调用浏览器处理部1160所公开的操作IF,来操作浏览器处理部1160,执行对测试对象页的输入操作。
代理处理部1166对应于图27的代理服务器1410,从网页服务器1400代理取得浏览器处理部1160所要求的测试对象页,在测试对象页的HTML代码内插入控制代码。然后,将改变后的测试对象页的HTML代码发送给浏览器处理部1160使之显示。此外,代理处理部1166从后文叙述的内部操作执行部1168接受控制代码的调用,调用已追加到测试对象页中的控制代码。代理处理部1166与测试对象页的通信可以采用基于XMLHttpRequest的非同步通信。
内部操作执行部1168对应于图27的内部操作引擎1412,在动作测试用程序的执行时,检测动作测试用程序对通用IF1406的调用。然后,通过介由代理处理部1166地调用被追加在测试对象页中的控制代码,来操作浏览器处理部1160,执行对测试对象页的输入操作。代理处理部1166和内部操作执行部1168可以采用被作为测试自动化工具而公开的Selenium(http://seleniumhq.org/)的库。
佐证物设定部1170根据来自外部操作执行部1164或内部操作执行部1168的要求,设定证明动作测试的结果的数据(以下也称“佐证物”),将该佐证物保存到结果保持部152中。作为佐证物,可以取得通过浏览器处理部1160而显示在显示器中的测试对象页的画面快照,也可以取得在与网页服务器1400的HTTP通信中所收发的数据。此外,画面快照的取得功能可以由OS提供,HTTP通信数据的取得功能可以由被安装在动作验证装置100中的抓包软件提供。
下面说明以上结构的动作。
图30是表示动作验证装置100的动作的流程图。该图表示在动作验证装置100中动作测试用程序被执行时的动作。例如,是表示图12中的S218的详细情况的图,也是表示图14中的S228的详细情况的图。
在测试对象页的动作测试开始时,测试主体选择部1162根据浏览器处理部1160中的操作IF的公开状况选择动作测试的执行引擎(S1300)。浏览器处理部1160要求网页服务器1400提供测试对象页(S1302)。当在浏览器处理部1160中操作IF是非公开的时(S1304为N),代理处理部1166代理取得测试对象页,在向其HTML代码追加控制代码后,将测试对象页发送给浏览器处理部1160(S1306)。如果操作IF没有被公开(S1304为Y),则S1306被跳过。浏览器处理部1160使测试对象页显示在预定的显示器中(S1308)。佐证物设定部1170通过取得测试对象页的画面快照等来设定动作测试的佐证物,并保存到结果保持部152中(S1310)。
如果应在动作测试中执行的所有操作都已执行完(S1312为Y),则结束本图的流程。如果还有未执行的操作(S1312为N),当浏览器处理部1160中操作IF是公开的时(S1314为Y),外部操作执行部1164通过调用该操作IF来执行动作测试用程序对测试对象页的输入操作(S1316)。如果操作IF非公开(S1314为N),则内部操作执行部1168通过调用被追加在测试对象页中的控制代码来执行动作测试用程序对测试对象页的输入操作(S1318)。当基于对测试对象页的操作而被要求提供新的网页时、例如发生基于GET请求或POST请求等的画面转移时(S1320为Y),回到S1304。如果没有被要求提供新的网页(S1320为N),则回到S1310。
本实施方式的动作验证装置100以第一实施方式和第二实施方式中所记载的动作验证装置100的结构为前提,追加了用于支持多种网页浏览器中的网页的动作测试的结构。因此,本实施方式的动作验证装置100的构成不仅具有第一实施方式和第二实施方式所记载的效果,还具有以下效果。
在动作验证装置100中,作为网页浏览器的操作方式,配置有来自内部的操作方式,从而能够不论网页浏览器中的操作IF公开与否,都能执行多种网页浏览器中的网页的动作测试。另外,在动作验证装置100中,作为网页浏览器的操作方式,还配置有来自外部的操作方式,在网页浏览器公开操作IF的情况下,通过以来自外部的操作方式进行动作测试,容易确保动作测试的可靠性。
以上基于第四实施方式说明了本发明。下面说明变形例。
在上述实施方式中,与代理服务器1410对应的代理处理部1166是被内置在动作验证装置100中的。在变形例中,代理处理部1166也可以是被包含在动作验证装置100之外的其它信息处理装置中。
在上述实施方式中也已说明了一些,可以是单一的动作验证装置100中安装有多种网页浏览器,也可以是动作验证装置100具有与多种网页浏览器对应的多个浏览器处理部1160。此时,程序执行部134可以在各个网页浏览器中执行测试对象页的动作测试。即,可以针对各网页浏览器并行执行图30所示的处理。由于能够在单一的动作验证装置100中实施多种网页浏览器中的动作测试,所以能实现高效率且低成本的动作测试。
在上述实施方式中,是按照网页浏览器的种类而选择来自内部的操作方式或来自外部的操作方式的。在变形例中,也可以在单一网页浏览器的动作测试中组合两种方式。例如,对于针对测试对象页的操作中的、能利用已公开的操作IF来执行的操作,适用来自外部的操作方式,即外部操作执行部1164调用操作IF。而对于不能利用公开的操作IF来执行的操作,适用来自内部的操作方式,即内部操作执行部1168调用控制代码。由于网页内所记述的脚本代码一般是被允许广泛的操作的,所以能够通过来自内部的操作方式来补足依赖于操作IF的规格而造成的来自外部的操作方式下的制约。
(第五种实施的方式(下称“第五实施方式”))
先说明第五实施方式所要解决的课题。如在背景技术中说明的那样,动作试验工具的导入目的在于动作测试的高效执行,但本发明人认识到如果用单一的装置进行动作测试的自动化,有时会因该装置的制约而阻碍动作测试的高效执行。第五实施方式的主要目的在于提供一种用于高效地执行动作测试的技术。
为解决上述课题,第五实施方式的动作验证系统具有执行用于确认预定机器的动作的测试程序的试验执行装置,和管理测试程序的执行的试验管理装置。试验管理装置包括:操作记录部,检测对预定机器的数据输入操作,将与数据输入操作相对应、且具有用于取得对预定机器的输入数据的接口的函数,记录到操作内容文件中;文件发送部,将不同于操作内容文件的、记录有对预定机器的输入数据的输入数据文件和操作内容文件发送给试验执行装置。试验执行装置包括:程序生成部,通过根据被记录在操作内容文件中的函数而设定程序代码,来生成用于再现对预定机器所执行过的一系列操作的测试程序;程序执行部,通过从输入数据文件取得输入数据并传递给测试程序的函数,来执行测试程序;测试状况通知部,将测试程序的执行状况通知给试验管理装置。试验管理装置还包括测试状况提供部,在从外部收到了测试程序的执行状况的确认要求时,输出从试验执行装置通知来的测试程序的执行状况。下面详细进行说明。
首先,说明第五实施方式的概要。
在上述各实施方式中,单一的动作验证装置100进行了网页的自动试验所需要的全部工程、即从操作内容文件的设定到动作测试用程序的执行。此时,有时会因动作验证装置100中的工作环境等的制约而出现阻碍动作测试的执行的情况。作为阻碍高效的动作测试的执行的主要原因,本发明人认识到以下所示的三个课题。
1.动作测试的执行状况的确认较困难:
由于在动作测试的自动执行过程中难以操作动作验证装置100,所以用户无法在动作测试的执行过程中确认其执行状况。因此,在动作测试完成之前,都不能进行用于应对执行时所发生的错误等的作业。本实施方式中的所谓动作测试的执行状况,是指表示动作测试中所规定的多个操作各自的执行结果的信息,例如可以是表示各操作中有无错误发生的信息。另外,也可以是表示针对某个操作返回了异常响应或预想外的响应的信息。
2.多环境下的动作测试较繁琐:
针对安装有不同的OS(Operating System:操作系统)或不同的网页浏览器的多个信息处理装置,分别对其实施用于使之执行动作测试用程序的设定较为繁琐。另外,从各个装置收集网页的画面快照等用于证明动作测试用程序的执行结果的数据(以下也称“佐证物”)也较为繁琐,会增大用户的负担。
3.动作测试的执行环境被制约:
在操作内容文件、输入数据文件、事例文件(以下也统称为“测试控制用文件”)为依赖于特定的应用程序的格式时,动作验证装置100的工作环境会受到制约。例如,在为访问测试控制用文件的记录数据,特定的表运算软件成为前提环境时,不能安装该表运算软件的装置就不能作为动作验证装置100发挥功能了。其结果,特定种类的OS或网页浏览器成为前提环境,动作验证装置100难以进行覆盖了各种各样的OS、网页浏览器环境的试验。
因此,在第五实施方式中,提出一种将动作验证装置100所具有的各种功能分散到多个信息处理装置中的动作验证系统。通过该动作验证系统,能解决上述课题,实现效率良好的动作测试。下面以执行动作测试的装置和管理动作测试的装置这两级所构成的动作验证系统作为第五实施方式A来进行说明。进而,以再增加了指示动作测试的执行的用户终端的三级构成的动作验证系统作为第五实施方式B进行说明。
(第五实施方式A)
图31表示第五实施方式A的动作验证系统的构成。动作验证系统2000包括试验对象装置2402、以试验执行装置2500为统称的第一试验执行装置2500a、第二试验执行装置2500b、第三试验执行装置2500c、以及试验管理装置2600。这些装置通过LAN/WAN/因特网等公知的通信网连接起来。
试验对象装置2402是安装有成为动作测试的对象的软件和硬件的信息处理装置。在本实施方式中,假定是提供成为动作测试的对象的网页的网页服务器。
试验执行装置2500是安装有网页浏览器的信息处理装置,执行试验对象装置2402所提供的网页的动作测试。第一试验执行装置2500a~第三试验执行装置2500c在动作测试用程序的执行环境、即硬件环境和软件环境方面彼此不同。例如所安装的OS的种类或网页浏览器的种类彼此不同。试验执行装置2500的详细结构将结合图33在后面叙述。
试验管理装置2600是统括管理第一试验执行装置2500a~第三试验执行装置2500c各自所执行的动作测试的信息处理装置。试验管理装置2600的详细结构将结合图32在后面叙述。此外,试验管理装置2600中安装有用于参照、编辑测试控制用文件的记录数据的表运算软件。而试验执行装置2500中未安装该表运算软件。
图32是表示图31的试验管理装置2600的功能构成的框图。对该图的功能块中的、与第一实施方式和第二实施方式所示的动作验证装置100的功能块对应的功能块标注相同的标号。关于标注了相同标号的功能块,仅在其功能不同于参考技术1和2中已述的内容时再进行说明,对于同样的功能,由于已经说明过了,故适当省略其说明。对于将在后面叙述的图33也是一样。
数据保持部140具有操作内容文件保持部143、输入数据文件保持部146、事例文件保持部148、函数保持部150、执行引擎保持部2630、佐证物集约保持部2632。
执行引擎保持部2630是保持用于执行网页的动作测试的程序、例如实现程序生成部132、程序执行部134的功能的程序模块(以下也称“测试执行引擎”)的存储区域。佐证物集约保持部2632是统括保持第一试验执行装置2500a~第三试验执行装置2500c各自所取得的动作测试的佐证物的存储区域。
IF部110的输入部112具有操作检测部115、用户设定受理部117、试验信息取得部2602。试验信息取得部2602在收到来自用户的动作测试的执行状况的确认要求时,将该执行状况的通知要求发送给试验执行装置2500。然后,从试验执行装置2500接收表示动作测试的执行状况的数据(以下也简称为“测试执行状况”),发送给将在后面叙述的测试信息提供部2614。此外,还从试验执行装置2500接收动作测试的佐证物的数据,存储到佐证物集约保持部2632中。
IF部110的输出部118具有函数设定画面显示部120、输入设定画面显示部122、事例设定画面显示部126、执行引擎发送部2610、文件发送部2612、测试信息提供部2614。在从试验执行装置2500收到了测试执行引擎的下载要求时,执行引擎发送部2610将被保持在执行引擎保持部2630中的测试执行引擎的数据发送给试验执行装置2500。
在收到了来自用户的动作测试的开始指示时,文件发送部2612将变换为XML文件后的操作内容文件、输入数据文件、事例文件分别发送给第一试验执行装置2500a~第三试验执行装置2500c。在收到了来自用户的测试执行状况的确认要求时,测试信息提供部2614将由试验信息取得部2602取得的第一试验执行装置2500a~第三试验执行装置2500c各自中的测试执行状况一并发送给预定的显示装置。另外,在收到了来自用户的动作测试的佐证物的确认要求时,将被保持在佐证物集约保持部2632中的佐证物、换言之将在第一试验执行装置2500a~第三试验执行装置2500c中分别所取得的佐证物一并发送给预定的显示装置。
在本实施方式中,IF部110具有网页服务器的功能。因此,输入部112利用HTTP通信接收来自外部(网页浏览器等)的要求,输出部118利用HTTP通信将各种数据发送到外部(网页浏览器等)。例如测试信息提供部2614可以向未图示的网页浏览器发送测试执行状况,使得在该网页浏览器中执行测试执行状况的显示处理。
数据处理部130具有测试事例登录部136、操作记录部137、输入数据记录部138、文件变换部2620。在收到了来自用户的动作测试的开始指示时,文件变换部2620将被保持在数据保持部140中的测试控制用文件(操作内容文件、输入数据文件、事例文件)的记录数据变换成不依赖于特定的应用程序的格式的数据。
本实施方式中的文件变换部2620将原始的测试控制用文件变换成在试验执行装置2500和试验管理装置2600之间已预先决定了结构的结构化文件、具体来说是变换成XML文件。例如文件变换部2620可以调用特定的表运算软件的库来访问测试控制用文件的记录数据,并将数据表上的各列与预定的标签、属性相对应地转记记录数据,由此来生成XML文件。
另外,将测试控制文件的格式变换为XML文件的目的是为了在未安装特定的表运算软件的试验执行装置2500中也能访问测试控制用文件的记录数据。因此,作为变形例,文件变换部2620可以将测试控制用文件变换成纯文本文件。另外,也可以变换成各种数据对象的数据长度被预先确定了的二进制数据文件。
图33是表示图31的试验执行装置2500的功能构成的框图。数据保持部140具有操作内容文件保持部2530、程序保持部144、输入数据文件保持部2534、事例文件保持部2536、测试状况保持部2538、佐证物保持部2540。
操作内容文件保持部2530、输入数据文件保持部2534、事例文件保持部2536分别是保持从试验管理装置2600收到的控制用文件的存储区域。具体来说,保持被在试验管理装置2600中XML文件化了的操作内容文件、输入数据文件、事例文件。测试状况保持部2538是保持动作测试的执行状况的存储区域。佐证物保持部2540是保持动作测试的佐证物的存储区域。
IF部110的输入部112具有执行引擎取得部2502、文件取得部2504、页取得部2506。执行引擎取得部2502从试验管理装置2600取得测试执行引擎,安装到试验执行装置2500内。具体来说,可以将程序生成部132和程序执行部134展开到主存储器中,使之成为可工作的状态。另外,执行引擎取得部2502也可以安装JavaWebStart(“Java”是注册商标)组件,在每次测试执行引擎被更新时,从试验管理装置2600自动下载最新的测试执行引擎并自动安装。
文件取得部2504从试验执行装置2500取得被XML文件化了的测试控制用文件,分别存储到操作内容文件保持部2530、输入数据文件保持部2534、事例文件保持部2536中。页取得部2506从试验对象装置2402取得针对HTTP请求的HTTP响应、具体来说是取得网页的数据,发送给将在后面叙述的页显示控制部2510。
IF部110的输出部118具有页显示控制部2510、要求发送部2512、测试信息通知部2514。页显示控制部2510通过将从试验对象装置2402取得的网页的数据发送到显示器,来使网页显示在显示器上。要求发送部2512向试验对象装置2402发送HTTP请求。
在从试验管理装置2600收到了测试执行状况的通知要求时,测试信息通知部2514将被保持在测试状况保持部2538中的测试执行状况的数据发送给试验管理装置2600。并且,在每次后述的佐证物设定部2522中有佐证物的数据被设定时,从佐证物保持部2540取得该数据,逐次发送给试验管理装置2600。
数据处理部130具有程序生成部132、程序执行部134、浏览器处理部2520、佐证物设定部2522。程序生成部132参照操作内容文件保持部2530和事例文件保持部2536,按照被XML文件化了的操作内容文件和事例文件的记录数据来生成动作测试用程序。例如,可以将与操作内容文件中所记录的函数对应的函数、具体来说是将调用OS或网页浏览器所公开的API的命令设定在动作测试用程序的程序代码中。程序生成部132将所设定的动作测试用程序存储到程序保持部144中。
程序执行部134从被存储在输入数据文件保持部2534中的被XML文件化了的输入数据文件适当取得输入数据,执行被存储在程序保持部144中的动作测试用程序。在该执行时,如果需要网页浏览器的操作,则向后述的浏览器处理部2520发出操作要求。另外,如果需要取得佐证物,则向后述的佐证物设定部2522发出取得要求。
浏览器处理部2520根据来自程序执行部134的要求来操作网页浏览器。具体来说,是执行网页浏览器的启动停止、网页的GETPOST要求、对网页内的输入区域的数据设定等。此外,浏览器处理部2520、页取得部2506、页显示控制部2510的功能也可以由被安装在试验执行装置2500中的网页浏览器来提供。
佐证物设定部2522根据来自程序执行部134的要求设定动作测试的佐证物,并将该佐证物保存到佐证物保持部2540中。具体来说,是取得网页的画面快照,取得在与试验对象装置2402的HTTP通信中所收发的数据。在此,画面快照的取得功能可以由OS提供,HTTP通信数据的取得功能可以由被安装在试验执行装置2500中的抓包软件提供。
下面说明以上结构的动作。
图34是表示第五实施方式A的动作验证系统2000的动作的流程图。在该图中表示出一个试验执行装置2500,但第一试验执行装置2500a~第三试验执行装置2500c是并行进行同样动作的。
试验管理装置2600在OS起动时等装置的初期起动时,起动网页服务器(S2010)。试验执行装置2500的执行引擎取得部2502在装置的初期起动时从试验管理装置2600下载测试执行引擎的数据并安装(S2012)。在试验管理装置2600的操作检测部115收到来自用户的动作测试执行指示时(S2014),文件变换部2620将测试控制用文件变换成XML文件(S2016),文件发送部2612将该XML文件发送给试验执行装置2500(S2018)。试验管理装置2600的文件取得部2504取得被XML文件化了的测试控制用文件,程序生成部132基于该测试控制用文件生成动作测试用程序。
程序执行部134通过执行动作测试用程序,介由浏览器处理部2520地执行试验对象装置2402所提供的网页的动作测试(S2020)。试验执行装置2500的佐证物设定部2522根据来自程序生成部132的要求而取得动作测试的佐证物(S2022),测试信息通知部2514将该佐证物逐次发送给试验管理装置2600(S2024)。试验管理装置2600的试验信息取得部2602一并取得从多个试验执行装置2500分别发送来的佐证物,存储到佐证物集约保持部2632中(S2026)。
在试验管理装置2600的操作检测部115收到来自用户的测试状况的确认要求时,试验信息取得部2602将测试状况的通知要求发送给各试验执行装置2500(S2028)。试验执行装置2500的测试信息通知部2514将测试状况发送给试验管理装置2600(S2030)。试验管理装置2600的测试信息提供部2614使从各试验执行装置2500通知来的测试状况一并显示在显示器上(S2032)。另外,虽然图34中未图示,但在收到了来自用户的佐证物的确认要求时,测试信息提供部2614使被存储在佐证物集约保持部2632中的佐证物、即从各试验执行装置2500发送来的佐证物一并显示在显示器上。
在第五实施方式A的动作验证系统2000中,动作验证装置100的功能被分散配置在试验执行装置2500和试验管理装置2600中。因此,动作验证系统2000的构成不但具有第一实施方式及第二实施方式所记载的效果,还具有以下效果。
通过动作验证系统2000,能够在用户所希望的任意时刻确认试验执行装置2500中的动作测试的执行状况。即、即使网页的动作测试是以试验执行装置2500的前台处理来执行的,用户也能不用直接操作试验执行装置2500地通过试验管理装置2600来确认动作测试的执行状况。
另外,通过动作验证系统2000,测试控制用文件被从试验管理装置2600一并配送给多个试验执行装置2500。另外,多个试验执行装置2500各自中的测试状况及佐证物被试验管理装置2600一并收集起来提示给用户。由此,即使需要在多个试验执行装置2500中确认网页的动作,也能提高其效率。
并且,通过动作验证系统2000,在试验管理装置2600中测试控制用文件被变换成不依赖于特定应用程序的格式。由此,降低了在试验执行装置2500中成为前提的动作环境(硬件环境或软件环境)的制约。换言之,能够使各种种类的OS环境或网页浏览器环境下的网页动作测试自动化,能大大提高动作测试的覆盖性。
(第五实施方式B)
图35表示第五实施方式B的动作验证系统的构成。第五实施方式B的动作验证系统2000是在第五实施方式A的动作验证系统2000基础上增加了多个用户终端2700的结构。多个用户终端2700(以下也总称为“用户终端2700”)分别通过公知的通信网与试验管理装置2600相连接。
用户终端2700是由用户操作的信息处理装置,对试验管理装置2600指示网页的动作测试的开始,从试验管理装置2600取得其执行状况显示在预定的显示器上。用户终端2700中安装有网页浏览器,通过介由该网页浏览器的HTTP通信来执行与试验管理装置2600的数据交换。
试验管理装置2600的功能构成同第五实施方式A的试验管理装置2600一样。下面说明其不同的部分。试验管理装置2600的IF部110还具有执行与用户终端2700的HTTP通信的通信处理部。该通信处理部从用户终端2700接收测试控制用文件的上传,保存到数据保持部140中。另外,还从用户终端2700接受网页的动作测试的开始指示。此外,还从用户终端2700接受动作测试的执行状况的确认要求,并将该执行状况发送给用户终端2700。另外,还从用户终端2700接受动作测试的佐证物的下载要求,并将该佐证物发送给用户终端2700。
试验管理装置2600的数据保持部140还具有测试状况集约保持部,该测试状况集约保持部是一并保存第一试验执行装置2500a~第三试验执行装置2500c各自中的动作测试的执行状况的存储区域。在本实施方式中,测试状况集约保持部和佐证物集约保持部2632被配置为数据库管理系统(DBMS)的表。试验管理装置2600的测试信息提供部2614从用户终端2700接受关于测试执行状况或佐证物的参照的DB查询(query),并按照该DB查询选择性地提供测试执行状况或佐证物。此外,也可以按照DB查询编辑调整测试执行状况或佐证物的提示形态。
下面说明以上构成的动作。
图36是表示第五实施方式B的动作验证系统2000的动作的流程图。S2040~S2042与图34的S2010~S2012相同。用户终端2700将用户编辑后的测试控制用文件上传到试验管理装置2600(S2044)。然后,用户终端2700将来自用户的动作测试执行指示发送给试验管理装置2600(S2046)。后面的S2048~S2060与图34的S2014~S2026相同。用户终端2700将测试状况的确认要求发送给试验管理装置2600(S2062),试验管理装置2600的试验信息取得部2602将测试状况的通知要求分别发送给各个试验执行装置2500(S2064)。试验执行装置2500的测试信息通知部2514将测试状况发送给试验管理装置2600(S2066)。
接下来,试验管理装置2600的测试信息提供部2614将从各个试验执行装置2500通知来的测试状况一并保存到测试状况集约保持部中,并转送到用户终端2700(S2068)。用户终端2700接收从试验管理装置2600发送来的测试状况,使之显示在显示器上(S2070)。此外,用户终端2700还将动作测试的佐证物的下载要求发送给试验管理装置2600(S2072)。试验管理装置2600的测试信息提供部2614将存储在佐证物集约保持部2632中的佐证物、即从各个试验执行装置2500发送来的佐证物一并发送给用户终端2700(S2074)。用户终端2700使从试验管理装置2600取得的佐证物的内容显示在显示器上(S2076)。当然,试验管理装置2600也可以并行执行针对从多个用户终端2700分别收到的要求的各种处理。
第五实施方式B的动作验证系统2000是在第五实施方式A的动作验证系统2000的基础上再增加了进行动作测试的开始指示及结果确认的用户终端的三级结构的系统。因此,第五实施方式B的动作验证系统2000的构成除具有第一实施方式、第二实施方式以及第五实施方式A中所记载的效果外,还具有以下效果。
通过动作验证系统2000,能够针对多个用户终端2700以统一的接口服务来提供基于试验管理装置2600及试验执行装置2500的网页动作测试。换言之,网页的动作测试被以SaaS(Software as a Service:软件即服务)的形式实现。即,用户只要从自己的终端指示动作测试的开始,之后确认其结果即可,用户的负担被减轻,便利性得到提高。另外,各用户终端2700无需安装用于动作测试执行的各种程序,可以采用通用的功能构成。
另外,通过动作验证系统2000,动作测试的执行状况及佐证物被在DBMS上管理,所以能够容易地进行基于DB查询等的信息检索及加工。此外,针对动作测试的结果的时序上的履历管理也变得容易。
以上基于第五实施方式说明了本发明。下面说明变形例。
虽然在上述实施方式中未言及,但试验管理装置2600也可以还具有对从第一试验执行装置2500a~第三试验执行装置2500c分别取得的佐证物进行验证的验证部。该验证部对从第一试验执行装置2500a~第三试验执行装置2500c分别取得的佐证物进行核对,确定它们的同一性和匹配性。如果从第一试验执行装置2500a~第三试验执行装置2500c分别取得的佐证物被认可同一性和匹配性,则检测部将核对成功的验证结果通知给外部的用户或用户终端2700。另一方面,如果这些佐证物没有被认可同一性和匹配性,则通知核对失败的验证结果。通过该变形例,试验执行装置2500一并地核对在多个试验执行装置2500中分别取得的佐证物,由此,无需用户进行佐证物的取得作业及核对作业,能降低用户的负担。
在上述实施方式中,仅在第五实施方式B中提到了测试状况集约保持部和佐证物集约保持部2632被配置成DBMS的表。在变形例中,第五实施方式A的试验管理装置2600也可以还具有测试状况集约保持部,测试状况集约保持部和佐证物集约保持部2632也可以被配置成DBMS的表。
虽然在上述第五实施方式B中未言及,但试验管理装置2600的测试信息提供部2614也可以将基于从多个用户终端2700中的一个收到的动作测试执行指示而进行的动作测试的结果提供给其它用户终端2700。例如,对于基于从某个用户终端2700收到的动作测试执行指示而进行的动作测试,试验管理装置2600可以将表示其结果的网页分别发送给多个用户终端2700使其显示。由此,能够使多个用户间共享动作测试状况,能够辅助多个用户协同进行动作测试。
(第六种实施的方式(下称“第六实施方式”))
先说明第六实施方式所要解决的课题。网页的动作测试一般是通过对显示该网页的网页浏览器进行输入操作,再确认操作结果来实施的。然而,通过利用近年来所被关注的Ajax,能够生成HTML画面的显示形态随预定的用户操作的事件而变化或被追加标签等动态的网页。在这样的动态网页中,存在如下问题:仅全部记录对网页浏览器的输入操作,无法以测试程序再现用户所进行过的动作测试。第六实施方式的主要目的在于提供一种生成并执行用于再现对动态网页的动作测试的测试程序的技术。
为解决上述课题,第六实施方式的动作验证装置执行用于确认网页的动作的测试程序。该装置包括:操作记录部,检测对动作确认对象的网页的数据输入操作,将与数据输入操作相对应、且具有用于取得对网页的输入数据的接口的函数,记录到操作内容文件中;文件取得部,取得用于构成上述网页的页构成文件;对象检测部,从上述页构成文件中检测被嵌入了事件处理程序的对象,该事件处理程序用于产生与用户操作相应的事件;事件记录部,将与被嵌入了上述事件处理程序的对象中所产生的事件相对应的函数记录到上述操作内容文件中;动态标签记录部,在上述页构成文件内包含有动态地生成对象的程序时,将用户对被动态生成的对象所进行的操作记录到上述操作内容文件中;程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序;程序执行部,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行。
通过该实施方式,对于动态网页中的、没有作为用户的明示性操作而出现的基于事件处理程序(event handler)的画面形态变化、标签的自动生成,也能将与其对应的函数记录在操作内容文件中。因此,能够将针对动态网页的动作测试以测试程序的形式生成并执行。下面详细进行说明。
在上述的第一实施方式及第二实施方式中,说明了动作验证装置100生成网页的动作测试用程序,并进行网页的动作验证的情况。具体来说,在第一实施方式中,QTP接受用户对网页服务器400的操作,以生成了日志为条件,动作验证装置100生成动作测试用程序。另外,在第二实施方式中,动作验证装置100检测用户对网页服务器400的操作,生成动作测试用程序。在每种情况下都是以验证对象的网页为静态网页为前提的。
近年,利用Ajax(Asynchronous JavaScript+XML)来生成动态网页的情况被广泛进行。在以往的网页应用中,要使画面转移,是通过向网页服务器发送HTTP请求后,从服务器新接收HTTP响应来进行的。若利用Ajax,则能够不发生画面转移地实现动态的网页应用。在与网页服务器之间,利用JavaScript的HTTP通信功能,用JavaScript处理来自服务器的通信结果,由此实现HTML的更新。
在利用了Ajax的网页中,HTML画面和DOM(Document Object Model)树总是联动的。这里,所谓DOM,是指用于在程序层面使用HTML或XML的API,用于使HTML或XML的数据与Ajax相结合,将HTML或XML展开成树结构。通过用JavaScript操作DOM,能够不进行画面转移地实现画面的变化、即追加动态标签。Ajax无需插件,仅以网页浏览器来进行动作,所以作为扩展网页应用可能性的技术而受到瞩目。
用于构成网页的HTML被以多种标签的组合来构成,但能够在这些标签中设定“事件”。例如通过设定“onClick”这样一个事件,就能对显示在HTML画面中的对象进行点击。进而,还能设定在预定的事件被执行时进行动作的JavaScript。在Ajax中,通过利用这样的JavaScript,能够在网页应用中使用点击操作、输入操作、onMouse操作等。
关于通过Ajax实现的操作,下面说明一个例子。
1.点击操作:是点击HTML画面上的对象的操作,在画面转移、选择、输入操作前的确定焦点(focus)等各种情况下使用。
2.输入处理:被用于向对象输入字符串的操作。
3.onMouse操作:被用于在使鼠标光标对准对象时,改变对象的颜色、或使菜单滚动显示。
4.拖放操作:在移动对象(例如滑动条)等时使用。
5.鼠标滚轮操作:在对象(例如地图)的放大缩小等时使用。
6.双击操作:在使字符输入用的对象于双击时显示等的时候被使用。
通过这样使用Ajax,能够生成动态的网页,但被Ajax功能动态生成的对象中未被嵌入事件处理程序,所以在上述第一实施方式及第二实施方式的构成中存在以下问题,即,QTP或动作验证装置100无法检测到用户的输入操作的内容,不能记录在动作测试用程序的操作内容文件中。
另外,关于采用了Ajax的网页的动作,还有标签的自动生成。图37表示在采用了Ajax的网页中被动态追加标签的例子。在图37的(a)中,表示了若在“姓名”文本框中输入了文本,则网页内被自动追加“清除”按钮的情况。这是通过在“姓名”文本框的标签中设定有文本输入操作的事件,一旦输入文本,则与该事件相关联的JavaScript就追加“清除”按钮来实现的。
图37的(b)表示相应于(a),JavaScript改写DOM的例子。与事件相关联的JavaScript在该DOM树中追加与“清除”按钮对应的标签。
由于如图37这样被动态追加的标签是在记录完数据输入处理后被追加的,所以在第一实施方式及第二实施方式的动作验证装置中存在如下问题,即,无法将该标签记录到操作内容文件中。并且还存在如下问题,即,在执行测试程序时,无法执行针对被动态追加的标签的操作。另外,还存在如下问题,即,在要对测试结果数据进行抓图记录时,无法对被动态追加的标签进行抓图。
因此,在本实施方式中,提供一种用于在采用了Ajax的网页中,使用户所进行的操作或动态标签准确地反映到动作测试用程序中的技术。
图38是表示第六实施方式的动作验证装置500的功能构成的框图。对该图的功能块中与第一实施方式及第二实施方式所示的动作验证装置100的功能块对应的功能块标注相同的标号。关于标注了相同标号的功能块,仅在其功能不同于参考技术1和2中已述的内容时再进行说明,对于同样的功能,由于已经说明过了,故适当省略其说明。
采用了Ajax的网页,是通过网页浏览器读入被直接记述在HTML源中或被记录在外部的JavaScript来实现的,但图38的功能块并不区分这些,是以仅关注功能的功能块的形式来表示的。
本实施方式的数据处理部130实现支持Ajax的网页中的测试操作的自动记录及测试操作的自动执行。
关于数据处理部130中的程序生成部132、程序执行部134、测试事例登录部136、操作记录部137以及输入数据记录部138,其与在参考技术2中说明过的部分具有同样的功能。在本实施方式中,除这些外还追加有Ajax支持部3520。Ajax支持部3520与IF部110、数据处理部130以及数据保持部140协作,检测采用了Ajax的网页中的数据输入操作。Ajax支持部3520包括文件取得部3522、对象检测部3524、事件记录部3526以及动态标签记录部3528。
文件取得部3522取得构成网页的HTML文件、XML文件等文件。
对象检测部3524从文件取得部3522所取得的HTML文件或XML文件中检测被嵌入了用于产生与用户的操作相应的事件的事件处理程序的对象。
事件记录部3526将与被嵌入了事件处理程序的对象中所产生的事件对应的函数记录到操作记录部137内的操作内容文件中。事件记录部3526与IF部110及数据处理部130协同工作。
事件记录部3526和动态标签记录部3528与操作记录部137协同工作。即,用户操作客户端终端的网页浏览器来访问网页服务器400,执行对网页服务器400的各种操作、典型的是对网页服务器400所提供的网页的数据输入操作。操作检测部115逐次检测用户的数据输入操作,操作记录部137读取函数保持部150的函数库,将与该数据输入操作对应的函数逐次记录到操作内容文件中。进而,在用户对被嵌入了事件处理程序的对象进行onMouse操作或点击操作等时,将与该操作对应的函数记录到操作内容文件中。
当在页构成文件内包含有动态地生成对象的程序、典型的是JavaScript时,动态标签记录部3528将用户对由该JavaScript动态生成的对象所进行的操作记录到操作记录部137内的操作内容文件中。更具体来说,动态标签记录部3528能够通过在操作内容文件的生成过程中定期地再次取得构成网页的HTML文件或XML文件,来检测被动态生成的对象,并记录到操作内容文件中。作为另一种方法,动态标签记录部3528在操作内容文件的生成过程中根据用户所进行的指示,再次取得构成网页的HTML文件或XML文件,由此能够检测被动态生成的对象,并记录到操作内容文件中。
图39表示被事件记录部3526和动态标签记录部3528追加到操作内容文件中的函数的例子3600。左列是函数名,中央一列是函数的说明,右列是在函数中处理的参数的例子。函数3602~3614是与事件处理程序对应的函数,函数3616是用于规定在后面叙述的动态标签生成时的待机时间的函数。
mouseOver函数3602是对对象(元素)的onMouse操作的函数。参数的指向(point)位置是该元素内的相对坐标,当有指定时,在该位置发出mouseOver事件。
DragStart函数3604、DragEnd函数3606、DragAndDrop函数3608是对象(元素)的拖放操作的函数。DragStart函数3604开始指定元素的拖拽。DragEnd函数3606释放正拖拽的元素。释放处由元素指定,或者通过相对于拖拽元素的相对坐标来指定。DragAndDrop函数3608一并执行指定元素的拖放。释放处由元素指定,或通过相对于拖拽元素的相对坐标来指定。
DoubleClick函数3610是元素的双击操作的函数,针对指定元素执行双击事件。
mouseWheel函数3612是在元素上的鼠标滚轮旋转操作的函数。对指定元素设定焦点(focus),以机器人(ROBOT)操作来使鼠标滚轮旋转。
mouseAction函数3614是通用的鼠标操作的函数。
wait函数3616是规定等待动态标签的生成时的待机时间的函数。
回到图38,操作内容文件生成后的IF部110和数据处理部130的动作与在第二实施方式中说明过的一样。即,函数设定画面显示部120读取操作内容文件保持部143的操作内容文件,并使一览显示与用户的操作对应的函数的函数设定画面显示出来。接下来,用户通过输入设定画面设定要在执行动作测试时向动作测试用程序动态地供给的输入数据。进而,用户基于多种操作内容文件及多种输入数据文件,将操作内容文件和输入数据文件的组合登录为执行集。测试事例登录部136将一个以上的执行集记录到事例文件中。关于函数设定画面、输入数据设定画面以及事例设定画面,也可以与参考技术2所示的画面一样。
程序生成部132基于事例文件和操作内容文件生成动作测试用程序。具体来说,可以将被设定在执行集中的操作内容文件中所依次记录的函数依次设定在动作测试用程序的程序代码中。另外,当一个测试事例中设定有多个执行集时,程序生成部132将被记录在各执行集的操作内容文件中的函数集约设定在一个动作测试用程序中。程序生成部132的其它动作也同参考技术2一样。
程序执行部134执行动作测试用程序,再现用户对网页服务器400所执行的一连串操作。对于需要输入数据文件的数据的函数,将在动作测试用程序的执行时所读入的输入数据文件的数据作为自变量传递给它。即,基于从输入数据文件动态地取得的输入数据执行函数。
本实施方式中的程序执行部134除上述功能外还必须具有与动态标签对应的以下功能。下面来进行说明。
在生成如图37的(a)所示那样的动态标签时,有时处理会花费一些时间。因此,在执行伴随有动态标签的生成的测试程序时,有时会出现无法检测到动态标签、或者对动态标签的操作出现错误的情况。具体来说,在针对图37的(a)的结构的测试程序中,在连续进行对文本框的文本输入和“清除”按钮的点击操作时,如果“清除”按钮的生成较花费时间,则无法找到成为点击操作对象的对象,从而出现错误。
因此,程序执行部134在测试程序的执行过程中为了等待在初始状态下所不被显示的动态标签的生成的完成,具有使后续的点击操作或输入操作等处理待机预先设定的时间的功能,或者重复进行后续的处理,直到成为动态标签生成的后续处理对象的对象被检测到为止的重试(retry)功能。如果待机了设定时间后动态标签仍没被生成,或者重试预定次数后仍然没检测到后续操作的对象,则进行错误显示。
作为替代性方法,程序执行部134也可以在操作内容文件的生成时基于动态标签的生成所需要的时间,来设定执行测试程序过程中的待机时间。在这种情况下,动态标签记录部3528测出从事件发生到动态标签被生成所需的时间,记录到操作内容文件或其它文件中,程序执行部134在测试程序的执行时参照这些文件。
图40是本实施方式的动作验证装置500的操作记录时的流程图。
用户执行对网页服务器400的数据输入操作(S3302)。统合验证模块106逐次检测该数据输入操作,将与数据输入操作对应的函数记录到操作内容文件中,并且检测事件的发生,将与事件处理程序对应的函数记录到操作内容文件中(S3304)。若网页的HTML文件等中包含有动态标签的生成,则将与之对应的函数记录到操作内容文件中(S3306)。接下来,在函数设定画面中显示操作内容文件的记录数据(S3308)。用户通过该函数设定画面将要追加变更的函数输入数据设定在操作内容文件中(S3310)。然后,用户在事例设定画面中设定将操作内容文件和输入数据文件指定为集的动作测试的剧本(S3312)。统合验证模块106基于该剧本来生成集约了剧本内的一个以上的集的动作测试用程序(S3314)。
图41是第六实施方式的动作验证装置500的程序执行时的流程图。
程序执行部134执行动作测试用程序(S3320)。当包含有动态标签的生成时,按照wait函数使后续处理待机预定时间,或者重试预定次数的后续处理(S3322)。若在预定的时间内或者预定的重试次数内动态标签被生成了(S3324为Y),则继续进行后续的处理(S3326)。若动态标签没有被生成(S3324为N),则进行错误显示,以将该情况通知给用户(S3328)。
以上基于第六实施方式说明了本发明。通过本实施方式,对于利用了Ajax的动态网页中的、不作为用户的明示性操作而出现的事件处理程序所引起的画面样态的变化或标签的自动生成,也能将与之对应的函数记录到操作内容文件中。因此,能够将对动态网页的动作测试生成为测试程序并执行。
(第七种实施的方式(下称“第七实施方式”))
先说明第七实施方式所要解决的课题。网页的动作测试一般是通过对显示该网页的网页浏览器进行输入操作,并确认操作结果来实施的。网页改变后的操作结果需要与改变前的操作结果进行比较来验证,而在以往,是使用画面图像的印刷物,由测试工程师目视来进行该比较验证的。第七实施方式的主要目的在于提供一种便于进行网页的动作验证测试中的输出结果的比较验证的技术。
为解决上述课题,第七实施方式的动作验证装置执行用于网页的动作确认的测试程序。该装置包括:操作记录部,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中;程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序;程序执行部,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行;测试结果保持部,将上述测试程序执行后的网页作为测试结果数据来记录;比较部,对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较;比较结果生成部,输出使通过上述比较部的比较而检测出的不一致部分突出显示的比较结果图像。
根据该实施方式,将网页的动作验证测试时的输出结果与过去的输出结果比对,突出显示(識別表示)不一致部分地进行画面输出,因而能减轻输出结果的比较验证作业的负担。即,网页的动作验证测试中的输出结果的比较验证变得容易。
另外,包括网页的测试结果数据是网页的输出结果的画面图像的情况、和是构成网页的输出结果的HTML(Hyper Text Markup Language:超文本标记语言)、XML(Extensible Markup Language:可扩展标记语言)等标记语言文件的情况这两者。下面详细进行说明。
在上述的第一实施方式及第二实施方式中,叙述了动作验证装置100生成网页的动作测试用程序,并进行网页的动作验证的情况。通过执行该动作测试用程序,作为动作结果的网页画面被输出,测试结果数据被保存在测试结果保持部中。由于希望每次改变网页时都重复进行上述的动作验证,所以会存在多个网页的测试结果数据。以下,将成为动作测试对象的网页也称作“测试对象页”。
以往,测试工程师是通过手动作业来确认这些测试结果数据彼此是否匹配的。即,对某时点的网页的动作验证后的画面和改变后的网页的动作验证后的画面进行抓图并印刷。然后,对印刷出的结果进行相互比对,目视来确认动作结果中是否存在错误或不一致。当网页的改变次数较多时,画面抓图的印刷物数量也会增加,管理变得复杂,此外,当网页的动作结果跨越多个页时、或者被输出大量的数值时等,目视确认的负担就变重了。
因此,在第七实施方式中,提供一种用于减轻在将网页的动作验证测试时的输出结果与过去的输出结果进行比较时的负担的技术。
图42是表示第七实施方式的动作验证装置500的功能构成的框图。对该图的功能块中与第一实施方式和第二实施方式所示的动作验证装置100的功能块对应的功能块标注相同的标号。关于标注了相同标号的功能块,仅在其功能不同于第一实施方式和第二实施方式中已述的内容时再进行说明,对于同样的功能,由于已经说明过了,故适当省略其说明。
动作验证装置500是对动作验证装置100追加了测试结果比较部4510的结构。测试结果比较部4510根据需要与上述IF部110及数据保持部140进行数据的输入输出。测试结果比较部4510包括测试结果取得部4512、比较部4514、掩模保持部4516、比较结果生成部4518、用户指定受理部4520以及掩模生成部4522。
测试结果取得部4512取得被记录在测试结果保持部152中的动作验证后的测试结果数据。该测试结果数据是对网页的画面输出进行抓图后的图像数据。当网页的动作结果跨越多个页时,优选一边使页滚动一边抓图,从而将测试结果收容在一个图像数据中,但测试结果也可以被分成多个图像数据。
比较部4514将过去的测试结果的图像数据与最新的测试结果的图像数据进行比较,检测出其彼此不同的部分。这样的图像数据间的比较可以利用公知的图像比较软件来进行。作为一个例子,可以简单地在图像数据彼此对应的像素间取差分,由于一致的部分将为零,所以能容易地检测出不一致部分。由于不是比较测试结果的文本,而是对图像数据彼此进行比较,从而不仅是文本的不一致点,连设计(design)上的不一致点也能检测出来。
比较结果生成部4518以使通过比较部4514的比较而检测出的新旧测试结果数据间的不一致部分突出显示的状态,将最新的测试结果的图像数据作为比较结果图像进行输出。该比较结果图像通过IF部110的输出部118而被显示在用户终端上。用户通过观看比较结果图像中的被突出显示的部分,能够容易地掌握新旧测试结果数据间的不一致部分。关于突出显示,例如可以针对不一致部分进行图案显示(網掛け表示)、改变颜色、反转显示、设置下划线等使用任意的显示方法。
掩模生成部4522针对测试结果数据中的用户允许不一致的范围,生成用于使之不再突出显示的掩模图像。关于应掩模的范围,用户指定受理部4520通过输入部112而接受来自用户终端的指定,并传送给掩模生成部4522。所生成的掩模图像被保存在掩模保持部4516中,在下次及以后的测试结果数据间的比较时使用。关于该掩模图像的生成,将参照图45~图48再详细说明。
当掩模保持部4516内有掩模图像时,比较结果生成部4518在对比较结果图像适用掩模图像后显示给用户终端。通过该掩模处理,掩模范围内的不一致部分将以不被突出显示的状态、即通常状态而显示出来。
接下来,参照图43说明测试结果比较部4510的作用。测试结果取得部4512从测试结果保持部152取得过去的测试结果的图像数据(以下也称“比较基础数据”)4350和最新的测试结果的图像数据(以下也称“比较目标数据”)4352。比较部4514对两个图像数据彼此进行比较(S4320),比较结果生成部4518生成比较结果图像4354。用户参照比较结果图像,将允许新旧数据间的不一致的范围设定为掩模范围(S4322),基于此,掩模生成部4522生成掩模图像4356。在下次及以后再比较测试结果时(S4324),比较结果生成部4518进行对比较结果图像4354适用掩模图像4356的掩模处理(S4326)。结果,掩模部分的突出处理被去除后的掩模后比较结果图像4358被生成,并被输出到用户终端。
图44表示用于指定作为比较对象的新旧测试结果数据的画面例子。测试结果取得部4512在开始测试结果数据的比较时,将指定画面4530显示在用户终端上。指定画面4530中包括指定比较基础数据的文件路径的区域4532、指定比较目标数据的文件路径区域4534、指定比较结果图像数据的保存目的地的区域4536。在各区域内指定了文件路径后,点击比较按钮4538,则比较基础数据和比较目标数据被取入,比较处理开始。
当比较基础数据和比较目标数据不是被保存为一个图像数据,而是按页而被保存为多个图像数据时,可以进行设计使得能指定一并保存多个图像数据的目录作为文件路径。此时,比较部对比较基础数据和比较目标数据的相对应的每一页执行图像数据的比较,比较结果生成部针对每一页生成比较结果图像。也可以进行设计使得能将比较基础数据和比较目标数据间存在不一致部分的页的比较结果图像、和不存在不一致部分的页的比较结果图像分别保存到不同的目录中。
图45和图46表示测试对象页所生成的测试结果图像数据的一个例子。在此,假定测试对象页是生成按日期管理多个会议空间的预订的时间表的页。另外,假定图45表示过去的测试结果的图像数据4540,图46表示本次测试结果的图像数据4550。比较图45和图46可知,虽然两者的时间表都被正确地生成了,但由于实施动作验证测试的日子不同,所以时间表内的日期并不相同。
由于新旧测试结果图像数据内的日期不同,所以比较结果生成部4518生成图47所示那样的比较结果图像4560。在比较结果图像4560中,日期部分被施以图案4562,被突出显示。这样,用户只要参照比较结果图像4560找出突出显示部分,就能容易地掌握新旧测试结果数据间的不一致部分。
但是,如上所述,因动作验证测试的实施日不同,测试结果内的日期当然有所变化,所以优选不将此作为不一致点来进行突出显示。因此,掩模生成部4522生成用于掩蔽用户允许不一致的部分的掩模图像。
图48表示这样的掩模图像4570的一个例子。如图所示,与日期相应的部分被指定为掩模范围4572。该掩模范围能够由用户自己通过用户指定受理部4520来指定。关于掩模范围,例如通过在比较结果图像4560上用指示器或鼠标围起可以容许测试结果不同的部分来指定。用户指定了掩模范围后,掩模生成部4522将这些掩模范围生成为一个掩模图像。比较结果生成部在下次及以后对测试结果进行比较时,对比较结果图像适用掩模图像,去除与掩模范围相应的部分的突出显示地来显示。
作为应被指定为用户允许比较结果不一致的范围、即掩模范围的部分的例子,除上述日期外,还考虑有被每天更新的统计、股价等数字,网页的检索结果,按日期而切换的图像,不影响网页的动作的单纯的装饰图像等,但并不限定于这些。
图49是第七实施方式的测试结果比较处理的流程图。
测试结果取得部4512从测试结果保持部152取得动作验证测试的比较基础数据和比较目标数据(S4302)。比较部4514将比较基础图像数据和比较目标图像数据进行比较,检测出不一致部分(S4304)。比较结果生成部4518确认掩模保持部4516中是否有掩模图像(S4306),如果没有掩模图像(S4306为N),则输出使不一致部分突出显示的比较结果图像(S4310)。
掩模生成部4522向用户询问是否利用比较结果图像生成掩模图像(S4312),如果生成掩模(S4312为Y),则接受用户对掩模范围的指定(S4314),并生成掩模图像进行保存(S4316)。如果不生成掩模(S4312为N),则跳过S4314和S4316。
在S4306中,如果存在掩模图像(S4306为Y),则比较结果生成部4518对比较结果图像适用掩模图像(S4308),输出消除了掩模范围的突出显示的掩模后比较结果图像(S4310)。
如以上所说明的那样,通过第七实施方式,使网页的动作验证测试时的输出结果与过去的输出结果进行比对,并在突出显示不一致部分的状态下进行画面输出,所以新旧测试结果的比较变得容易。另外,通过将应容许新旧测试结果数据间的不一致的范围指定为掩模,能够使得在掩模范围内即使结果不相同,也不被突出显示。在反复进行若干次动作验证测试时,或测试结果跨越多个页时,能够减轻针对结果当然不相同的范围进行检查的工夫。
以上基于第七实施方式说明了本发明。下面说明变形例。
在上述实施方式中,叙述了基于用户的范围指定来生成掩模图像的情况。作为另外的方法,也可以是利用比较基础图像数据和比较目标图像数据的差分图像,不使用户介入地生成掩模图像。例如,假定测试工程师已确认比较基础图像数据和比较目标图像数据的比较结果中、除用户能允许不一致的部分以外已无问题。在该情况下,可以是掩模生成部参照差分图像,将存在差分的像素和其周边的预定范围(例如相当于文本的一字符量的范围)设定为掩模范围,来生成掩模图像。
在上述说明中,针对将对测试结果的画面表示进行抓图后的图像数据进行相互比较的情况进行了说明。但是,既然动作验证测试是针对网页进行的,测试结果也就会被记录为HTML或XML等的标记语言文件。因此,下面作为本实施方式的变形例,说明对测试结果的HTML文件进行相互比较的情况。
在该变形例中,测试结果取得部4512从测试结果保持部152取得测试结果的HTML文件作为比较基础数据和比较目标数据。该数据的取得通过在图44的文件指定画面中指定HTML文件的路径来实施。
接下来,比较部4514逐行比较HTML文件。如果检测到不一致部分,则比较结果生成部4518生成突出显示该部分的比较结果HTML文件,来显示执行结果。具体来说,以对比较基础HTML文件或比较目标HTML文件中的不一致部分的行编号和比较所使用的期待值及实际值进行记录的形式来生成。
可以将该比较结果HTML文件作为对下次及以后的测试结果HTML文件的掩模来使用。如果就此利用比较结果HTML文件作为掩模,则比较部4514将上述不一致部分的行编号判断为掩模对象位置,将掩模对象位置从不一致部分中除外。另外,用户也能追加指定想要掩模的位置。此时,用户通过用户指定受理部4520追加指定想要掩模的位置的行编号。据此,掩模生成部4522在包含前次比较时的不一致部分的行编号的比较结果HTML文件中,再加入本次用户所追加指定的行编号。比较部4514将下次及以后的测试结果HTML文件与作为掩模的比较结果HTML文件进行逐行比较。比较部4514将比较结果HTML文件中所包含的行编号判断为掩模对象位置,跳过该位置的比较验证。
以上叙述了使用过去的测试结果的图像数据作为比较基础数据的情况,但本发明的实施方式不限于此。例如,可以将所期望的测试结果的图像数据用作比较基础数据,来确认网页是否正常工作了。
(第八种实施的方式(下称“第八实施方式”))
先说明第八实施方式所要解决的课题。网页的动作测试一般是通过对显示该网页的网页浏览器进行输入操作,并确认操作结果来实施的。而网页改变后的操作结果需要同改变前的操作结果进行比较来验证,但在以往,该比较验证是由测试工程师使用画面图像的印刷物以目视来进行的。第八实施方式的主要目的在于提供一种使网页的动作验证测试中的输出结果的比较验证变得容易的技术。
为解决上述课题,第八实施方式的动作验证装置执行用于网页的动作确认的测试程序。该装置包括:操作记录部,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中;程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序;程序执行部,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行;测试结果保持部,将上述测试程序执行后的网页作为测试结果数据来记录;比较部,对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较;比较结果生成部,输出使通过上述比较部的比较而检测出的不一致部分突出显示的比较结果图像;图像化部,在上述测试结果数据是PDF(Portable Document Format:可移植文档格式)文件时,对该PDF文件进行图像化处理。
通过该实施方式,将网页的动作验证测试时的输出结果与过去的输出结果相比对,并使不一致部分突出显示地进行画面输出,所以能够减轻输出结果的比较验证作业的负担。另外,即使网页的输出是PDF文件,由于也是变换成图像数据后来进行比较,所以能够用同样的方法来进行比较处理。即,网页的动作验证测试中的输出结果的比较验证变得容易。下面详细进行说明。
在上述第一实施方式和第二实施方式中,叙述了动作验证装置100生成网页的动作测试用程序来进行网页的动作验证的情况。通过执行该动作测试用程序,作为动作结果的网页画面被输出,测试结果数据被保存在测试结果保持部中。由于希望在每次改变网页时都重复进行上述动作验证,所以网页的测试结果数据会存在多个。以下也将成为动作测试对象的网页称作“测试对象页”。
以往,关于这些测试结果数据彼此间是否匹配,是由测试工程师以手动作业来确认的。即,将某时点的测试对象页的动作验证时的画面和改变后的测试对象页的动作验证时的画面抓图并印刷。或者,如果测试对象页是输出PDF(Portable Document Format)文件作为动作结果的,则将某时点的测试对象页的动作验证时的PDF文件和改变后的测试对象页的动作验证时的PDF文件印刷。然后,对印刷出的结果彼此进行比对,目视确认动作结果中是否存在错误或不一致。如果测试对象页的改变次数增多,则画面抓图或PDF文件的印刷物的数量也会增加,管理变得困难,此外如果测试对象页的输出是跨越多页的画面或PDF文件,或者有大量的数值被输出,则目视确认的负担将变重。
因此,在第八实施方式中,提供一种用于减轻将网页的动作验证测试时的输出结果与过去的输出结果进行比较时的负担的技术。
图50是表示第八实施方式的动作验证装置500的功能构成的框图。对该图的功能块中的、与第一实施方式和第二实施方式所示的动作验证装置100的功能块对应的功能块标注相同的标号。关于标注了相同标号的功能块,仅在其功能不同于参考技术1和2中已述的内容时再进行说明,对于同样的功能,由于已经说明过了,故适当省略其说明。
动作验证装置500是在动作验证装置100的基础上追加了测试结果比较部5510和PDF处理部5580的结构。测试结果比较部5510执行测试结果图像数据彼此间的比较验证处理。PDF处理部5580在测试对象页的输出结果为PDF文件时为进行比较验证处理而将PDF文件变换成图像数据。
测试结果比较部5510包括测试结果取得部5512、比较部5514、掩模保持部5516、比较结果生成部5518、用户指定受理部5520以及掩模生成部5522。
测试结果取得部5512取得被记录在测试结果保持部152中的动作验证后的测试结果数据。该测试结果数据是对网页的画面输出进行抓图后的图像数据,或者是PDF文件。在是前者的情况下,如果网页的动作结果跨越多个页,则优选通过一边使网页滚动一边抓图,来使测试结果收容在一个图像数据中,但测试结果也可以被分成多个图像数据。
关于作为比较对象的测试结果数据,由用户在后面叙述的指定画面5530(图52)中指定。当所指定的测试结果数据是PDF文件时,在测试结果数据被PDF处理部5580图像化以后,图像数据被返回到测试结果取得部5512,再执行以后的比较验证处理。关于PDF文件的图像化,将在后面叙述。
比较部5514对过去的测试结果的图像数据和最新的测试结果的图像数据进行比较,检测出其相互不同的部分。关于这样的图像数据间的比较,可以利用公知的图像比较软件来进行。作为一个例子,可以简单地在图像数据彼此对应的像素间取差分,由于一致的部分将为零,所以能容易地检测出不一致部分。由于不是比较测试结果的文本,而是对图像数据彼此进行比较,从而不仅是文本的不一致点,连设计(design)上的不一致点也能检测出来。
比较结果生成部5518以突出显示通过比较部5514的比较而检测出的新旧测试结果数据间的不一致部分的状态,将最新的测试结果的图像数据作为比较结果图像进行输出。该比较结果图像通过IF部110的输出部118而被显示在用户终端上。用户通过观看比较结果图像中的被突出显示的部分,能够容易地掌握新旧测试结果数据间的不一致部分。关于突出显示,例如可以针对不一致部分进行图案显示(網掛け表示)、改变颜色、反转显示、设置下划线等使用任意的显示方法。
掩模生成部5522针对测试结果数据中的用户允许不一致的范围,生成用于使之不再突出显示的掩模图像。关于应掩模的范围,用户指定受理部5520通过输入部112而接受来自用户终端的指定,并传送给掩模生成部5522。所生成的掩模图像被保存在掩模保持部5516中,在下次及以后的测试结果数据间的比较时使用。关于该掩模图像的生成,将参照图54~图56再详细说明。
当掩模保持部5516内有掩模图像时,比较结果生成部5518在对比较结果图像适用掩模图像后显示给用户终端。通过该掩模处理,掩模范围内的不一致部分将以不被突出显示的状态、即通常状态而显示出来。
PDF处理部5580包括PDF文件取得部5582、安全性确认部5584以及图像化部5586。
当在测试结果取得部5512中被判定为用户所指定的测试结果数据是PDF文件时,PDF文件取得部5582从测试结果保持部152取得该PDF文件。测试结果取得部5512基于例如扩展名来判断被指定的测试结果数据是否为PDF文件。
一般来说测试对象页的PDF文件的输出方式有以下几种,不论哪一种都能作为测试结果数据来保存。
1.被内联(inline)显示在相同窗口内的方式:能够通过从浏览器的菜单中执行“文件”—“另存为…”来保存。
2.被内联显示在不同窗口中的方式:能够通过从浏览器的菜单中执行“文件”—“另存为…”来保存。
3.被起动查看器(view)来显示的方式:能够通过从查看器的菜单中执行“文件”—“复制到…”来保存。
4.在显示对话框后起动查看器来显示的方式:能够通过在用于使用户选择打开或保存文件的对话框中选择“打开”,接着从查看器的菜单中执行“文件”—“复制到…”来保存。
5.在显示对话框后被保存为文件的方式:能够通过在用于使用户选择打开或保存文件的对话框中选择“保存”,然后输入文件路径来保存。
PDF文件取得部5582取得被如上述那样保存了的PDF文件。
安全性确认部5584确认所取得的PDF文件中被设定的各种安全性设置。具体来说,确认是否设置有用户密码、是否为可复制形式、是否为可印刷形式等。PDF文件因版本或用户的选择,其安全性设置也不同,所以需要对每一个PDF文件进行该确认。
安全性确认部5584确认PDF文件内的文件信息,当存在关键字“Encrypt”时,判断为包含有安全性信息,进而通过查询是否存在加密词典(暗号化辞書),能够确认是否存在用户密码设置。或者,通过用Windows API的功能监视在打开PDF文件过程中询问密码的对话框的出现,也能确认是否存在用户密码设置。如果被设置有用户密码,则通过在图像化处理前显示用于使用户输入密码的预定的对话框,或者输入被预先存储着的密码,来解除安全性。
另外,安全性确认部5584对PDF文件内的加密词典进行搜索,根据预定位是“1”还是“0”,来确认是否可以复制及是否可以印刷。关于是否可以复制和是否可以印刷的信息被传送给图像化部5586。加密词典中的位的意义是在PDF的规格书中被定义的。
图像化部5586根据关于是否可以复制和是否可以印刷的信息,对每个PDF文件选择适合的图像化方式。然后,通过打印机驱动器协作部5588或剪贴板协作部5590来执行PDF文件的图像化。如果图像化的对象PDF文件是“不可印刷”的设置,则由剪贴板协作部5590来执行图像化,如果是“不可复制”的设置,则由打印机驱动器协作部5588执行图像化。如果是可印刷且可复制的设置,则可以由任一者执行图像化。或者,图像化部5586也可以被设置成先尝试由打印机驱动器协作部5588和剪贴板协作部5590中被预先设定的一者进行图像化,当图像化失败时,以另一者来再次尝试图像化。
打印机驱动器协作部5588通过利用公知的打印机驱动器执行印刷处理,来将PDF文件图像化。作为执行印刷的应用,优选使用Adobe Reader(注册商标)。为实现该处理,预先在动作验证装置500中安装任意的图像打印机驱动器来生成打印机。然后,起动Adobe Reader并指定想要图像化的PDF文件名和已生成的打印机名来进行印刷,由此,图像文件被打印机驱动器生成。Adobe Reader的起动、PDF文件名和打印机名的指定、印刷的一系列处理可以通过例如Java的机器人功能来自动实施。
剪贴板协作部5590利用Adobe Reader的“将文件复制到剪贴板”功能,在将PDF文件的网页内容复制到剪贴板中后,将剪贴板的内容保存为图像文件,由此来执行图像化。这一系列处理可以通过例如Java的机器人功能来自动实施。
在利用剪贴板的图像化中,一般一次只能进行一页量的图像化,所以剪贴板协作部5590需要事先得知图像化的对象PDF文件是由多少页构成的的信息。因此,剪贴板协作部5590在将图像化的对象PDF文件的页内容复制到剪贴板之前,先通过Adobe Reader将PDF文件暂时保存为文本。接着,用文字处理器或编辑器等打开所保存的文本,计算字符数或行数等来取得图像化的对象PDF文件的页数。然后,剪贴板协作部5590按与页数相同的次数,反复进行将PDF文件的内容复制到剪贴板中,再将其保存为图像文件的动作。
由图像化部5586生成的图像数据被返回到测试结果取得部5512。
接下来,参照图51说明测试结果比较部5510的作用。测试结果取得部5512从测试结果保持部152或PDF处理部5580取得过去的测试结果的图像数据(以下也称“比较基础数据”)5350和最新的测试结果的图像数据(以下也称“比较目标数据”)5352。比较部5514对两个图像数据进行相互比较(S5320),比较结果生成部5518生成比较结果图像5354。用户参照比较结果图像,将允许新旧数据间不一致的范围设定为掩模范围(S5322),基于此,掩模生成部5522生成掩模图像5356。在下次及以后的测试结果的比较时(S5324),比较结果生成部5518进行对比较结果图像5354适用掩模图像5356的掩模处理(S5326)。其结果,被去除了掩模部分的突出处理的掩模后比较结果图像5358被生成,并被输出到用户终端。
图52表示用于指定成为比较对象的新旧测试结果数据的画面例子。测试结果取得部5512在开始进行测试结果数据的比较时使指定画面5530显示于用户终端。指定画面5530中包括指定比较基础数据的文件路径的区域5532、指定比较目标数据的文件路径的区域5534、以及指定比较结果图像数据的保存目的地的区域5536。在各区域内指定了文件路径后,点击比较按钮5538,则测试结果取得部5512判断比较基础数据和比较目标数据是图像数据还是PDF文件。如果是图像数据,则就此取入比较基础数据和比较目标数据,开始比较处理。如果是PDF文件,则接收在PDF处理部5580中被从PDF文件图像化后的比较基础数据和比较目标数据,然后开始比较处理。
当比较基础数据和比较目标数据不是被保存为一个图像数据,而是按页而被保存为多个图像数据时,可以进行设计使得能指定一并保存多个图像数据的目录作为文件路径。此时,比较部对比较基础数据和比较目标数据的相对应的每一页执行图像数据的比较,比较结果生成部针对每一页生成比较结果图像。也可以进行设计使得能将比较基础数据和比较目标数据间存在不一致部分的页的比较结果图像、和不存在不一致部分的页的比较结果图像分别保存到不同的目录中。
图53是说明PDF处理部580的动作的流程图。首先,若由测试结果取得部5512判定为测试结果数据是PDF文件,则PDF文件取得部5582取得该PDF文件(S5252)。安全性确认部5584确认PDF文件的安全性设置(S5254)。图像化部5586根据安全性设置来选择由打印机驱动器协作部5588和剪贴板协作部5590的哪一个来执行图像化(S5256),PDF文件的图像化被以所选择的方式来执行(S5258)。图像数据被返回到测试结果取得部5512,进行测试结果的比较处理。
图54和图55表示通过测试对象页生成的测试结果图像数据的一个例子。在此,假定测试对象页是生成按日期管理多个会议空间的预订的时间表的页。另外,假定图54表示过去的测试结果的图像数据5540,图55表示本次测试结果的图像数据5550。比较图54和图55可知,虽然两者的时间表都被正确地生成了,但由于实施动作验证测试的日子不同,所以时间表内的日期并不相同。
由于新旧测试结果图像数据内的日期不同,所以比较结果生成部5518生成图56所示那样的比较结果图像5560。在比较结果图像5560中,日期部分被施以图案5562,被突出显示。这样,用户只要参照比较结果图像5560找出突出显示部分,就能容易地掌握新旧测试结果数据间的不一致部分。
但是,如上所述,因动作验证测试的实施日不同,测试结果内的日期当然有所变化,所以优选不将此作为不一致点来进行突出显示。因此,掩模生成部5522生成用于掩蔽用户允许不一致的部分的掩模图像。
图57表示这样的掩模图像5570的一个例子。如图所示,与日期相应的部分被指定为掩模范围5572。该掩模范围能够由用户自己通过用户指定受理部5520来指定。关于掩模范围,例如通过在比较结果图像5560上用指示器或鼠标围起可以容许测试结果不同的部分来指定。用户指定了掩模范围后,掩模生成部5522将这些掩模范围生成为一个掩模图像。比较结果生成部在下次及以后对测试结果进行比较时,对比较结果图像适用掩模图像,使与掩模范围相应的部分去除突出显示地来显示。
作为应被指定为用户允许比较结果不一致的范围、即掩模范围的部分的例子,除上述日期外,还考虑有被每天更新的统计、股价等数字,网页的检索结果,按日期而切换的图像,不影响网页的动作的单纯的装饰图像等,但并不限定于这些。
图58是第八实施方式的测试结果比较处理的流程图。
测试结果取得部5512从测试结果保持部152取得动作验证测试的比较基础数据和比较目标数据(S5302)。比较部5514将比较基础图像数据和比较目标图像数据进行比较,检测出不一致部分(S5304)。比较结果生成部5518确认掩模保持部5516中是否有掩模图像(S5306),如果没有掩模图像(S5306为N),则输出使不一致部分突出显示的比较结果图像(S5310)。
掩模生成部5522向用户询问是否利用比较结果图像生成掩模图像(S5312),如果生成掩模(S5312为Y),则接受用户对掩模范围的指定(S5314),并生成掩模图像进行保存(S5316)。如果不生成掩模(S5312为N),则跳过S5314和S5316。
在S5306中,如果存在掩模图像(S5306为Y),则比较结果生成部5518对比较结果图像适用掩模图像(S5308),输出消除了掩模范围的突出显示的掩模后比较结果图像(S5310)。
如以上所说明的那样,通过本实施方式,将网页的动作验证测试时的输出结果与过去的输出结果进行比对,在使不一致部分突出显示的基础上进行画面输出,所以新旧测试结果的比较变得容易。另外,即使网页的输出是PDF文件,通过在将其变换成图像数据后进行比较,能够用同样的方法来进行比较处理。
另外,通过将应允许新旧测试结果数据间不一致的范围指定为掩模,能够使得在该掩模范围内即使结果不相同,也不使之突出显示。在反复进行若干次动作验证测试时,或者测试结果跨越多个页时,能够减轻针对结果当然不相同的范围进行检查的工夫。
以上基于第八实施方式说明了本发明。下面说明变形例。
在上述实施方式中,叙述了基于用户的范围指定来生成掩模图像的情况。作为另外的方法,也可以是利用比较基础图像数据和比较目标图像数据的差分图像,不使用户介入地生成掩模图像。例如,假定测试工程师已确认比较基础图像数据和比较目标图像数据的比较结果中、除用户能允许不一致的部分以外已无问题。在该情况下,可以是掩模生成部参照差分图像,将存在差分的像素和其周边的预定范围(例如相当于文本的一字符量的范围)设定为掩模范围,来生成掩模图像。
在以上说明中,叙述了用过去的测试结果的图像数据作为比较基础数据的情况,但本发明不限于此。例如也可以进行设计使得将所期望的测试结果的图像数据用作比较基础数据,来确认网页是否正常工作了。
上述实施方式、变形例的任意组合作为本发明的实施方式也是可以的。通过组合而产生的新实施方式一并具有被组合的实施方式、变形例各自的效果。
本领域技术人员当理解权利要求中记载的各构成要件所发挥的功能可以由实施方式、变形例中所示各构成要素的单体或其协作来实现。
〔标号的说明〕
100动作验证装置、114日志取得部、116输入数据取得部、132程序生成部、134程序执行部、160 GUI操作部、162佐证物设定部、164核对部、166验证结果提示部、402 SAP服务器、406 SAPGui客户端、408 QTP、410 SAP用插件、412测试引擎IF、416 SAP用驱动器、1000动作验证系统、1160浏览器处理部、1162测试主体选择部、1164外部操作执行部、1166代理处理部、1168内部操作执行部、1170佐证物设定部、2000动作验证系统、2402试验对象装置、2500试验执行装置、2514测试信息通知部、2600试验管理装置、2602试验信息取得部、2612文件发送部、2614测试信息提供部、2620文件变换部、2700用户终端、3500动作验证装置、3520 Ajax支持部、3522文件取得部、3524对象检测部、3526事件记录部、3528动态标签记录部、4500动作验证装置、4510测试结果比较部、4512测试结果取得部、4514比较部、4516掩模保持部、4518比较结果生成部、4520用户指定受理部、4522掩模生成部、5500动作验证装置、5510测试结果比较部、5512测试结果取得部、5514比较部、5516掩模保持部、5518比较结果生成部、5520用户指定受理部、5522掩模生成部、5580 PDF处理部、5582 PDF文件取得部、5584安全性确认部、5586图像化部、5588打印机驱动器协作部、5590剪贴板协作部。
〔工业可利用性〕
本发明能够用于测试产品的动作的装置。

Claims (51)

1.一种动作验证装置,是使用于预定机器的动作确认的测试程序得以执行的装置,其特征在于,包括:
日志取得部,取得表示对上述预定机器所执行过的一系列操作的内容的日志,
程序生成部,从被编入有用于实现各种操作的逻辑的多种函数中选择与上述日志所记录的操作对应的函数,并针对对上述预定机器的数据输入操作,选择具有用于取得对上述预定机器的输入数据的接口的输入函数,由此生成用于再现上述一系列操作的测试程序,
输入数据取得部,取得应传递给上述输入函数的输入数据,以及
程序执行部,为进行在基于上述所取得的输入数据而执行上述一系列操作时的动作确认,将上述所取得的输入数据传递给上述输入函数,来使上述测试程序执行。
2.权利要求1所述的动作验证装置,其特征在于,
还包括输入设定画面显示部,使用于设定应传递给上述输入函数的输入数据的输入设定画面显示出来;
上述输入数据取得部将通过上述输入设定画面而被设定的输入数据记录为输入数据文件;
上述程序执行部从上述输入数据文件中提取应传递给上述输入函数的输入数据。
3.权利要求2所述的动作验证装置,其特征在于,
还包括:
事例设定画面显示部,使用于使测试程序与输入数据文件建立对应关系的事例设定画面显示出来,和
测试事例登录部,将通过上述事例设定画面而被设定的测试程序与输入数据文件的集记录为事例文件;
在上述事例文件中记录有多个集时,上述程序执行部基于各输入数据文件使上述多个集中所包含的各测试程序依次执行。
4.权利要求1至3的任一者所述的动作验证装置,其特征在于,
还包括用于使函数设定画面显示的函数设定画面显示部,该函数设定画面是使根据上述日志中所记录的操作内容而被选择的函数一览显示的画面,用于对应登录到上述测试程序中的函数进行变更;
上述程序生成部根据针对上述函数设定画面的变更操作后所被登录的函数来生成上述测试程序。
5.权利要求4所述的动作验证装置,其特征在于,
能够将用于记录上述测试程序的执行过程中的上述预定机器的显示画面的画面抓图函数登录到上述测试程序中。
6.一种动作验证程序,是使用于预定机器的动作确认的测试程序得以执行的计算机程序,其特征在于,使计算机执行以下处理:
取得表示对上述预定机器所执行过的一系列操作的内容的日志的处理,
从被编入有用于实现各种操作的逻辑的多种函数中选择与上述日志所记录的操作对应的函数,并针对对上述预定机器的数据输入操作,选择具有用于取得对上述预定机器的输入数据的接口的输入函数,由此生成用于再现上述一系列操作的测试程序的处理,
取得应传递给上述输入函数的输入数据的处理,以及
为进行在基于上述所取得的输入数据而执行上述一系列操作时的动作确认,将上述所取得的输入数据传递给上述输入函数,来使上述测试程序执行的处理。
7.一种动作验证程序,其特征在于,与具有将对预定机器的一系列操作记录到日志中的功能、和执行用于上述预定机器的动作确认的测试程序的功能的自动功能测试工具相协作,使计算机执行以下处理:
从上述自动功能测试工具取得上述日志的处理,
从被编入有用于实现各种操作的逻辑的多种函数中选择与上述日志所记录的操作对应的函数,并针对对上述预定机器的数据输入操作,选择具有用于取得对上述预定机器的输入数据的接口的输入函数,由此生成用于再现上述一系列操作的测试程序的处理,
取得应传递给上述输入函数的输入数据的处理,以及
为进行在基于上述所取得的输入数据而执行上述一系列操作时的动作确认,将上述所取得的输入数据传递给上述输入函数,来使上述自动功能测试工具执行上述测试程序的处理。
8.一种动作验证装置,是使用于预定机器的动作确认的测试程序得以执行的装置,其特征在于,包括:
操作记录部,检测对上述预定机器的数据输入操作,向记录应设定在上述测试程序内的函数的操作内容文件,记录与上述数据输入操作相对应、且具有用于取得对上述预定机器的输入数据的接口的函数,
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述预定机器所执行过的一系列操作的测试程序,以及
程序执行部,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序得以执行。
9.权利要求8所述的动作验证装置,其特征在于,
还包括:
用于使函数设定画面显示的函数设定画面显示部,该函数设定画面是使上述操作内容文件中所记录的函数一览显示的画面,用于受理对该函数的输入数据的指定,和
用户设定受理部,受理用户通过上述函数设定画面而进行的针对上述函数的输入数据本身的指定、或者针对上述函数的输入数据文件的指定;
当针对上述函数被指定了输入数据本身时,上述程序生成部将该输入数据预先设定到上述程序代码中;
当针对上述函数被指定了输入数据文件时,上述程序执行部在执行上述测试程序时从该输入数据文件取得输入数据并传递给上述函数。
10.权利要求9所述的动作验证装置,其特征在于,
在被执行对上述预定机器的数据输入操作时,上述操作记录部取得被可选择地显示给用户的多个输入数据的候选;
在针对上述函数设定画面中所显示的函数被指定输入数据本身时,上述函数设定画面显示部使上述多个输入数据的候选可选择地显示出来。
11.权利要求8所述的动作验证装置,其特征在于,
还包括:
事例设定画面显示部,使用于使操作内容文件与输入数据文件建立对应关系的事例设定画面显示出来,和
测试事例登录部,将通过上述事例设定画面而被设定的操作内容文件与输入数据文件的集记录为事例文件;
当上述事例文件中记录有多个集时,上述程序生成部生成一个测试程序,该一个测试程序中集约设定有上述多个集各自所包含的操作内容文件中所被记录的函数;
上述程序执行部基于上述多个集各自所包含的输入数据文件来执行上述一个测试程序。
12.权利要求11所述的动作验证装置,其特征在于,
上述输入数据文件中被记录多个输入数据;
上述事例文件中被记录被分组了的多个集;
上述程序执行部在上述一个测试程序的执行过程中重复执行上述被分组了的多个集,每次重复时,向被记录在各集所包含的操作内容文件中的函数传递被记录在各集所包含的输入数据文件中的输入数据中的预定数量的输入数据。
13.权利要求11所述的动作验证装置,其特征在于,
上述输入数据文件被记录多个输入数据;
上述事例文件中还被记录针对上述输入数据文件的参照范围;
上述程序执行部在上述一个测试程序的执行过程中,向被记录在操作内容文件中的函数传递被记录在与该操作内容文件对应的输入数据文件中的输入数据中的上述参照范围的输入数据。
14.一种计算机程序,是使用于预定机器的动作确认的测试程序得以执行的计算机程序,其特征在于,用于使计算机实现以下功能:
逐次检测对上述预定机器的数据输入操作,向记录应设定在上述测试程序内的函数的操作内容文件,记录与上述数据输入操作相对应、且具有用于取得对上述预定机器的输入数据的接口的函数的功能,
通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述预定机器所执行过的一系列操作的测试程序的功能,以及
通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序得以执行的功能。
15.一种动作验证装置,是针对被编入ERP(Enterprise Resource Planning:企业资源计划)软件包中进行动作的应用,使用于其动作确认的测试程序得以执行的装置,该动作验证装置的特征在于,包括:
日志取得部,取得表示对上述应用所执行过的一系列操作的内容的日志,
程序生成部,从被编入有用于实现各种操作的逻辑的多种函数中选择与上述日志所记录的操作对应的函数,并针对对上述应用的数据输入操作,选择具有用于取得对上述应用的输入数据的接口的输入函数,由此生成用于再现上述一系列操作的测试程序,
输入数据取得部,取得应传递给上述输入函数的输入数据,以及
程序执行部,为进行在基于上述所取得的输入数据而执行上述一系列操作时的动作确认,将上述所取得的输入数据传递给上述输入函数,来使上述测试程序得以执行。
16.权利要求15所述的动作验证装置,其特征在于,
能将用于使被显示在上述应用的显示画面中的上述ERP软件包所提供的作为GUI对象的表对象或网格对象滚动的函数登录在上述测试程序中;
上述程序执行部在应执行上述用于滚动的函数时,介由针对上述ERP软件包的本地参照对象而调用上述ERP软件包的本地方法,由此来使上述表对象或网格对象滚动。
17.权利要求16所述的动作验证装置,其特征在于,
能以与上述用于使表对象或网格对象滚动的函数同样的方式,将用于使被显示在上述应用的显示画面中的上述ERP软件包所提供的窗口对象滚动的函数登录在上述测试程序中;
上述程序执行部在应执行上述用于使窗口对象滚动的函数时,通过调用预定的测试引擎所提供的用于使上述窗口对象滚动的专用函数,来使上述窗口对象滚动。
18.权利要求16或17所述的动作验证装置,其特征在于,
上述测试程序中能登录用于记录上述表对象或网格对象的显示画面的画面抓图函数;
上述程序执行部在执行上述画面抓图函数时,一边使上述表对象或网格对象滚动,一边记录其显示画面。
19.权利要求15至18的任一项所述的动作验证装置,其特征在于,
上述程序执行部将上述应用的显示画面中的状态栏中所显示的信息作为上述应用的动作确认中的佐证物来记录。
20.权利要求19所述的动作验证装置,其特征在于,
还包括核对部,将作为被期待显示在上述状态栏中的信息而预先设定的信息,与实际显示在上述状态栏中的信息进行核对。
21.一种动作验证程序,是针对被编入ERP软件包中进行动作的应用,使用于其动作确认的测试程序得以执行的计算机程序,该动作验证程序的特征在于,使计算机实现以下功能:
取得表示对上述应用所执行过的一系列操作的内容的日志的功能,
从被编入有用于实现各种操作的逻辑的多种函数中选择与上述日志所记录的操作对应的函数,并针对对上述应用的数据输入操作,选择具有用于取得对上述应用的输入数据的接口的输入函数,由此生成用于再现上述一系列操作的测试程序的功能,
取得应传递给上述输入函数的输入数据的功能,以及
为进行在基于上述所取得的输入数据而执行上述一系列操作时的动作确认,将上述所取得的输入数据传递给上述输入函数,来使上述测试程序得以执行的功能。
22.一种动作验证方法,由针对被编入ERP软件包中进行动作的应用,使用于其动作确认的测试程序得以执行的装置来执行,该动作验证方法的特征在于,包括:
取得表示对上述应用所执行过的一系列操作的内容的日志的步骤,
从被编入有用于实现各种操作的逻辑的多种函数中选择与上述日志所记录的操作对应的函数,并针对对上述应用的数据输入操作,选择具有用于取得对上述应用的输入数据的接口的输入函数,由此生成用于再现上述一系列操作的测试程序的步骤,
取得应传递给上述输入函数的输入数据的步骤,以及
为进行在基于上述所取得的输入数据而执行上述一系列操作时的动作确认,将上述所取得的输入数据传递给上述输入函数,来使上述测试程序得以执行的步骤。
23.一种动作验证装置,是执行用于网页的动作确认的测试程序的装置,其特征在于,包括:
操作记录部,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,
第一测试执行部,从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用进行上述网页的动作确认所使用的网页浏览器所公开的、用于操作正在显示的网页的操作接口,来执行上述网页的动作确认,
代理处理部,取得上述网页的程序代码,并在将用于操作上述网页的新的代码追加到该程序代码中后,使进行上述网页的动作确认所使用的网页浏览器显示上述网页,
第二测试执行部,从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用上述网页浏览器中正显示的网页中的上述新的代码,由此来执行上述网页的动作确认,以及
测试主体选择部,在要执行上述网页的动作确认时,当该动作确认所使用的网页浏览器中上述操作接口是被公开的时,使上述第一测试执行部执行上述网页的动作确认,当上述操作接口是非公开的时,使上述代理处理部和上述第二测试执行部执行上述网页的动作确认。
24.一种动作验证装置,是执行用于网页的动作确认的测试程序的装置,其特征在于,包括:
操作记录部,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,以及
测试执行部,从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用进行上述网页的动作确认所使用的网页浏览器所公开的、用于操作正在显示的网页的接口,来执行上述网页的动作确认。
25.一种动作验证装置,是执行用于网页的动作确认的测试程序的装置,其特征在于,包括:
操作记录部,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,
代理处理部,取得上述网页的程序代码,并在将用于操作上述网页的新的代码追加到该程序代码中后,使进行上述网页的动作确认所使用的网页浏览器显示上述网页,以及
测试执行部,从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用上述网页浏览器中正显示的网页中的上述新的代码,由此来执行上述网页的动作确认。
26.一种动作验证程序,使执行用于网页的动作确认的测试程序的装置实现以下功能:
操作记录功能,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成功能,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,
第一测试执行功能,从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用进行上述网页的动作确认所使用的网页浏览器所公开的、用于操作正在显示的网页的操作接口,来执行上述网页的动作确认,
代理处理功能,取得上述网页的程序代码,并在将用于操作上述网页的新的代码追加到该程序代码中后,使进行上述网页的动作确认所使用的网页浏览器显示上述网页,
第二测试执行功能,从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用上述网页浏览器中正显示的网页中的上述新的代码,由此来执行上述网页的动作确认,以及
测试主体选择功能,在要执行上述网页的动作确认时,当该动作确认所使用的网页浏览器中上述操作接口是被公开的时,通过上述第一测试执行功能来执行上述网页的动作确认,当上述操作接口是非公开的时,通过上述代理处理功能和上述第二测试执行功能执行上述网页的动作确认。
27.一种动作验证方法,由执行用于网页的动作确认的测试程序的装置来执行,该动作验证方法的特征在于,包括:
检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中的步骤,
通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序的步骤,以及
在要执行上述网页的动作确认时,当该动作确认所使用的网页浏览器中、进行上述网页的动作确认所使用的用于操作正显示的网页的操作接口是被公开的时,执行第一测试执行处理,当上述操作接口是非公开的时,执行第二测试执行处理的步骤;
其中,所述第一测试执行处理包括从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用上述操作接口来执行上述网页的动作确认的步骤;
所述第二测试执行处理包括:
取得上述网页的程序代码,并在将用于操作上述网页的新的代码追加到该程序代码中后,使进行上述网页的动作确认所使用的网页浏览器显示上述网页的步骤,和
从记录有对上述网页的输入数据的输入数据文件取得输入数据并传递给上述测试程序的函数,从上述测试程序调用上述网页浏览器中正显示的网页中的上述新的代码,由此来执行上述网页的动作确认的步骤。
28.一种动作验证系统,其特征在于,包括:
试验执行装置,执行用于预定机器的动作确认的测试程序,和
试验管理装置,管理上述测试程序的执行;
其中,上述试验管理装置包括:
操作记录部,检测对上述预定机器的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述预定机器的输入数据的接口的函数,记录到操作内容文件中,和
文件发送部,将不同于上述操作内容文件的、记录有对上述预定机器的输入数据的输入数据文件和上述操作内容文件发送给上述试验执行装置;
上述试验执行装置包括:
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述预定机器所执行过的一系列操作的测试程序,
程序执行部,通过从上述输入数据文件取得输入数据并传递给上述测试程序的函数,来执行上述测试程序,以及
测试状况通知部,将上述测试程序的执行状况通知给上述试验管理装置;
另外,上述试验管理装置还包括测试状况提供部,在收到了上述测试程序的执行状况的确认要求时,输出从上述试验执行装置通知来的上述测试程序的执行状况。
29.权利要求28所述的动作验证系统,其特征在于,
上述试验管理装置还包括文件变换部,用于将依赖于特定应用程序的格式的操作内容文件,变换成不依赖于上述特定应用程序的格式的文件;
上述试验管理装置的文件发送部将上述不依赖于上述特定应用程序的格式的文件作为上述操作内容文件,发送给未安装上述特定应用程序的试验执行装置;
上述试验执行装置的程序生成部按照上述不依赖于上述特定应用程序的格式的文件中所记录的数据来生成测试程序。
30.权利要求28或29所述的动作验证系统,其特征在于,
在从用户终端收到了上述预定机器的动作确认的开始指示时,上述试验管理装置的文件发送部将上述输入数据文件和上述操作内容文件发送给上述试验执行装置;
在从上述用户终端收到了上述测试程序的执行状况的确认要求时,上述试验管理装置的测试状况提供部将从上述试验执行装置通知来的上述测试程序的执行状况提供给上述用户终端。
31.权利要求28至30的任一项所述的动作验证系统,其特征在于,
具有上述测试程序的执行环境彼此不同的多个试验执行装置;
上述试验管理装置的文件发送部向上述多个试验执行装置分别发送上述输入数据文件和上述操作内容文件;
上述试验管理装置的测试状况提供部将从上述多个试验执行装置通知来的上述测试程序的执行状况一并输出。
32.一种执行用于网页的动作确认的测试程序的动作验证装置,其特征在于,包括:
操作记录部,检测对动作确认对象的网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
文件取得部,取得用于构成上述网页的页构成文件,
对象检测部,从上述页构成文件中检测被嵌入了事件处理程序的对象,该事件处理程序用于产生与用户操作相应的事件,
事件记录部,将与被嵌入了上述事件处理程序的对象中所产生的事件相对应的函数记录到上述操作内容文件中,
动态标签记录部,在上述页构成文件内包含有动态地生成对象的程序时,将用户对被动态生成的对象所进行的操作记录到上述操作内容文件中,
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,以及
程序执行部,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行。
33.权利要求32所述的动作验证装置,其特征在于,
上述动态标签记录部通过在上述操作内容文件的生成过程中定期地再次取得上述页构成文件,来检测被动态生成的对象。
34.权利要求32所述的动作验证装置,其特征在于,
上述动态标签记录部通过在上述操作内容文件的生成过程中根据来自用户的指示而再次取得上述页构成文件,来检测被动态生成的对象。
35.权利要求32至34的任一项所述的动作验证装置,其特征在于,
上述程序执行部具有在上述测试程序的执行过程中执行待机,直到在初始状态下未被显示的动态对象被生成的功能。
36.权利要求35所述的动作验证装置,其特征在于,
上述程序执行部在上述操作内容文件的生成时,基于动态对象被生成所需要的时间,来设定执行上述测试程序过程中的待机时间。
37.一种动作验证程序,用于使执行用于网页的动作确认的测试程序的装置实现以下功能:
操作记录功能,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
文件取得功能,取得用于构成上述网页的页构成文件,
对象检测功能,从上述页构成文件中检测被嵌入了事件处理程序的对象,该事件处理程序用于产生与用户操作相应的事件,
事件记录功能,将与被嵌入了上述事件处理程序的对象中所产生的事件相对应的函数记录到上述操作内容文件中,
动态标签记录功能,在上述页构成文件内包含有动态地生成对象的程序时,将用户对被动态生成的对象所进行的操作记录到上述操作内容文件中,
程序生成功能,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,以及
程序执行功能,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行。
38.一种由执行用于网页的动作确认的测试程序的装置来执行的动作验证方法,其特征在于,包括:
检测对动作确认对象的网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中的步骤,
取得用于构成上述网页的页构成文件的步骤,
从上述页构成文件中检测被嵌入了事件处理程序的对象的步骤,该事件处理程序用于产生与用户操作相应的事件,
将与被嵌入了上述事件处理程序的对象中所产生的事件相对应的函数记录到上述操作内容文件中的步骤,
在上述页构成文件内包含有动态地生成对象的程序时,将用户对被动态生成的对象所进行的操作记录到上述操作内容文件中的步骤,
通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序的步骤,以及
通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述装置执行上述测试程序的步骤。
39.一种执行用于网页的动作确认的测试程序的动作验证装置,其特征在于,包括:
操作记录部,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,
程序执行部,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行,
测试结果保持部,将上述测试程序执行后的网页作为测试结果数据来记录,
比较部,对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较,以及
比较结果生成部,输出使通过上述比较部的比较而检测出的不一致部分突出显示的比较结果图像。
40.权利要求39所述的动作验证装置,其特征在于,
还包括掩模生成部,生成用于掩蔽上述比较结果图像中的用户允许不一致的范围的掩模图像;
上述比较结果生成部对上述比较结果图像适用上述掩模图像,输出针对掩模范围去除了作为不一致部分的突出显示的掩模后比较结果图像。
41.权利要求40所述的动作验证装置,其特征在于,
当上述测试结果数据是图像数据时,上述掩模生成部基于前次测试结果数据与本次测试结果数据的差分图像来生成上述掩模图像。
42.权利要求40所述的动作验证装置,其特征在于,
上述掩模生成部生成掩蔽上述比较结果图像中的用户所指定范围的区域的掩模图像。
43.权利要求39所述的动作验证装置,其特征在于,
还包括掩模生成部,在上述测试结果数据是标记语言文件时,生成掩模文件,该掩模文件用于使得针对用户指定的行编号不进行比较。
44.一种动作验证程序,使执行用于网页的动作确认的测试程序的装置实现以下功能:
操作记录功能,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成功能,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,
程序执行功能,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行,
测试结果保持功能,将上述测试程序执行后的网页作为测试结果数据来记录,
比较功能,对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较,以及
比较结果生成功能,输出使通过上述比较功能的比较而检测出的不一致部分突出显示的比较结果图像。
45.一种由执行用于网页的动作确认的测试程序的装置来执行的动作验证方法,其特征在于,包括:
检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中的步骤,
通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序的步骤,
通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述装置执行上述测试程序的步骤,
将上述测试程序执行后的网页作为测试结果数据而记录到存储器中的步骤,
对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较的步骤,以及
输出使通过上述比较步骤的比较而检测出的不一致部分突出显示的比较结果图像的步骤。
46.一种执行用于网页的动作确认的测试程序的动作验证装置,其特征在于,包括:
操作记录部,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成部,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,
程序执行部,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行,
测试结果保持部,将上述测试程序执行后的网页作为测试结果数据来记录,
比较部,对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较,
比较结果生成部,输出使通过上述比较部的比较而检测出的不一致部分突出显示的比较结果图像,以及
图像化部,在上述测试结果数据是PDF(Portable Document Format:可移植文档格式)文件时,对该PDF文件进行图像化处理。
47.权利要求46所述的动作验证装置,其特征在于,
上述图像化部根据PDF文件的安全性设置来选择图像化方法。
48.权利要求46或47所述的动作验证装置,其特征在于,
上述图像化部使用打印机驱动器来使PDF文件图像化。
49.权利要求46或47所述的动作验证装置,其特征在于,
上述图像化部通过将PDF文件的内容复制到剪贴板中来进行图像化处理。
50.一种动作验证程序,使执行用于网页的动作确认的测试程序的装置实现以下功能:
操作记录功能,检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中,
程序生成功能,通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序,
程序执行功能,通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述测试程序执行,
测试结果保持功能,将上述测试程序执行后的网页作为测试结果数据来记录,
比较功能,对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较,
比较结果生成功能,输出使通过上述比较功能的比较而检测出的不一致部分突出显示的比较结果图像,以及
图像化功能,在上述测试结果数据是PDF(Portable Document Format:可移植文档格式)文件时,对该PDF文件进行图像化处理。
51.一种由执行用于网页的动作确认的测试程序的装置来执行的动作验证方法,其特征在于,包括:
检测对上述网页的数据输入操作,将与上述数据输入操作相对应、且具有用于取得对上述网页的输入数据的接口的函数,记录到操作内容文件中的步骤,
通过根据被记录在上述操作内容文件中的函数而设定程序代码,来生成用于再现对上述网页所执行过的一系列操作的测试程序的步骤,
通过从不同于上述操作内容文件的输入数据文件取得输入数据并传递给上述函数,来使上述装置执行上述测试程序的步骤,
将上述测试程序执行后的网页作为测试结果数据而记录到存储器中的步骤,
对前次测试程序执行后的前次测试结果数据和本次测试程序执行后的本次测试结果数据进行比较的步骤,
输出使通过上述比较步骤的比较而检测出的不一致部分突出显示的比较结果图像的步骤,以及
在上述测试结果数据是PDF(Portable Document Format:可移植文档格式)文件时,对该PDF文件进行图像化处理的步骤。
CN201080003435.1A 2009-03-30 2010-02-05 动作验证装置、动作验证方法、以及动作验证系统 Active CN102227716B (zh)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
JP2009-083198 2009-03-30
JP2009083198A JP4795446B2 (ja) 2009-03-30 2009-03-30 動作検証装置および動作検証プログラム
JP2010024649A JP4681673B1 (ja) 2010-02-05 2010-02-05 動作検証装置、動作検証方法および動作検証プログラム
JP2010-024648 2010-02-05
JP2010-024652 2010-02-05
PCT/JP2010/000722 WO2010116586A1 (ja) 2009-03-30 2010-02-05 動作検証装置、動作検証方法、および動作検証システム
JP2010-024651 2010-02-05
JP2010024650A JP4846030B2 (ja) 2010-02-05 2010-02-05 動作検証装置、動作検証方法および動作検証プログラム
JP2010024651A JP4846031B2 (ja) 2010-02-05 2010-02-05 動作検証システム
JP2010-024650 2010-02-05
JP2010024648A JP4903278B2 (ja) 2010-02-05 2010-02-05 動作検証装置、動作検証方法および動作検証プログラム
JP2010-024647 2010-02-05
JP2010024652A JP4903279B2 (ja) 2010-02-05 2010-02-05 動作検証装置、動作検証方法、および動作検証プログラム
JP2010024647A JP4846029B2 (ja) 2010-02-05 2010-02-05 動作検証装置、動作検証方法および動作検証プログラム
JP2010-024649 2010-10-15

Publications (2)

Publication Number Publication Date
CN102227716A true CN102227716A (zh) 2011-10-26
CN102227716B CN102227716B (zh) 2014-01-01

Family

ID=42935886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080003435.1A Active CN102227716B (zh) 2009-03-30 2010-02-05 动作验证装置、动作验证方法、以及动作验证系统

Country Status (3)

Country Link
US (5) US9495280B2 (zh)
CN (1) CN102227716B (zh)
WO (1) WO2010116586A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514093A (zh) * 2013-09-23 2014-01-15 福建联迪商用设备有限公司 嵌入式系统字库测试方法及装置
CN103713989A (zh) * 2012-09-29 2014-04-09 百度在线网络技术(北京)有限公司 一种针对用户终端的测试用例生成方法和装置
CN111198787A (zh) * 2018-11-16 2020-05-26 长鑫存储技术有限公司 测试程序生成方法、装置、存储介质及电子设备
CN113556269A (zh) * 2021-07-29 2021-10-26 中国电力科学研究院有限公司 Sap客户端性能测试方法、系统、电子设备及存储介质

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143016B (zh) * 2010-11-25 2013-08-07 中国移动(深圳)有限公司 网站自动化测试方法和系统
JP5594199B2 (ja) * 2011-03-16 2014-09-24 富士通株式会社 ファイルアップロードの代理方法、代理プログラム及び代理装置
JP5747751B2 (ja) * 2011-09-06 2015-07-15 富士通株式会社 リグレッションテスト支援プログラム及びリグレッションテスト支援装置
JP5852826B2 (ja) * 2011-09-23 2016-02-03 株式会社オプティム 診断コード生成端末、診断方法、及び、診断コード生成端末用プログラム
CN103425575B (zh) * 2012-05-25 2018-02-02 腾讯科技(深圳)有限公司 一种测试方法和装置
CN103475483B (zh) * 2013-09-10 2018-04-03 北京思特奇信息技术股份有限公司 一种基于云服务的验证码服务方法及系统
CN103685277B (zh) * 2013-12-17 2016-08-17 南京大学 一种浏览器访问网页安全保护方法
JP5830706B2 (ja) * 2014-01-29 2015-12-09 パナソニックIpマネジメント株式会社 店員作業管理装置、店員作業管理システムおよび店員作業管理方法
CN103984624A (zh) * 2014-04-29 2014-08-13 北京京东尚科信息技术有限公司 一种网页自动化测试方法及系统
EP3191963B1 (en) * 2014-09-08 2023-11-22 AB Initio Technology LLC Data-driven testing framework
CN104598348B (zh) * 2015-02-28 2018-07-13 南京途牛科技有限公司 一种远程实时分析外部系统接口性能的方法及系统
US10324828B2 (en) * 2016-03-28 2019-06-18 Dropbox, Inc. Generating annotated screenshots based on automated tests
JP6965620B2 (ja) 2017-08-01 2021-11-10 富士通株式会社 コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法
CN109828906B (zh) * 2018-12-15 2023-07-04 中国平安人寿保险股份有限公司 Ui自动化测试方法、装置、电子设备及存储介质
CN109684227A (zh) * 2018-12-28 2019-04-26 北京微播视界科技有限公司 应用程序测试方法、装置及电子设备
JP6656664B1 (ja) * 2019-05-15 2020-03-04 モリカトロン株式会社 表示誤り検出支援プログラム、表示誤り検出支援方法、および、表示誤り検出支援装置
CN112579455A (zh) * 2020-12-23 2021-03-30 安徽航天信息有限公司 一种接口自动化测试方法、装置、电子设备及存储介质
CN116303101B (zh) * 2023-05-19 2023-08-15 建信金融科技有限责任公司 测试案例生成方法、装置和设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005690A (ja) * 1999-06-21 2001-01-12 Nec Ic Microcomput Syst Ltd プログラムテストシステム
JP2002236598A (ja) * 2001-02-08 2002-08-23 Hitachi Information Systems Ltd 画面操作内容の表示方法及び該方法を実現するためのプログラム
JP2007102654A (ja) * 2005-10-07 2007-04-19 Hitachi Software Eng Co Ltd テストスクリプト処理プログラム
US20080126931A1 (en) * 2006-11-02 2008-05-29 Gou Kojima System and method for recording and reproducing user operation
US20080229149A1 (en) * 2007-03-14 2008-09-18 Clifford Penton Remote testing of computer devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2719644B2 (ja) * 1992-09-30 1998-02-25 大日本スクリーン製造株式会社 カブセ処理方法
US6360332B1 (en) * 1998-06-22 2002-03-19 Mercury Interactive Corporation Software system and methods for testing the functionality of a transactional server
US6775824B1 (en) * 2000-01-12 2004-08-10 Empirix Inc. Method and system for software object testing
US7231606B2 (en) * 2000-10-31 2007-06-12 Software Research, Inc. Method and system for testing websites
US7539591B2 (en) * 2001-08-24 2009-05-26 Vi Technology, Inc. Enterprise test data management system utilizing hierarchical test data models and related methods
US20040216084A1 (en) * 2003-01-17 2004-10-28 Brown Albert C. System and method of managing web content
JP2004227396A (ja) 2003-01-24 2004-08-12 Nippon Steel Corp プログラムテスト支援装置、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体
US7496906B2 (en) * 2004-03-31 2009-02-24 International Business Machines Corporation Evaluation of a code segment
US7493272B2 (en) * 2004-11-23 2009-02-17 International Business Machines Corporation Computer-implemented method of performance testing software applications
US7593980B2 (en) * 2004-11-30 2009-09-22 Cisco Technology, Inc. Application server system and method
JP4956431B2 (ja) * 2005-07-27 2012-06-20 パナソニック株式会社 評価装置、評価装置の動作方法、評価プログラム及び集積回路
US20080292164A1 (en) * 2006-08-29 2008-11-27 Siemens Corporate Research, Inc. System and method for coregistration and analysis of non-concurrent diffuse optical and magnetic resonance breast images
US20080156863A1 (en) * 2006-12-29 2008-07-03 Weyerhaeuser Co. Systems and methods for improving the readability of printed bar code symbols and the like
JP4941040B2 (ja) * 2007-03-26 2012-05-30 富士通株式会社 テスト仕様書生成プログラム、およびテスト仕様書生成装置
US8881105B2 (en) * 2007-04-11 2014-11-04 Patrick J. Quilter, Jr. Test case manager
US20090192836A1 (en) * 2008-01-24 2009-07-30 Patrick Kelly Automated test system project management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005690A (ja) * 1999-06-21 2001-01-12 Nec Ic Microcomput Syst Ltd プログラムテストシステム
JP2002236598A (ja) * 2001-02-08 2002-08-23 Hitachi Information Systems Ltd 画面操作内容の表示方法及び該方法を実現するためのプログラム
JP2007102654A (ja) * 2005-10-07 2007-04-19 Hitachi Software Eng Co Ltd テストスクリプト処理プログラム
US20080126931A1 (en) * 2006-11-02 2008-05-29 Gou Kojima System and method for recording and reproducing user operation
US20080229149A1 (en) * 2007-03-14 2008-09-18 Clifford Penton Remote testing of computer devices

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103713989A (zh) * 2012-09-29 2014-04-09 百度在线网络技术(北京)有限公司 一种针对用户终端的测试用例生成方法和装置
CN103713989B (zh) * 2012-09-29 2018-02-02 百度在线网络技术(北京)有限公司 一种针对用户终端的测试用例生成方法和装置
CN103514093A (zh) * 2013-09-23 2014-01-15 福建联迪商用设备有限公司 嵌入式系统字库测试方法及装置
CN103514093B (zh) * 2013-09-23 2016-02-03 福建联迪商用设备有限公司 嵌入式系统字库测试方法及装置
CN111198787A (zh) * 2018-11-16 2020-05-26 长鑫存储技术有限公司 测试程序生成方法、装置、存储介质及电子设备
CN111198787B (zh) * 2018-11-16 2021-11-02 长鑫存储技术有限公司 测试程序生成方法、装置、存储介质及电子设备
US11960751B2 (en) 2018-11-16 2024-04-16 Changxin Memory Technologies, Inc. Test program generation method, device, memory medium and electronic equipment
CN113556269A (zh) * 2021-07-29 2021-10-26 中国电力科学研究院有限公司 Sap客户端性能测试方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
US10346288B2 (en) 2019-07-09
US10860463B2 (en) 2020-12-08
WO2010116586A1 (ja) 2010-10-14
US20210056011A1 (en) 2021-02-25
US11580011B2 (en) 2023-02-14
US20160274983A1 (en) 2016-09-22
US20190266073A1 (en) 2019-08-29
US20110208470A1 (en) 2011-08-25
US9495280B2 (en) 2016-11-15
US20230153230A1 (en) 2023-05-18
CN102227716B (zh) 2014-01-01

Similar Documents

Publication Publication Date Title
CN102227716B (zh) 动作验证装置、动作验证方法、以及动作验证系统
US10255051B2 (en) Generation of dynamic software models using input mapping with feature definitions
EP2808790B1 (en) Migration assessment for cloud computing platforms
US7831464B1 (en) Method and system for dynamically representing distributed information
US20030164850A1 (en) Recording user interaction with an application
JP7361135B2 (ja) 管理対象ネットワークによって使用されるソフトウェアの決定及び調整
KR20200112020A (ko) 레이아웃 템플릿 기반 통합 사이트 관리 시스템 및 방법
CN103412745A (zh) 一种开发及应用平台
CN1501267B (zh) 链接信息制作设备、链接信息制作方法及文件处理系统
JP2003015869A (ja) 開発支援プログラム及び開発支援方法並びに開発支援システム
Dumas et al. Robotic Process Mining.
JP4944439B2 (ja) 進捗管理装置システム、進捗管理装置および進捗管理プログラム
JP3987018B2 (ja) 統合業務ソフトウェアの導入運用支援システム
JP4846030B2 (ja) 動作検証装置、動作検証方法および動作検証プログラム
JP4532056B2 (ja) 情報支援分析装置及びその制御方法、プログラム
CN102597965A (zh) 动作检验装置、动作检验方法及动作检验程序
Subbiah et al. Development of a student database management system for a university
Chao Cloud database development and management
JP2943661B2 (ja) 金融端末装置のファイル照会方式
JP2005339333A (ja) 帳票管理システム
JP2013037580A (ja) 情報処理装置
JP4903278B2 (ja) 動作検証装置、動作検証方法および動作検証プログラム
JP4846031B2 (ja) 動作検証システム
Ala-Ilomäki Application programming interface management for cloud entities of an enterprise resource planning software
JP2011164788A (ja) 動作検証装置、動作検証方法、および動作検証プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant