CN104246714A - 软件缺陷验证 - Google Patents
软件缺陷验证 Download PDFInfo
- Publication number
- CN104246714A CN104246714A CN201280072829.1A CN201280072829A CN104246714A CN 104246714 A CN104246714 A CN 104246714A CN 201280072829 A CN201280072829 A CN 201280072829A CN 104246714 A CN104246714 A CN 104246714A
- Authority
- CN
- China
- Prior art keywords
- script
- defect
- software application
- software
- test
- 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.)
- Pending
Links
- 230000007547 defect Effects 0.000 title claims abstract description 304
- 238000012795 verification Methods 0.000 title abstract description 3
- 238000013515 script Methods 0.000 claims abstract description 142
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000009471 action Effects 0.000 claims abstract description 34
- 238000012360 testing method Methods 0.000 claims description 160
- 230000003993 interaction Effects 0.000 claims description 32
- 230000001172 regenerating effect Effects 0.000 claims description 19
- 230000007812 deficiency Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 18
- 238000011161 development Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 230000006399 behavior Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000000275 quality assurance Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000013479 data entry Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000000454 anti-cipatory effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000002537 cosmetic Substances 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了软件缺陷验证。示例性方法包括利用处理器访问表示要在执行要被测试的软件应用时被执行的一组动作的脚本,该组动作与所报告缺陷相关联;执行计算机上的要被测试的软件应用;以及利用处理器经由要被测试的应用执行脚本中的该组动作以尝试重新产生所报告缺陷。
Description
背景技术
软件测试是软件应用开发的通用部分。软件测试包括以可能预期终端用户与软件进行交互的方式与软件进行交互。当发现软件中的缺陷(或错误)时,对软件进行定义的底层计算机代码被修改以校正这些缺陷。
附图说明
图1是根据本公开的教导而构造的示例性软件开发系统的框图。
图2是可以被用来实现图1的软件测试器的示例性软件测试器的框图。
图3是可以被用来实现图1的软件测试器的另一示例性软件测试器的框图。
图4A-4E图示了根据本公开的教导的监视对软件应用进行测试期间的用户交互时的软件开发系统的示例性用户界面。
图5A-5D图示了根据本公开的教导的验证所报告缺陷已经被修正时的软件开发系统的示例性用户界面。
图6是表示当被执行时使得处理器报告测试下软件应用中的缺陷的示例性机器可读指令的流程图。
图7是表示当被执行时使得处理器尝试重新产生测试下软件应用中的所报告缺陷的示例性机器可读指令的流程图。
图8是表示当被执行时使得处理器尝试重新产生测试下软件应用中的所报告缺陷并且验证所报告缺陷是否继续存在于该软件应用中的示例性机器可读指令的流程图。
图9是能够执行图6-8的指令以实现图1、2和/或3的软件测试器的示例性处理器平台的框图。
具体实施方式
在现代软件开发中,软件应用开发者(本文也被简称为开发者)生成代码来实现软件应用。如软件开发中常见的那样,软件经常初始包含使得软件的行为偏离所期望或意图的行为的缺陷(或错误)。在开发者已经写出了所有或部分的软件代码之后,软件代码可以被发送至软件测试者(例如,质量保证工程师)以供测试。例如,软件测试者可以采用各种方式对软件进行测试以验证软件服从所意图的行为。
当软件测试者识别出不服从所意图的行为的软件行为的实例时,软件测试者(例如,直接和/或间接地经由缺陷系统)将该缺陷报告至开发者。所报告缺陷范围可以从次要的(例如,装饰性的(cosmetic))到严重的(例如,核心功能问题)。开发者然后将计算机代码移除、修改、和/或添加至软件应用以修正所报告缺陷。当开发者修正了所报告缺陷时,开发者将软件的新版本提交至软件测试者。软件测试者然后验证所报告缺陷已经被修正。例如,软件测试者可以尝试重新产生先前导致了缺陷的发现的状况并确定是否仍然可以观察到缺陷。
在过去,软件缺陷验证是手动过程。负责软件测试的人(例如,质量保证工程师)在所报告缺陷已经被开发者(或者质量保证工程师可以是开发者自己)解决时被通知。该人然后必须通过手动地对软件应用重新测试并确定软件缺陷是否仍然存在来尝试重新产生该软件缺陷。手动测试因此会是昂贵且耗时的过程。进行手动测试所需的费用和时间可以导致针对软件的质量的妥协(例如,一些缺陷可能未被解决以便留在预算内等等)。
示例性方法、装置和制品可以被用来在软件开发系统中执行软件缺陷验证。本文所公开的示例性方法、装置和制品通过使验证所报告的软件缺陷的过程自动化而克服了与现有技术相关联的问题。在一些示例中,自动化软件测试器记录用户进行软件应用的手动测试的动作,包括与测试下软件应用的交互。当用户报告软件应用中的缺陷时,软件测试器生成表示导致识别出缺陷的用户动作的脚本。软件测试器将脚本附接或附加到所报告缺陷。当所报告缺陷后来被该用户(或者不同用户)验证时,软件测试器执行该脚本以尝试重新产生该缺陷。开发者还可以使用脚本来可靠且快速地重新产生缺陷,这使得更多的高效解决方案能够报告缺陷。
对比于摘要中的创建测试脚本的已知软件测试应用(即,不具有与软件缺陷的关联性),本文所公开的示例性方法、装置、和制品是缺陷中心式的(defect-centric)。示例性方法、装置、和制品将缺陷重新产生脚本附接或关联至所报告缺陷并且尝试响应于由用户对缺陷的选择而重新产生缺陷。以此方式,示例性方法、装置、和制品提供了对缺陷的快速验证和增强的软件开发效率。
本文公开了示例性计算机可读指令,其使得处理器识别对要被测试的软件应用中的所报告缺陷的选择。基于该选择,指令使得处理器访问表示要由计算机在执行要被测试的软件应用时执行的一组动作的脚本。该组脚本与所选择的所报告缺陷相关联。示例性指令还使得处理器执行计算机上的要被测试的软件应用,并执行脚本中的该组动作以尝试重新产生所报告缺陷。
本文所公开的示例性装置包括用户界面、应用测试器、和缺陷重新产生器。示例性用户界面接收针对要被测试的软件应用的所报告缺陷的选择。应用测试器执行测试下软件应用。示例性缺陷重新产生器尝试通过在应用测试器执行测试下软件应用时执行脚本中所定义的一组动作来重新产生所选择的报告的软件缺陷。该组动作与所选择的报告的软件缺陷相关联。
如本文所使用的,术语“验证缺陷”或“验证所报告缺陷”是指确定和/或确认已经根据某一准则满意地修正或解决了缺陷(例如,根据验证器的满意)。
图1是示例性软件开发系统100的框图。图1的示例性系统100可以被用来执行针对开发和/或测试中的软件应用的软件缺陷验证。图1的示例包括应用开发器102、软件测试器104、缺陷管理器106、以及测试管理器108。
图1的示例性应用开发器102被用来开发或生成软件应用。例如,应用开发器102可以是实现在一个或多个计算机、服务器、网络、和/或其他设备上的开发环境。诸如(一个或多个)软件工程师之类的一个或多个人使用应用开发器102来编写软件代码和/或生成要被测试的可执行软件。(一个或多个)软件应用可以被开发以尝试符合所接收到的软件应用要求110。例如,图1的软件应用要求110定义了软件应用的所期望的目标、目的、输入、输出、视觉要求、和/或行为。应用开发器102向软件测试器104提供用于测试的(一个或多个)软件应用。
图1的示例性软件测试器104测试软件应用以识别、报告、和/或验证由应用开发器102提供的软件应用中(例如,软件应用的不同版本中)的缺陷。在一些示例中,软件测试器104是执行在计算机或处理平台(例如,图9的处理平台900)上的测试工具。
用户(例如,质量保证工程师)可以使用图1的示例性软件测试器104来对由应用开发器102提供的(一个或多个)软件应用112执行测试。当用户正在经由软件测试器104对软件应用112进行测试时,软件测试器104自动地记录用户和软件应用之间的交互(例如,经由键盘输入的数据、使用光标和/或鼠标选择的对象等等)。图1的软件测试器104将所记录的交互的表示存储在用户交互日志114中。
当用户识别出测试下软件应用112中的缺陷时,用户经由软件测试器104报告缺陷。例如,用户可以经由软件测试器104生成缺陷记录。所报告缺陷可以包括例如缺陷标识符(例如,缺陷号)、所期望的行为、观察到的行为、可疑的原因、在其中观察到缺陷的状态或上下文、和/或用户相信在解决或修正所报告缺陷方面对于开发器有益的任何其他信息。
响应于用户报告缺陷,示例性软件测试器104生成包括由用户进行的、导致了软件缺陷的交互(例如,日志114中记录的交互)的脚本。在一些示例中,软件测试器104将脚本附加或附接至所报告缺陷。此外或可替代地,软件测试器104将脚本存储在示例性测试管理器108中(例如,作为自动化测试)。在一些示例中,用户可以在将脚本附加至所报告缺陷之前手动地修改该脚本,以更精确地定义导致所报告缺陷的交互。
图1的示例性缺陷管理器106从软件测试器104接收所报告缺陷并将所报告缺陷提供给应用开发器102。在一些示例中,应用开发器从缺陷管理器106检索所报告缺陷(例如,在缺陷检查期间)。当应用开发器102解决(例如,修正)了从缺陷管理器106接收的所报告缺陷时,应用开发器返回或者更新缺陷管理器106中的所报告缺陷。示例性缺陷管理器106将已解决(但未验证)的缺陷提供给软件测试器104来进行验证。例如,软件测试器104可以在所报告缺陷验证时段期间访问缺陷管理器106。
示例性测试管理器108从软件测试器104接收(一个或多个)测试脚本116。示例性测试脚本116包括执行一组步骤的缺陷重新产生指令118,如果那些缺陷存在于软件应用中,那么该组步骤将产生一个或多个特定缺陷的证据。在一些示例中,测试脚本还包括验证指令120,以识别一个或多个特定缺陷的证据,如果那些缺陷存在的话。当软件测试器104验证所报告缺陷已经被修正时,示例性软件测试器104访问来自测试管理器108的适当的测试脚本116。在一些其他示例中,示例性软件测试器104访问附加至所报告缺陷(例如,在缺陷记录中)的脚本116。
示例性测试管理器108还可以维护一组脚本116,以执行软件应用116的未来版本的自动化测试。例如,测试管理器108可以提供针对未来版本的自动化回归测试的测试以识别可能已经再次出现的任何缺陷。示例性软件测试器104将与已验证的缺陷相关联的脚本116提供给测试管理器108,其包括未来自动化测试中的脚本116。
图2是可以被用来实现图1的软件测试器104的示例性软件测试器200的框图。图2的示例性软件测试器200包括用户界面202、应用测试器204、和缺陷重新产生器206。软件测试器200可以被实现在例如下文参考图9所述的处理平台900上。
图2的示例性用户界面202接收来自软件测试器200的用户的输入和/或将输出提供给软件测试器200的用户。例如,用户界面202可以包括以下中的一个或多个:用以向用户图示虚拟显示的显示屏、用以接收数据输入(例如,击键、字母数字字符信息等等)的键盘、和/或用以控制光标和/或接收命令的鼠标。在软件测试和/或缺陷验证期间,示例性用户界面202(例如,经由输入的组合)接收针对要被测试的软件应用的所报告的软件缺陷的选择。
示例性应用测试器204执行测试下软件应用208并监视执行的软件应用。例如,应用测试器204可以接收要被测试的应用(例如,从图1的应用开发器102)。示例性应用测试器204执行测试下软件应用208,同时监视执行的应用的输入和输出(例如,网络连接、用户输入、对用户的输出、外围输入和/或输出、进入和/或出自应用的服务对象调用等等)。
用户可以经由用户界面202与应用测试器204和/或要被测试的软件应用208进行交互。例如,用户界面202使得用户能够选择由应用测试器204提供的菜单项目或动作(例如,选择缺陷、验证缺陷、报告缺陷、执行应用204等等)。用户界面202还使得用户能够(经由应用测试器204)与软件应用及其特征进行交互。
图2的示例性缺陷重新产生器206尝试重新产生所选择的报告的软件缺陷(例如,经由用户界面202确定的)。为此,示例性缺陷重新产生器206在应用测试器204执行测试下软件应用208时自动地(例如,在不具有用户参与的情况下)执行脚本212(例如,图1的脚本116)中所定义的一组动作210。图2的该组动作210包括用以重新产生所选择的报告的软件缺陷的指令(例如,如果缺陷未被修正的话)。在一些示例中,该组动作210在对软件应用208(或者测试下软件应用208的早期版本)的在先测试期间被自动地记录并经由脚本210被附加至所报告缺陷。
示例性软件测试器200的更详细操作在下面参考图5A-5D、图6、和/或图7来描述。
图3是可以被用来实现图1的软件测试器104的另一示例性软件测试器300的框图。图3的示例包括图2的示例性用户界面202、示例性应用测试器204、和示例性缺陷重新产生器206。然而,对比于图2的软件测试器200,图3的示例性软件测试器300还包括缺陷验证器314、脚本记录器316、和脚本生成器318。软件测试器300可以被实现在例如下文参考图9所述的处理平台900上。
图3的示例性缺陷验证器314在一组动作210已经被执行时确定是否已经从软件应用208移除了所选择的报告的软件缺陷。例如,缺陷验证器314可以请求和/或接收来自用户界面202和/或应用测试器204的信息,该信息证明了所选择的报告的软件缺陷的存在或不存在。在一些示例中,脚本212包括用以获得和/或评估所报告缺陷是否已经被修正的一个或多个指令。缺陷验证器314使用这些指令来验证所报告缺陷。
由缺陷验证器314获得和/或使用的信息和/或证据的类型可以依赖于特定的所报告缺陷而不同。例如,利用测试下软件应用208的用户界面的所报告缺陷(例如,不正确的图形)可以通过从用户界面202获得输出信息来验证。相比之下,与数据处理差错有关的所报告缺陷可以通过从应用测试器204获得测试下软件应用208的数据输入和/或输出来验证。
图3的示例性脚本记录器316监视与测试下软件应用208的用户交互。例如,脚本记录器316从用户界面202接收输入。这些输入可以包括输入的类型(例如,鼠标点击、光标移动、光标位置、击键)、与输入相关联(例如,由输入所影响的)数据结构(例如,用户正在键入字符到其中的数据字段、可点击的按钮等等)、所输入的数据(例如,字母数字字符等等)、和/或表征用户交互的任何其他信息。示例性脚本记录器316将所监视的交互存储在用户交互日志320中。在一些示例中,脚本记录器316自动地(即,在不具有用户参与的情况下)记录时间戳、到用户界面202的输出、到软件应用208的输入和/或输出(例如,经由应用测试器204)、和/或对于重新产生软件应用中的缺陷有用或者必要的任何其他信息。
基于在日志320中记录的交互,示例性脚本生成器318根据所监视的用户交互生成脚本(例如,脚本212)。在图3的示例中,脚本生成器318在用户界面202接收到软件缺陷要被报告的指示时生成脚本。此类指示可以包括用户点击“报告缺陷”按钮(例如,当用户识别出测试下软件应用208中的缺陷时)。示例性脚本生成器318可以将所生成的脚本(例如,脚本212)提供至缺陷重新产生器206和/或至缺陷验证器314。在一些示例中,脚本生成器318将所生成的脚本212附加到缺陷的报告。
可以被用来实现图2和/或3的应用测试器204、脚本记录器316、和/或脚本生成器318的示例性工具是由Hewlett-Packard开发的QuickTest ProfessionalTM 软件套件和/或也由Hewlett-Packard开发的HP Functional TestingTM 软件。
图3的示例性软件测试器300的更详细操作在下面参考图4A-4E、图5A-5D、图6、图7、和/或图8来描述。
图4A-4D图示了软件开发系统100在对软件应用的测试期间监视用户交互时的软件开发系统(例如,图1的软件开发系统100)的示例性用户界面400。图4A-4D的示例性用户界面400可以在显示屏上被呈现给用户。
所图示的示例的用户界面400包括与软件测试应用402(例如,由图2和/或3的应用测试器204)对应(例如,由其生成)的窗口。在图4A-4D的示例中,软件测试应用402正被用来测试正在生成由显示方框或窗口404实现的输出的软件应用(例如,图2的测试下软件应用208)。所图示的示例的软件测试应用402提供了控制界面403,用户能够利用所述控制界面403来发起软件应用的测试(例如,经由开始测试按钮406)和/或结束软件应用的测试(例如,经由结束测试按钮408)。
在图4A-4D的示例中,示例性软件测试应用还使得用户能够将测试下软件应用的状态设为初始状态(例如,经由设置初始状态按钮410)和/或使软件应用返回至初始状态(例如,经由返回至初始状态按钮412)。如本文所使用的,术语“初始状态”是指测试要从其开始的开始点,其对应于测试下软件应用的任何状态(例如,模拟的系统状况,诸如存储器内容),从所述开始点起能够执行一组指令或步骤来尝试重新产生软件缺陷。例如,测试下软件应用的任何特定状态可以被指定为初始状态。然后软件应用的用户(例如,测试者)可以在测试期间、测试之后、和/或要开始测试的任何时间返回至初始状态。因此,脚本中的一组步骤可以使用初始状态(例如,所指定的开始点)来可靠地重新产生软件缺陷(如果软件缺陷还未被修正的话)和/或来验证缺陷已经被修正,这是因为用以重新产生软件缺陷的步骤从相同的系统和/或软件状况被发起,原因在于步骤初始地进行以发现缺陷。
测试下软件应用的初始状态例如可以通过以下内容来规定:被分配给应用的存储器的内容、启用的(一个或多个)添加应用的(一个或多个)状态、软件应用的经编程的稳定状态(例如,主屏幕、菜单屏幕等等)、和/或规定了软件应用的状态的任何其他方法。在一些示例中,测试下软件应用404的状态可以与软件应用的后续版本的状态相兼容。
图4A-4D的示例性软件测试应用还使得用户能够报告软件缺陷(例如,经由报告缺陷按钮414)。当软件测试应用的用户识别出或观察到缺陷时,用户可以选择(例如,点击)报告缺陷按钮414来使得软件测试应用报告测试下软件应用中的缺陷。如下面更详细地描述的,报告软件缺陷可以包括生成规定了关于缺陷的信息的缺陷记录。
图4A图示了软件测试应用正在测试测试下软件应用时的示例性用户界面400。在图4A的示例中,测试下软件应用处于第一状态416(例如,状态0)。示例性第一状态416可以是当用户选择(例如,经由光标418点击)开始测试按钮406时测试下软件应用进入的第一状态。在选择开始测试按钮406时,用户和/或测试下软件应用的动作被监视(例如,经由图2和/或3的用户界面202、应用测试器204、和/或脚本记录器316)。
图4B图示了与测试下软件应用的示例性用户交互正在被监视时的图4A的用户界面400。在图4B的示例中,测试下软件应用已经进入了另一状态420(例如,状态A)。
在一些示例中,用户可以通过经由用户界面400和/或软件测试应用与测试下软件应用进行交互来使得测试下软件应用进入状态420。当测试下软件应用进入状态420时,用户可以将状态420设置(或分配)为初始状态(例如,通过利用光标选择设置初始状态按钮410)。
在一些其他示例中,用户可以通过经由光标418选择返回至初始状态按钮412来使得测试下软件应用返回至初始状态(例如,状态420)。当测试下软件应用处于初始状态420时,图3的示例性脚本记录器316记录测试下软件应用处于初始状态。该信息随后被用来向脚本提供一组动作要从其被执行的状态(例如,初始状态420)。
图4C图示了继初始状态之后的示例性用户交互正在被监视时的图4A的用户界面400。在图4C的示例中,用户通过在位置B处点击(例如,经由鼠标)由测试下软件应用(例如,在应用窗口中)输出的显示方框内的某一位置处的光标418来进行测试下软件应用的测试。图3的示例性日志记录器316记录了经由示例性用户界面400(例如,图3的用户界面202)接收到的用户交互。
示例性测试随着用户将光标418移动422至由测试下软件应用输出的显示方框404内的第二位置C以及通过将光标418移动424至由测试下软件应用输出的显示方框404内的另一位置D而继续。示例性日志记录器316可以将经由用户界面400接收到的这些用户交互记录为单独的动作和/或为单个动作(例如,基于移动422是否修改了测试下软件应用的状态)。
用户然后选择(例如,经由鼠标点击、“tab”击键等等)由测试下软件应用输出的显示方框404内的数据输入字段(例如,文本框426)并通过做出两次击键(例如,“1”击键跟着“5”击键)来输入数字(例如,“15”)。示例性日志记录器316记录经由用户界面400的这些用户交互。与移动交互422、424一样,示例性日志记录器316可以将这些用户交互记录为单独的动作和/或单个动作。
例如,如果“1”击键或“5”击键(或者这二者都)导致软件状态的改变(例如,所分配的存储器内容的改变),那么(一个或多个)击键可以被视为单独的动作。
数据输入按钮(例如,“去往”)428然后被选择(例如,通过利用鼠标点击、通过敲击键盘上的“回车”键等等)。根据所意图的软件行为,在用户选择了“去往”按钮428之后,测试下软件应用应当处于状态E。示例性日志记录器316记录按钮428的选择以与用户选择按钮428的方法(例如,鼠标点击、击键等等)一致。然而,示例性日志记录器316还可以记录该动作的等同物(例如,除了将光标418移动到按钮上并点击鼠标之外,记录按下“回车”键)。
图4D图示了当要由用户报告示例性软件缺陷时的图4A的用户界面400。根据示例性测试下软件应用的预期行为,数据输入字段426中显示的值要被改变为另一数字(例如,“16”)。然而,在所图示的示例中,字段426的值保持为所输入的数字“15”。此外,如根据示例性软件要求(例如,图1的软件应用要求110)预期的,测试下软件应用保持处于状态D而不是转变为状态E。因而,用户识别出存在软件缺陷并经由光标418选择报告缺陷按钮414。
图4E图示了当软件测试应用呈现对话框430以供用户报告测试下软件应用中的缺陷时的图4A的用户界面400。示例性软件测试应用响应于用户选择图4A-4D的报告缺陷按钮414而呈现对话框430。
在图4E的示例中,对话框430呈现了缺陷记录432(例如,由图2和/或3的应用测试器204生成的)。缺陷记录432包括信息,包括:报告用户的标识434、缺陷标识符436、缺陷日期(例如,时间戳)438、缺陷严重程度440、测试下软件应用的版本的标识442、以及缺陷重新产生脚本444。在一些示例中,用户可以将评论、图示了缺陷的屏幕截图、和/或其他信息附加至缺陷记录432。
示例性缺陷重新产生脚本444(例如,图1的脚本116、图2和/或3的脚本212)包括表示可以被执行以尝试重新产生在缺陷记录432中所报告缺陷的一组动作(例如,图2和/或3的动作210)的指令446。在图4E的示例中,缺陷重新产生脚本444由脚本生成器(例如,图3的脚本生成器318)初始地填充有指令446。用户可以添加、删除、和/或修改指令446。例如,脚本444包括由用户添加的验证指令448。示例性验证指令448使得缺陷验证器(例如,图3的缺陷验证器314)能够验证缺陷已经被修正。
当缺陷重新产生脚本444被满意地完成时,用户可以选择附加脚本按钮450(例如,经由光标418)来使得脚本生成器318将脚本444附加至记录432。在一些其他示例中,脚本444可以被自动地附加至缺陷记录432和/或可以集成到缺陷记录432。当缺陷记录432已经由用户满意地(例如,针对用户的满意)准备好时,用户可以选择输入缺陷按钮452。
尽管图4A-4E图示了测试软件应用、记录用户交互、以及报告缺陷的示例,但示例可以被修改以测试(一个或多个)任何类型的软件应用并记录(一个或多个)任何类型的交互。所记录的交互、所执行的测试、和/或所报告缺陷基于软件应用要求(例如,所意图的行为)和软件应用的编码。因而,所监视的交互和所报告缺陷的几乎无限制数量的变形是可能的。图3的示例性软件测试器300可以被用来报告此类缺陷并生成表示导致识别出或观察到缺陷的交互的脚本。
图5A-5D图示了验证所报告缺陷已经被修正时的软件开发系统(例如,图1的软件开发系统100)的示例性用户界面500。图5A-5D的示例性用户界面500可以与图4的用户界面400相同或类似和/或可以被用来实现图2和/或3的用户界面202。
图5A-5D的示例性用户界面500包括由软件测试应用所生成的显示方框或窗口502(例如,用户能够利用其与软件测试应用进行交互的用户界面500上的显示窗口)。图5A-5D的软件测试应用可以实现图1-3的示例性软件测试器104、200、300中的任何和/或所有。在图5A-5D的示例中操作的示例性软件测试应用可以与图4A-4E的软件测试应用相同或不同。
此外,在图5A-5D的示例中操作的软件测试应用可以在与图4A-4E的软件测试应用相同或不同的处理平台上被执行。因而,所报告缺陷可以在与缺陷被报告的相同的处理平台和/或软件测试应用上被验证。可替代地,所报告缺陷可以在与缺陷被报告的不同的处理平台和/或软件测试应用上被验证。有利地,即使未经由软件测试应用报告缺陷,图5A-5D的软件测试应用也使用脚本来高效且快速地验证软件缺陷。
图5A-5D的示例性软件测试应用要验证测试下软件应用。在图5A-5D的示例中,示例性测试下软件应用是图4A-4E的测试下软件应用的后续版本。例如,测试下软件应用已经被修改(例如,由软件开发器)以尝试解决或修正缺陷。
图5A图示了用户正在选择要被验证的所报告缺陷时的示例性用户界面500。示例性用户界面500显示了与测试下软件应用对应的显示窗口504(例如,由测试下软件应用生成的)。显示窗口504可以被显示为与由软件测试应用所生成的窗口502并排和/或被显示为窗口502的子窗口。
在图5A的所图示的示例中,软件测试应用包括选择工具(诸如,填充有针对软件应用的所报告缺陷的下拉框506)。用户可以选择下拉框506,并且然后从所列出的缺陷中选择所报告缺陷508(例如,“缺陷F347”)。示例性所选择的所报告缺陷F347是与图4E中图示的示例性所报告缺陷相同的所报告缺陷。因此,所选择的所报告缺陷与用以尝试重新产生所报告缺陷的脚本相关联(例如,包括、附加有)。
图5B图示了用户正在选择以验证所选择的所报告缺陷时的图5A的示例性用户界面500。在图5B的示例中,用户已经选择了验证缺陷按钮510。响应于接收到针对所选择的所报告缺陷508的验证缺陷按钮510的选择,示例性软件测试应用尝试通过执行脚本(例如,被包括有和/或附加于针对所报告缺陷的缺陷记录的脚本、图1的脚本116、图2和/或3的脚本212)来重新产生所报告缺陷。用户可以使用例如光标512来选择验证缺陷按钮510。
响应于用户选择验证所报告缺陷508,示例性软件测试应用开始执行脚本。在所图示的示例中,软件测试应用首先基于脚本将测试下软件应用置于第一状态A(例如,图4B的初始状态420)。
图5C图示了当软件测试应用已经执行了附加至所选择的所报告缺陷的脚本时的图5A的示例性用户界面500。根据示例性脚本,测试下软件应用应当处于状态D,其中击键“15”已经被输入到字段514中并且“去往”按钮516已经被选择(例如,经由图2和/或3的缺陷重新产生器206和用户界面202)。在所图示的示例中,软件测试应用还示出了所报告缺陷的位置(例如,应当观察到缺陷的地方)和/或所预期的内容的注释518突显。
在图5C的示例中,示例性测试下软件应用已经执行了计算并使字段514填充有值“16”。该值与突显518中示出的所预期值一致。因而,用户可以通过选择验证修正按钮520来确认或验证所报告缺陷已经被修正。
图5D图示了当软件测试应用已经执行了附加至所选择的所报告缺陷的脚本并且所报告缺陷继续存在时的图5A的示例性用户界面500。如图5D中所示,示例性字段514中的值不匹配于注释518中图示的值。当用户识别出缺陷继续存在时(例如,通过观察注释518和字段514之间的差异),用户可以选择拒绝修正按钮522来拒绝修正(例如,重新打开或将所报告缺陷返回至软件开发器以被解决)。
尽管实现图1的软件测试器104的示例性方式已经在图2和3中进行了说明,但图2和/或3中所图示的元件、处理器和/或设备中的一个或多个可以被组合、分开、重新布置、省略、消除、和/或以任何其他方式实现。此外,示例性用户界面202、示例性应用测试器204、示例性缺陷重新产生器206、示例性测试下软件应用208、示例性一组动作210、示例性脚本212、示例性缺陷验证器314、示例性脚本记录器316、示例性脚本生成器318、和/或更一般地图1-3的示例性软件测试器104、200、300可以由硬件、软件、固件和/或硬件软件和/或固件的任何组合来实现。因此,例如,示例性用户界面202、示例性应用测试器204、示例性缺陷重新产生器206、示例性测试下软件应用208、示例性一组动作210、示例性脚本212、示例性缺陷验证器314、示例性脚本记录器316、示例性脚本生成器318、和/或更一般地图1-3的示例性软件测试器104、200、300中的任何一个可以由(一个或多个)电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路(ASIC)、(一个或多个)可编程逻辑设备(PLD)、和/或(一个或多个)现场可编程逻辑设备(FPLD)等等来实现。当本专利的任何装置或系统权利要求被读以涵盖纯软件和/或固件实现时,示例性用户界面202、示例性应用测试器204、示例性缺陷重新产生器206、示例性测试下软件应用208、示例性一组动作210、示例性脚本212、示例性缺陷验证器314、示例性脚本记录器316、和/或示例性脚本生成器318中的至少一个据此被明确地定义为包括诸如存储器、DVD、CD、蓝光等等存储软件和/或固件的有形计算机可读介质。此外,图1-3的示例性软件测试器104、200、300仍可以包括除在图4中图示的那些之外或代替在图4中图示的那些的元件、过程和/或设备,和/或可以包括所图示的元件、过程和设备中任何一个或上所有的多于一个。
表示用于实现图1-3的软件测试器104、200、300中任何一个的示例性机器可读指令的流程图被示出在图6-8中。在此示例中,机器可读指令包括供处理器执行的程序,诸如下面结合图9所讨论的示例性计算机900中示出的处理器912。程序可以被体现在存储在诸如计算机可读存储介质(例如,CD-ROM、软盘、硬盘、数字多功能盘(DVD)、蓝光盘、或者与处理器912相关联的存储器)之类的有形计算机可读介质上的软件中,但整个程序和/或其部分能够替代地由不同于处理器912的设备执行和/或被体现在固件或专用硬件中。此外,尽管示例性程序参考图6-8中图示的流程图来描述,但可以替代地使用实现示例性软件测试器104、200、300的许多其他方法。例如,可以改变块的执行次序,和/或可以改变、消除、或者组合所描述的块中的一些。
如上所述,图6-8的示例性过程可以使用存储在有形计算机可读介质上的经编码指令(例如,计算机可读指令)来实现,所述有形计算机可读介质诸如硬盘驱动、闪存、只读存储器(ROM)、光盘(CD)、数字多功能盘(DVD)、高速缓存、随机存取存储器(RAM)、和/或信息在任何持续时间(例如,在扩展的时间段、永久地、简短实例、用于暂时缓冲、和/或用于信息的高速缓存)内被存储在其中的任何其他存储介质。如本文所使用的,术语“有形计算机可读介质”被明确地定义为包括任何类型的计算机可读存储并排除传播信号。此外或替代地,图6-8的示例性过程可以使用存储在非临时计算机可读介质上的经编码指令(例如,计算机可读指令)来实现,所述非临时计算机可读介质诸如硬盘驱动、闪存、只读存储器、光盘、数字多功能盘、高速缓存、随机存取存储器、和/或信息在任何持续时间(例如,在扩展的时间段、永久地、简短实例、用于暂时缓冲、和/或用于信息的高速缓存)内被存储在其中的任何其他存储介质。如本文所使用的,术语“非临时计算机可读介质”被明确地定义为包括任何类型的计算机可读介质并排除传播信号。如本文所使用的,当短语“至少”被用作权利要求的前序中的过渡用语时,它以与术语“包括”是开放式的相同方式是开放式的。因此,使用“至少”作为其前序中的过渡用语的权利要求可以包括除了权利要求中明确记载的那些之外的元素。
图6是表示示例性机器可读指令600的流程图,所述示例性机器可读指令当被执行时使得处理器报告测试下软件应用中的缺陷。示例性指令600可以由图9的示例性处理器平台900执行以实现图3的用户界面202、应用测试器204、脚本记录器316、和/或脚本生成器318。
示例性指令600开始于监视(例如,经由图3的脚本记录器316)经由用户界面(例如,图3的用户界面302、图4的用户界面400)的用户交互(块602)。例如,脚本记录器316可以监视用户界面202以识别诸如击键、鼠标移动、鼠标点击、音频输入、成像设备输入、和/或任何其他类型的用户交互之类的用户输入。如果用户交互已经被识别(块604),则示例性脚本记录器316将用户交互记录在用户交互日志(例如,日志320)中(块606)。
当用户交互已经被记录(块606)时,或者在用户交互还未被识别(块604)的情况下,示例性应用测试器204确定缺陷是否已经被识别(例如,用户是否已经指示了已经经由用户界面202观察到缺陷)(块608)。如果缺陷还未被识别(块608),则控制返回至块602以继续监视用户交互。
如果缺陷已经被识别(块608),则示例性应用测试器204生成缺陷记录(例如,图4E的缺陷记录432)(块610)。示例性缺陷记录432可以包括所分配的缺陷标识符、生成了缺陷记录的用户的标识符、来自用户的附注、时间戳、缺陷的严重程度、测试下软件应用(例如,图2和3的测试下软件应用208和/或图4的测试下软件应用)的版本。
图3的示例性脚本生成器318根据用户交互日志320生成脚本(例如,图3的脚本212、图4E的缺陷重新产生脚本444)(块612)。脚本444包括针对缺陷重新产生器(例如,图2和3的缺陷重新产生器206)的表示用户交互的指令,所述用户交互诸如例如是自最近发生的指定初始状态(例如,图4B的状态A 120)起的用户交互、自测试开始起(例如,自用户选择了图4A-4E的开始测试按钮406起)的用户交互;指定数目的最近交互(例如,最后30次交互)、和/或交互的任何其他数目或表示。
示例性脚本生成器318将脚本444附接(例如,附加)至缺陷(例如,至缺陷记录432)(块614)。例如,脚本生成器318可以自动地将脚本444包括(例如,附加)在缺陷记录中。示例性应用测试器204报告测试下软件应用中的缺陷(块616)。例如,应用测试器204可以将包括脚本444的缺陷记录432提供至缺陷管理器106和/或至应用开发器102。
在报告了缺陷(块616)之后,图6的示例性指令600可以结束。示例性指令600然后可以在用户开始另一测试时从开始重新开始。在一些其他示例中,指令600可以在不具有附加的用户命令的情况下(例如,在不具有重新开始指令600的情况下)使控制返回至块602以继续监视用户交互。
图7是表示示例性机器可读指令700的流程图,所述示例性机器可读指令700当被执行时使得处理器尝试重新产生测试下软件应用中的所报告缺陷。示例性指令700可以由图9的示例性处理器平台900执行以实现图1、2和/或3的示例性软件测试器104、200、300。
图7的指令700开始于识别(例如,经由图2和3的用户界面202)针对要被测试的软件应用的所报告的软件缺陷的选择(块702)。例如,用户界面202可以从用户接收指示了针对测试下软件应用(例如,图5A-5D的测试下软件应用)的所报告的软件缺陷(例如,图5B-5D的软件缺陷508)的选择的一个或多个命令。
缺陷重新产生器(例如,图2和/或3的示例性缺陷重新产生器206)访问表示一组动作的脚本以重新产生所选择的所报告缺陷508(块704)。例如,缺陷重新产生器206可以接收被包括在缺陷记录(例如,图4E的缺陷记录432)中的脚本(例如,图4E的缺陷重新产生脚本444)。在一些示例中,缺陷重新产生器206访问来自缺陷管理器(例如,图1的缺陷管理器106)的缺陷记录432和/或脚本444。
应用测试器(例如,图2和/或3的示例性应用测试器204)执行要被测试的软件应用(例如,图5A-5D的测试下软件应用504)(块706)。缺陷重新产生器206执行该组动作(例如,脚本444中的动作)以尝试重新产生所报告缺陷(块708)。通过执行该组动作,示例性缺陷重新产生器206尝试重新产生用户(例如,质量保证工程师)先前经由其确定所选择的缺陷存在的状况。如果缺陷未被修正,则选择了所报告缺陷以供验证的用户可以观察到缺陷仍存在而不必手动地回溯所述步骤。另一方面,如果缺陷已经被修正,则用户可以观察到所报告缺陷已经被修正而不必手动地回溯所述步骤。
示例性指令700然后可以结束。在一些示例中,指令700可以使控制返回至块702以识别针对验证的另一个所报告缺陷的选择。以此方式,质量保证工程师可以快速地验证多个所报告缺陷已经被修正。
图8是表示示例性机器可读指令800的流程图,所述示例性机器可读指令800当被执行时使得处理器尝试重新产生测试下软件应用中的所报告缺陷并且验证所报告缺陷是否继续存在于软件应用中。示例性指令可以由图9的示例性处理器平台900来执行以实现图1和/或3的示例性软件测试器104、300。
图8的示例性指令800开始于识别(例如,经由图3的用户界面202)针对要被测试的软件应用的所报告的软件缺陷的选择(块802)。例如,用户界面202可以从用户接收指示了针对测试下软件应用(例如,图5A-5D的测试下软件应用504)的所报告的软件缺陷(例如,图5B-5D的软件缺陷508)的选择的一个或多个命令。
缺陷重新产生器(例如,图3的示例性缺陷重新产生器206)访问表示一组动作的脚本以重新产生所选择的所报告缺陷508(块804)。例如,缺陷重新产生器206可以接收被包括在缺陷记录(例如,图4E的缺陷记录432)中的脚本(例如,图4E的缺陷重新产生脚本444)。在一些示例中,缺陷重新产生器206访问来自缺陷管理器(例如,图1的缺陷管理器106)的缺陷记录432和/或脚本444。
应用测试器(例如,图3的示例性应用测试器204)执行要被测试的软件应用(例如,图5A-5D的测试下软件应用)(块806)。示例性缺陷重新产生器206确定测试下软件应用是否处于重新产生所报告缺陷的正确状态(块808)。例如,缺陷重新产生器206可以识别用于执行一组动作的初始状态(例如,图4B和/或5B的状态A)。
初始状态可以根据脚本444、由用户所规定的针对测试下软件应用的缺省初始状态、和/或初始状态信息的任何其他源来确定。例如,缺陷重新产生器206可以通过以下内容来确定测试下软件应用是否处于初始状态:将被分配给测试下软件应用的存储器的内容与针对初始状态的存储器的内容进行比较、确定任何启用的添加应用的状态、确定测试下软件应用是否处于已编程的稳态(例如,在主屏幕上、在所指定的菜单屏幕上等等)和/或以其他方式将测试下软件应用的状态与初始状态进行比较。
如果测试下软件应用未处于正确的(例如,初始的)状态(块808),则示例性缺陷重新产生器206将测试下软件应用置于正确(例如,初始的)状态(块810)。例如,缺陷重新产生器206可以经由图3的用户界面202执行与测试下软件应用的一个或多个交互。在一些其他示例中,缺陷重新产生器206向应用测试器204提供要被置于测试下软件应用504的所分配的存储器中的数据,以将测试下软件应用置于初始状态。
在将测试下软件应用置于初始状态(块810)之后,或者在缺陷重新产生器206确定测试下软件应用处于初始状态(块808)的情况下,示例性缺陷重新产生器206执行一组动作(例如,脚本444中的动作)以尝试重新产生所报告缺陷(块812)。通过执行该组动作,示例性缺陷重新产生器206尝试重新产生用户(例如,质量保证工程师)先前经由其确定所选择的缺陷存在的状况。
缺陷验证器(例如,图3的缺陷验证器314)确定所报告缺陷是否仍然存在(块814)。例如,缺陷验证器314可以分析脚本444以确定是否存在任何验证指令。在一些其他示例中,缺陷验证器314针对指示了缺陷的存在或不存在的用户交互(例如,用户选择图5C和5D的“验证修正”按钮520或“拒绝修正”按钮522)监视用户界面202。
如果缺陷验证器314确定缺陷不存在(块814),则示例性缺陷验证器314将所报告缺陷标记为已修正(块816)。例如,缺陷验证器816可以改变缺陷记录432中的状态或其他信息。另一方面,如果缺陷仍然不存在(块814),则缺陷验证器816返回所报告缺陷(例如,至图1的应用开发器102和/或至缺陷管理器106)(块818)。
示例性指令800然后可以结束。在一些示例中,指令800可以使控制返回至块802以识别针对验证的另一所报告缺陷的选择。
图9是能够执行图6-8的指令600、700、800以实现图1-3的软件测试器102、200、和/或300的示例性处理器平台900的框图。计算机900例如能够是服务器、个人计算机、或者任何其他类型的计算设备。
即时示例的处理器平台900包括处理器912。例如,处理器912能够由来自任何期望的家族或制造商的一个或多个微处理器或控制器来实现。图9的示例性处理器912实现了图3的软件测试器300,包括示例性应用测试器204、示例性缺陷重新产生器206、示例性测试下软件应用208、示例性缺陷验证器314、示例性脚本记录器316、和/或示例性脚本生成器318。
处理器912包括本地存储器913(例如,高速缓存)并且经由总线918与包括易失性存储器914和非易失性存储器916的主存储器进行通信。易失性存储器914可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器916可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器914、916的访问由存储器控制器来控制。示例性本地存储器913、示例性易失性存储器914、和/或示例性非易失性存储器916中的任何一个可以存储表示测试下软件应用208、脚本212、和/或用户交互日志320的数据和/或指令。示例性应用测试器204、示例性缺陷重新产生器206、示例性测试下软件应用208、示例性缺陷验证器314、示例性脚本记录器316、和/或示例性脚本生成器318、和/或更一般地示例性处理器912访问来自本地存储器913、易失性存储器914、和/或非易失性存储器916中的任何一个的测试下软件应用208、脚本212、和/或用户交互日志320。
处理器平台900还包括接口电路920。接口电路920可以由任何类型的接口标准来实现,诸如以太网接口、通用串行总线(USB)、和/或PCI 高速接口。
一个或多个输入设备922被连接至接口电路920。(一个或多个)输入设备922准许用户将数据和命令输入到处理器912中。(一个或多个)输入设备能够由例如键盘、鼠标、触摸屏、轨迹板、轨迹球、isopoint、和/或语音识别系统来实现。
一个或多个输出设备924也连接至接口电路920。输出设备924能够例如由显示设备(例如,液晶显示器、阴极射线管显示器(CRT)、打印机、和/或扬声器)来实现。因此,接口电路920通常包括图形驱动卡。示例性接口电路920、(一个或多个)示例性输入设备922、和/或(一个或多个)示例性输出设备924可以被结合使用以实现图2和/或3的用户界面202。
接口电路920还包括诸如调制解调器或网络接口卡之类的通信设备以促进经由网络926(例如,以太网连接、数字订户线路(DSL)、电话线、同轴线缆、蜂窝电话系统等等)与外部计算机的数据交换。
处理器平台900还包括用于存储软件和数据的一个或多个大容量存储设备928。此类大容量存储设备928的示例包括软盘驱动、硬驱动盘、光盘驱动、和数字多功能盘(DVD)驱动。大容量存储设备928可以实现应用测试器204(例如,以存储测试下软件应用208)、缺陷重新产生器206(例如,以存储脚本212)、缺陷验证器312(例如,以存储脚本212)、脚本记录器316(例如,以存储日志320)、和/或脚本生成器318(例如,以存储(一个或多个)所生成的脚本和/或存储脚本212)中的一个或多个。
图6-8的经编码指令932可以被存储在大容量存储设备928中、易失性存储器914中、非易失性存储器916中、和/或诸如CD或DVD之类的可移除存储介质上。
上文所述的示例性方法、装置、和制品提供了对软件缺陷的快速且高效的验证。对比于已知的软件缺陷验证的手动方法,本文所公开的示例性方法、装置、和制品更可靠,原因在于他们自动地重新产生导致软件缺陷的报告的步骤而避免了会发生在手动过程期间的重新产生中的差错的可能性。因而,方法、装置、和制品通过使得更多的资源分配到开发和/或测试而不是使用先前的方法那样分配来准许更高质量的软件应用的开发。
尽管在本文中已经描述了某些示例性方法、装置、和制品,但本专利的覆盖范围并不限于此。相反,本专利覆盖了公平落入本专利的权利要求范围内的所有方法、装置和制品。
Claims (15)
1.一种方法,包括:
利用处理器访问表示要在执行要被测试的软件应用时被执行的一组动作的脚本,该组动作与所报告缺陷相关联;
执行计算机上的要被测试的软件应用;以及
利用所述处理器经由要被测试的应用执行所述脚本中的该组动作以尝试重新产生所述所报告缺陷。
2.如权利要求1所述的方法,还包括:
将要被测试的软件应用中的缺陷报告为所报告缺陷;以及
将脚本附接至所报告缺陷。
3.如权利要求2所述的方法,还包括:通过记录与所述软件应用的多个用户交互来生成所述脚本。
4.如权利要求1所述的方法,还包括验证:当所述脚本中的该组动作已经被执行并且所述缺陷未被检测到时,已经从所述软件应用中移除了所述所报告缺陷。
5.如权利要求1所述的方法,还包括:在执行所述脚本中的该组动作之前,将要被测试的软件应用置于初始状态。
6.一种装置,包括:
应用测试器,用以执行测试下软件应用;以及
缺陷重新产生器,用以尝试通过在所述应用测试器执行所述测试下软件应用时执行在脚本中定义的一组动作来重新产生所报告缺陷,该组动作与所述所报告缺陷相关联。
7.如权利要求6所述的装置,还包括:
脚本记录器,用以监视与所述测试下软件应用的用户交互;以及
脚本生成器,用以在用户界面接收到缺陷要被报告的指示时根据所监视的用户交互来生成脚本。
8.如权利要求7所述的装置,其中所述脚本生成器生成所述脚本以包括继所述测试下软件应用的预定状态的发生之后发生的用户交互。
9.如权利要求6所述的装置,还包括缺陷验证器,用以在该组动作已经被执行时确定是否已经从软件应用中移除了所报告缺陷。
10.如权利要求6所述的装置,其中所述缺陷重新产生器在执行该组动作之前在所述测试下软件应用未处于初始状态时将所述测试下软件应用置于所述初始状态。
11.一种计算机可读存储介质,包括计算机可读指令,所述计算机可读指令当由计算机执行时使得所述计算机至少进行以下操作:
访问表示要在执行要被测试的软件应用时被执行的一组动作的脚本,该组动作与所报告缺陷相关联;
执行计算机上的要被测试的软件应用;以及
经由要被测试的应用执行脚本中的该组动作以尝试重新产生所报告缺陷。
12.如权利要求11所述的计算机可读存储介质,其中所述指令还使得所述计算机:
将要被测试的软件应用中的缺陷报告为所报告缺陷;以及
将脚本附接至所报告缺陷。
13.如权利要求11所述的计算机可读存储介质,其中所述指令还使得所述计算机通过记录与所述软件应用的多个用户交互来生成所述脚本。
14.如权利要求11所述的计算机可读存储介质,其中所述指令还使得所述计算机验证:当所述脚本中的该组动作已经被执行并且所述缺陷未被检测到时,已经从所述软件应用中移除了所述所报告缺陷。
15.如权利要求11所述的计算机可读存储介质,其中所述指令还使得所述计算机在执行所述脚本中的该组动作之前将要被测试的软件应用置于初始状态。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2012/034676 WO2013162503A1 (en) | 2012-04-23 | 2012-04-23 | Software defect verification |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104246714A true CN104246714A (zh) | 2014-12-24 |
Family
ID=49483618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280072829.1A Pending CN104246714A (zh) | 2012-04-23 | 2012-04-23 | 软件缺陷验证 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150074648A1 (zh) |
EP (1) | EP2842038A4 (zh) |
CN (1) | CN104246714A (zh) |
WO (1) | WO2013162503A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304991A (zh) * | 2017-12-28 | 2018-07-20 | 研祥智能科技股份有限公司 | 产品缺陷管理方法、装置、计算机设备和存储介质 |
CN111158942A (zh) * | 2019-12-17 | 2020-05-15 | 珠海格力电器股份有限公司 | 故障处理数据的验证方法及装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678106A (zh) * | 2012-09-19 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种内容录制方法和装置 |
US20150033315A1 (en) * | 2013-07-23 | 2015-01-29 | Salesforce.Com, Inc. | Authentication and diagnostic functions for a database system |
US9268671B2 (en) * | 2013-12-06 | 2016-02-23 | Testfire, Inc. | Embedded test management for mobile applications |
US10445166B2 (en) | 2014-06-24 | 2019-10-15 | International Business Machines Corporation | System verification of interactive screenshots and log files between client systems and server systems within a network computing environment |
US9513948B2 (en) | 2015-02-05 | 2016-12-06 | International Business Machines Corporation | Automated virtual machine provisioning based on defect state |
US11119899B2 (en) | 2015-05-28 | 2021-09-14 | Micro Focus Llc | Determining potential test actions |
CN107179983A (zh) * | 2016-03-09 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 用户界面测试结果的校验方法及装置 |
US20170351560A1 (en) * | 2016-06-02 | 2017-12-07 | Microsoft Technology Licensing, Llc | Software failure impact and selection system |
US12093166B2 (en) | 2021-02-24 | 2024-09-17 | Applause App Quality, Inc. | Systems and methods for automating test and validity |
US11709764B2 (en) * | 2021-03-08 | 2023-07-25 | International Business Machines Corporation | Creating test cases for testing software using anonymized log data |
US20220342663A1 (en) * | 2021-04-22 | 2022-10-27 | Nadav Barkaee | Systems and method for analyzing software and testing integration |
CN113051180B (zh) * | 2021-04-30 | 2023-09-29 | 中国平安人寿保险股份有限公司 | 测试任务的监测方法、装置、设备及存储介质 |
US20230147668A1 (en) * | 2021-11-11 | 2023-05-11 | International Business Machines Corporation | Defect tracking and remediation using client-side screen recording |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1296220A (zh) * | 1999-11-01 | 2001-05-23 | 城市集团发展中心有限公司 | 安装和/或升级自助金融交易终端的软件的方法和系统 |
US20080141221A1 (en) * | 2006-12-08 | 2008-06-12 | Microsoft Corporation | Using recorder technology to find defects in software applications |
US7844861B2 (en) * | 2006-11-27 | 2010-11-30 | Red Hat, Inc. | Automatic generation of test cases from error data |
US20110113287A1 (en) * | 2009-11-12 | 2011-05-12 | Siemens Medical Solutions Usa, Inc. | System for Automated Generation of Computer Test Procedures |
US20110258609A1 (en) * | 2010-04-14 | 2011-10-20 | International Business Machines Corporation | Method and system for software defect reporting |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640537A (en) * | 1991-11-20 | 1997-06-17 | Apple Computer, Inc. | Apparatus for causing a computer system to respond to emulated user interaction in the absence of actual user interaction |
US7356786B2 (en) * | 1999-11-30 | 2008-04-08 | Synplicity, Inc. | Method and user interface for debugging an electronic system |
US8079019B2 (en) * | 2007-11-21 | 2011-12-13 | Replay Solutions, Inc. | Advancing and rewinding a replayed program execution |
US20110088011A1 (en) * | 2009-10-14 | 2011-04-14 | Vermeg Sarl | Automated Enterprise Software Development |
US20110252405A1 (en) * | 2010-04-10 | 2011-10-13 | Ilan Meirman | Detecting user interface defects in a software application |
-
2012
- 2012-04-23 WO PCT/US2012/034676 patent/WO2013162503A1/en active Application Filing
- 2012-04-23 CN CN201280072829.1A patent/CN104246714A/zh active Pending
- 2012-04-23 US US14/391,689 patent/US20150074648A1/en not_active Abandoned
- 2012-04-23 EP EP12875334.0A patent/EP2842038A4/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1296220A (zh) * | 1999-11-01 | 2001-05-23 | 城市集团发展中心有限公司 | 安装和/或升级自助金融交易终端的软件的方法和系统 |
US7844861B2 (en) * | 2006-11-27 | 2010-11-30 | Red Hat, Inc. | Automatic generation of test cases from error data |
US20080141221A1 (en) * | 2006-12-08 | 2008-06-12 | Microsoft Corporation | Using recorder technology to find defects in software applications |
US20110113287A1 (en) * | 2009-11-12 | 2011-05-12 | Siemens Medical Solutions Usa, Inc. | System for Automated Generation of Computer Test Procedures |
US20110258609A1 (en) * | 2010-04-14 | 2011-10-20 | International Business Machines Corporation | Method and system for software defect reporting |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304991A (zh) * | 2017-12-28 | 2018-07-20 | 研祥智能科技股份有限公司 | 产品缺陷管理方法、装置、计算机设备和存储介质 |
CN111158942A (zh) * | 2019-12-17 | 2020-05-15 | 珠海格力电器股份有限公司 | 故障处理数据的验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2842038A4 (en) | 2015-12-30 |
US20150074648A1 (en) | 2015-03-12 |
WO2013162503A1 (en) | 2013-10-31 |
EP2842038A1 (en) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104246714A (zh) | 软件缺陷验证 | |
US10176079B2 (en) | Identification of elements of currently-executing component script | |
US8645912B2 (en) | System and method for use in replaying software application events | |
US20190227917A1 (en) | Adaptive system for mobile device testing | |
US10802847B1 (en) | System and method for reproducing and resolving application errors | |
CN104123219A (zh) | 测试软件的方法和设备 | |
CN104331363A (zh) | 一种用于安卓设备的自动化测试方法 | |
US6957420B2 (en) | Method of generating test scripts for systems having dynamic behavior | |
CN112115038A (zh) | 一种应用测试方法、装置和存储介质 | |
CN111414309A (zh) | 应用程序的自动化测试方法、计算机设备和存储介质 | |
CN112015648A (zh) | 基于自动化脚本的测试方法、装置、计算机设备和介质 | |
CN115391220A (zh) | 一种测试用例生成方法、装置及设备 | |
KR101460860B1 (ko) | 상태 기반의 테스트 시나리오 모델을 이용한 gui 테스트 장치 및 방법 | |
CN110837467B (zh) | 软件测试方法、装置以及系统 | |
CN116955193A (zh) | 接口测试方法、装置、设备及存储介质 | |
KR101252358B1 (ko) | Plc 명령어 테스트 장치 및 방법 | |
CN113094281A (zh) | 一种混合式App的测试方法及装置 | |
CN108446219B (zh) | 应用程序的操作方法、系统、介质和计算设备 | |
JP2007328447A (ja) | ソフトウェア試験項目選択装置、ソフトウェア試験項目選択プログラム、ソフトウェア試験項目選択プログラムが格納された記憶媒体およびソフトウェア試験項目選択方法 | |
CN110806981A (zh) | 一种应用程序测试方法、装置、设备和存储介质 | |
CN114741325B (zh) | 一种应用系统测试用的测试脚本的录制方法以及装置 | |
CN110187658B (zh) | 一种芯片处理方法、装置、芯片及电梯外呼板 | |
CN118484212A (zh) | 车载控制器的软件刷写方法、装置、电动车辆和介质 | |
CN117851223A (zh) | 对业务系统进行测试的监控方法、装置、设备及存储介质 | |
CN112463554A (zh) | 基于浏览器控制交互的业务探测方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141224 |