Automated menu testing

Through the menu navigation system and methods based on key nodes, the problem of insufficient flexibility caused by menu changes in UI automation tests is solved, and a stable menu automation test without updating test cases is achieved.

CN120295899APending Publication Date: 2025-07-11DELL PROD LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410029668.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-01-08
Publication Date
2025-07-11

AI Technical Summary

Technical Problem

Existing UI automation testing methods lack flexibility when menu changes, predefined menu maps are easily corrupted, resulting in frequent updates of test cases and the cursor may break the path when it is in the wrong starting position.

Method used

Using a menu navigation system and method based on key nodes, we use regular expressions to match text, foreground colors and background colors to achieve menu automation testing without predefined maps by decomposing the frame buffer into text space, foreground space and background space.

Benefits of technology

Implements UI automation testing without updating test cases when menu elements are added or removed, improving test flexibility and stability, ensuring that the cursor can correctly navigate to the target position.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120295899A_ABST
    Figure CN120295899A_ABST
Patent Text Reader

Abstract

After initializing a frame buffer associated with the menu, the information handling system decomposes the content of the frame buffer into a text space, a foreground space, and a background space. The system navigates a menu to a key node using a control key, wherein the key node includes expected text and expected attributes. The system also matches the text and attributes of the current element to expected text and attributes, where the text is from the text space, and where the attributes are foreground colors from the foreground space or background colors from the background space.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to information handling systems, and more particularly to automated menu testing. Background Art

[0002] As the value and use of information continue to grow, individuals and businesses seek additional ways to process and store information. One option is an information handling system. An information handling system generally processes, compiles, stores, or communicates information or data for commercial, personal, or other purposes. The needs and requirements of technology and information handling may vary among different applications. Thus, information handling systems may also vary in terms of what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information can be processed, stored, or communicated. Variations in information handling systems allow information handling systems to be general-purpose or configured for a particular user or particular use (such as financial transaction processing, flight reservations, enterprise data storage, or global communications). Additionally, information handling systems may include various hardware and software resources that can be configured to process, store, and communicate information, and may include one or more computer systems, graphics interface systems, data storage systems, networking systems, and mobile communication systems. Information handling systems may also implement various virtualization architectures. Data and voice communications between information handling systems may occur via wired, wireless, or some combination of networks. Summary of the Invention

[0003] After initializing a frame buffer associated with a menu, an information handling system decomposes the content of the frame buffer into a text space, a foreground space, and a background space. The system uses control keys to navigate the menu to a key node, where the key node includes expected text and expected attributes. The system also matches the text and attributes of the current element with the expected text and expected attributes, where the text is from the text space, and the attributes are the foreground color from the foreground space or the background color from the background space. Brief Description of the Drawings

[0004] It should be understood that for simplicity and clarity of illustration, the elements shown in the drawings are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements. Embodiments incorporating the teachings of the present disclosure are shown and described with reference to the drawings herein, in which:

[0005] Figure 1 is a block diagram showing an information handling system according to an embodiment of the present disclosure;

[0006] Figure 2 is a block diagram of an environment for automated menu testing according to an embodiment of the present disclosure;

[0007] Figure 3 andFigure 4 is a flowchart of a method for automated menu testing according to an embodiment of the present disclosure;

[0008] Figure 5 is a table for automated menu testing according to an embodiment of the present disclosure;

[0009] Figure 6 is a table for mapping colors to color codes according to an embodiment of the present disclosure;

[0010] Figure 7 is an illustration of a target menu according to an embodiment of the present disclosure;

[0011] Figure 8 is an illustration of a text space including text associated with a target menu according to an embodiment of the present disclosure;

[0012] Figure 9 is an illustration of a foreground space including a foreground color code associated with a target menu according to an embodiment of the present disclosure;

[0013] Figure 10 is an illustration of a background space including a background color code associated with a target menu according to an embodiment of the present disclosure;

[0014] Figure 11 is an illustration of a target menu according to an embodiment of the present disclosure;

[0015] Figure 12 is an illustration of a target menu according to an embodiment of the present disclosure; Figure 13 is an illustration of text in a text space associated with a target menu according to an embodiment of the present disclosure;

[0016] Figure 14 is an illustration of a foreground space including a foreground color associated with a target menu according to an embodiment of the present disclosure;

[0017] Figure 15 is an illustration of a background space including a background color code associated with a target menu according to an embodiment of the present disclosure;

[0018] Figure 16 is an illustration of a target menu having a sub - menu according to an embodiment of the present disclosure;

[0019] Figure 17 is an illustration of text associated with a target menu according to an embodiment of the present disclosure;

[0020] Figure 18 is an illustration of a foreground space including a foreground color code associated with a target menu according to an embodiment of the present disclosure; and

[0021] Figure 19 It is an illustration of a background space including a background color code associated with a target menu according to an embodiment of the present disclosure.

[0022] The use of the same reference numerals in different drawings indicates similar or identical items. Detailed Description

[0023] The following description is provided in conjunction with the accompanying drawings to assist in understanding the teachings disclosed herein. This description focuses on the specific embodiments and implementations of the teachings and is provided to help describe the teachings. This focus should not be construed as limiting the scope or applicability of the teachings.

[0024] Figure 1 An embodiment of an information handling system 100 is shown, the information handling system including processors 102 and 104, a chipset 110, a memory 120, a graphics adapter 130 connected to a video display 134, a non-volatile RAM (NV-RAM) 140 including a basic input and output system / extensible firmware interface (BIOS / EFI) module 142, a disk controller 150, a hard disk drive (HDD) 154, an optical disk drive 156, a disk emulator 160 connected to a solid state drive (SSD) 164, an input / output (I / O) interface 170 connected to expansion resources 174 and a trusted platform module (TPM) 176, a network interface 180, and a baseboard management controller (BMC) 190. Processor 102 is connected to chipset 110 via a processor interface 106, and processor 104 is connected to the chipset via a processor interface 108. In a particular embodiment, processors 102 and 104 are connected via a high-capacity coherent fabric, such as a HyperTransport link, a QuickPath Interconnect, or the like. Chipset 110 represents an integrated circuit or group of integrated circuits that manages the data flow between processors 102 and 104 and the other elements of information handling system 100. In a particular embodiment, chipset 110 represents a pair of integrated circuits, such as a northbridge component and a southbridge component. In another embodiment, some or all of the functions and features of chipset 110 are integrated with one or more of processors 102 and 104.

[0025] Memory 120 is connected to chipset 110 via memory interface 122. Examples of memory interface 122 include double data rate (DDR) memory channels, and memory 120 represents one or more DDR dual in-line memory modules (DIMMs). In a particular embodiment, memory interface 122 represents two or more DDR channels. In another embodiment, one or more of processors 102 and 104 include a memory interface that provides dedicated memory for the processor. The DDR channels and the connected DDR DIMMs can conform to a specific DDR standard, such as the DDR3 standard, the DDR4 standard, the DDR5 standard, etc.

[0026] Memory 120 can further represent various combinations of memory types, such as dynamic random access memory (DRAM) DIMMs, static random access memory (SRAM) DIMMs, non-volatile DIMMs (NV-DIMMs), storage class memory devices, read-only memory (ROM) devices, etc. Graphics adapter 130 is connected to chipset 110 via graphics interface 132 and provides video display output 136 to video display 134. Examples of graphics interface 132 include Peripheral Component Interconnect Express (PCIe) interfaces, and as needed or desired, graphics adapter 130 can include a four-lane (x4) PCIe adapter, an eight-lane (x8) PCIe adapter, a 16-lane (x16) PCIe adapter, or another configuration. In a particular embodiment, graphics adapter 130 is disposed lower on the system printed circuit board (PCB). Video display output 136 can include a Digital Video Interface (DVI), a High-Definition Multimedia Interface (HDMI), a DisplayPort interface, etc., and video display 134 can include a monitor, a smart TV, an embedded display such as a laptop computer display, etc.

[0027] NV / RAM 140, disk controller 150, and I / O interface 170 are connected to chipset 110 via I / O channel 112. Examples of I / O channel 112 include one or more point-to-point PCIe links between chipset 110 and each of NV-RAM 140, disk controller 150, and I / O interface 170. Chipset 110 can also include one or more other I / O interfaces, including PCIe interfaces, Industry Standard Architecture (ISA) interfaces, Small Computer Serial Interface (SCSI) interfaces, Inter-Integrated Circuit (I 2C) interfaces, system packet interfaces (SPI), universal serial bus (USB), another interface, or a combination thereof. The NV-RAM 140 includes a BIOS / EFI module 142 that stores machine-executable code (BIOS / EFI code), and the machine-executable code operates to detect resources of the information handling system 100, provide drivers for the resources, initialize the resources, and provide a common access mechanism for the resources. The functions and features of the BIOS / EFI module 142 will be further described below.

[0028] The disk controller 150 includes a disk interface 152 that connects the disk controller to a hard disk drive (HDD) 154, an optical disk drive (ODD) 156, and a disk emulator 160. Examples of the disk interface 152 include an integrated drive electronics (IDE) interface, an advanced technology attachment (ATA) such as a parallel ATA (PATA) interface or a serial ATA (SATA) interface, a SCSI interface, a USB interface, a proprietary interface, or a combination thereof. The disk emulator 160 allows the SSD 164 to be connected to the information handling system 100 via an external interface 162. Examples of the external interface 162 include a USB interface, an Institute of Electrical and Electronics Engineers (IEEE) 1394 (FireWire) interface, a proprietary interface, or a combination thereof. Alternatively, the SSD 164 can be disposed within the information handling system 100.

[0029] The I / O interface 170 includes a peripheral interface 172 that connects the I / O interface to expansion resources 174, a TPM 176, and a network interface 180. The peripheral interface 172 can be the same type of interface as the I / O channel 112 or can be a different type of interface. Thus, when the peripheral interface 172 and the I / O channel are of the same type, the I / O interface 170 extends the capabilities of the I / O channel 112, and when they are of different types, the I / O interface converts information from a format suitable for the I / O channel to a format suitable for the peripheral interface 172. The expansion resources 174 can include a data storage system, an additional graphics interface, a network interface card (NIC), a sound / video processing card, another expansion resource, or a combination thereof. The expansion resources 174 can be located on the main circuit board, on a separate circuit board or expansion card disposed within the information handling system 100, on a device external to the information handling system, or a combination thereof.

[0030] Network interface 180 represents a network communication device that is disposed within information handling system 100, on the main circuit board of the information handling system, integrated on another component such as chipset 110, located in another suitable location, or a combination thereof. Network interface 180 includes a network channel 182 that provides an interface to devices external to information handling system 100. In a particular embodiment, network channel 182 is a different type than peripheral interface 172, and network interface 180 converts information from a format suitable for a peripheral channel to a format suitable for an external device.

[0031] In a particular embodiment, network interface 180 includes a NIC or a host bus adapter (HBA), and examples of network channel 182 include an InfiniBand channel, a Fibre Channel, a Gigabit Ethernet channel, a proprietary channel architecture, or a combination thereof. In another embodiment, network interface 180 includes a wireless communication interface, and network channel 182 includes a Wi-Fi channel, a near field communication (NFC) channel, or a Bluetooth low energy (BLE) channel, a cellular-based interface (such as a Global System for Mobile Communications (GSM) interface, a Code Division Multiple Access (CDMA) interface, a Universal Mobile Telecommunications System (UMTS) interface, a Long Term Evolution (LTE) interface, or other cellular-based interface), or a combination thereof. Network channel 182 may be connected to an external network resource (not shown). The network resource may include another information handling system, a data storage system, another network, a grid management system, another suitable resource, or a combination thereof.

[0032] BMC 190 is connected to a plurality of components of information handling system 100 via one or more management interfaces 192 to provide out-of-band monitoring, maintenance, and control of the components of the information handling system. Thus, BMC 190 represents a processing device different from processors 102 and 104 that provides various management functions for information handling system 100. For example, BMC 190 may be responsible for power management, cooling management, etc. The term BMC is typically used in the context of server systems, and in consumer-grade devices, the BMC may be referred to as an embedded controller (EC). The BMC included in a data storage system may be referred to as a storage enclosure processor. The BMC included at the chassis of a blade server may be referred to as a chassis management controller, and the embedded controller included at the blade of a blade server may be referred to as a blade management controller. The capabilities and functions provided by BMC 190 may vary significantly based on the type of information handling system. BMC 190 may operate according to the Intelligent Platform Management Interface (IPMI). Examples of BMC 190 include integrated remote access controller (iDRAC).

[0033] The management interface 192 represents one or more out-of-band communication interfaces between the BMC 190 and components of the information handling system 100, and may include an Inter-Integrated Circuit (I 2 C) bus, a System Management Bus (SMBUS), a Power Management Bus (PMBUS), a Low Pin Count (LPC) interface, a serial bus such as a Universal Serial Bus (USB) or Serial Peripheral Interface (SPI), a network interface such as an Ethernet interface, a high-speed serial data link such as a PCIe interface, a Network Controller Sideband Interface (NC-SI), etc. As used herein, out-of-band access refers to operations that are performed separately from the BIOS / operating system execution environment on the information handling system 100, i.e., separate from the code executed by the processors 102 and 104 and the processes implemented on the information handling system in response to the executed code.

[0034] The BMC 190 operates to monitor and maintain system firmware as needed or desired, such as code stored in the BIOS / EFI module 142, an optional ROM of the graphics adapter 130, the disk controller 150, the expansion resources 174, the network interface 180, or other components of the information handling system 100. Specifically, the BMC 190 includes a network interface 194, which may be connected to a remote management system as needed or desired to receive firmware updates. Here, the BMC 190 receives a firmware update, stores the update in a data storage device associated with the BMC, transfers the firmware update to the NV-RAM of the device or system that is the object of the firmware update, thereby replacing the currently operating firmware associated with the device or system, and reboots the information handling system, whereupon the device or system utilizes the updated firmware image.

[0035] The BMC 190 utilizes various protocols and application programming interfaces (APIs) to direct and control the processes for monitoring and maintaining system firmware. As needed or desired, examples of protocols or APIs for monitoring and maintaining system firmware include a graphical user interface (GUI) associated with the BMC 190, interfaces defined by the Distributed Management Task Force (DMTF) (such as a Web Services Management (WSMan) interface, a Management Component Transport Protocol (MCTP), or an interface), various vendor-defined interfaces (such as the Dell EMC Remote Access Controller Administrator (RACADM) utility, Dell EMC OpenManage Enterprise, Dell EMC OpenManage Server Administrator (OMSA) utility, Dell EMC OpenManage Storage Services (OMSS) utility, or Dell EMC OpenManage Deployment Toolkit (DTK) suite), a BIOS setup utility invoked by the "F2" boot option, or another protocol or API.

[0036] In certain embodiments, BMC 190 is included on the main circuit board of information handling system 100 (such as a substrate, motherboard, or any combination thereof), or integrated onto another element of the information handling system (such as chipset 110) as needed or desired, or onto another suitable element. Thus, BMC 190 can be part of an integrated circuit or chipset within information handling system 100. Examples of BMC 190 include iDRAC and the like. BMC 190 can operate on a power plane separate from other resources in information handling system 100. Thus, when the resources of information handling system 100 are powered off, BMC 190 can communicate with the management system via network interface 194. Here, information can be sent from the management system to BMC 190, and the information can be stored in RAM or NV-RAM associated with the BMC. Information stored in RAM may be lost after the power plane of BMC 190 is powered off, while information stored in NV-RAM can be preserved through power-on / off cycles of the BMC's power plane.

[0037] Information handling system 100 may include additional components and additional buses, which are not shown for clarity. For example, information handling system 100 may include multiple processor cores, audio devices, and the like. Although a particular arrangement of bus technologies and interconnections is shown for purposes of example, those skilled in the art will understand that the techniques disclosed herein can be applied to other system architectures. Information handling system 100 may include multiple central processing units (CPUs) and redundant bus controllers. One or more components may be integrated together. Information handling system 100 may include additional buses and bus protocols, such as I 2 C and the like. Additional components of information handling system 100 may include one or more storage devices that can store machine-executable code, one or more communication ports for communicating with external devices, and various input and output (I / O) devices (such as a keyboard, mouse, and video display).

[0038] For purposes of this disclosure, an information handling system 100 can include any tool or collection of tools operable to compute, classify, process, transmit, receive, retrieve, originate, transform, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, the information handling system 100 can be a personal computer, laptop computer, smart phone, tablet device, or other consumer electronic device, a network server, network storage device, switch, router, or another network communication device, or any other suitable device, and can vary in size, shape, performance, functionality, and price. Additionally, the information handling system 100 can include processing resources for executing machine-executable code, such as a processor 102, a programmable logic array (PLA), an embedded device such as a system-on-chip (SoC), or other control logic hardware. The information handling system 100 can also include one or more computer-readable media for storing machine-executable code such as software or data.

[0039] Conventional user interface (UI) testing is done manually by human testers who can perform a set of operations to verify that the UI is operating correctly. Automated UI testing is more efficient. However, typical UI automation testing of menus uses a predefined menu map. Using the predefined menu map, an automation testing library can compute the path to a target item and generate a series of ordered navigation instructions. But if the cursor is not in the correct starting position in the menu, the path can break, which can occur during regression testing. Additionally, the predefined menu map lacks flexibility. For example, if an element is added to or removed from the menu, the predefined menu map is broken and may need to be updated. This is a problem because menus typically change during the development process. To address these and other issues, the present disclosure provides a system and method for menu navigation based on key nodes. This allows for UI menu automation testing without using a predefined map. This allows elements to be added and subtracted from the menu without the tester having to update the test cases. Thus, the present disclosure improves the technical field associated with UI automation testing by improving the software-based ability to verify that the UI is operating correctly while minimizing updates to test cases for menu changes.

[0040] Figure 2An environment 200 for automated menu testing is shown. The environment 200 includes a host 205, a test machine 220, and a display 225. The display 225 includes a target menu 230 and a frame buffer 240. The frame buffer 240 includes a text space 245, a foreground space 250, and a background space 255. The host 205 is communicatively coupled to the test machine 220 via at least one connection or interface, such as a communication interface 260. Similarly, the test machine 220 can be communicatively coupled to the display 225 via at least one connection or interface, such as a communication interface 265. One or both of the communication interfaces 260 and 265 can be a serial interface, a network interface, or a similar interface. In one example, the communication interfaces 260 and / or 265 can be IEEE 1394, USB, etc., where data packets can be sent via a serial stream. Although Figure 2 only one test machine 220 is shown, it should be understood that the host 205 can support a large number of test machines. In addition, both the host 205 and the test machine 220 can be similar to Figure 1 the information handling system 100.

[0041] The host 205 can include a test engine 210 configured to send instructions to the test machine 220 to control the operation of the test machine 220. For example, the test engine 210 can send at least one instruction or test case in a test suite 215 to the test machine 220 to control how to move the position of a cursor on the target menu 230 displayed at the display 225. The display 225 can be any suitable system, device, or equipment configured to display alphanumeric data, images, video content, and / or a graphical user interface on a display screen. The display 225 can include any type of light-emitting diode (LED), organic LED (OLED), liquid crystal display (LCD), electroluminescent (EL), or other display technology. The frame buffer 240 of the memory can be divided into three separate spaces or buffers, which include a text space 245, a foreground space 250, and a background space 255. The text space 245 can be used to store text data. The foreground space 250 can be used to store foreground data. The background space 255 can be used to store background data. The background, foreground, and text image data can be used as overlay image planes to generate image data output to the display 225 of the test machine 220. Each position and text data in the target menu can be associated with a background color and a foreground color. Although the display 225 is shown as separate from the test machine 220, the display 225 can be integrated into the test machine 220. In addition, the frame buffer 240 can also be part of the test machine 220.

[0042] The target menu 230 can be a menu in an interface or sub-interface of an application. For example, the target menu 230 can be similar to Figure 7The target menu 700. The test suite provided by the test management system may include test case suites for navigating the target menu 230, detecting key nodes, selecting options in the target menu 230, detecting the selection of options, etc. It should be understood that each test case may include at least one or a combination of test steps. Control keys including navigation keys can be used to traverse the target menu 230, and the navigation keys are also referred to as arrow keys. For example, to navigate the target menu 230 horizontally, the "left" or "right" keys can be used, and to navigate the target menu 230 vertically, the "up" or "down" keys can be used. For example, when using the "up" arrow on the keyboard, the highlighted area of the target menu 230 can move to the next area above the current position of the highlighted area. Similarly, when using the "down" arrow on the keyboard, the highlighted area can move to the next area below the current position of the highlighted area. The control keys can also be used to perform operations when navigating the target menu 230. For example, the "Ctrl+F5" key can be used to refresh the target menu 230, and the "escape" key can be used to exit the target menu 230. In another example, the "F1" control key can be used to enable the help menu. In yet another example, the "enter" key can be used to move the focus between elements. Additionally, other control keys can be user-defined.

[0043] Those of ordinary skill in the art will understand that Figure 2 the configuration, hardware, and / or software components of the depicted environment 200 may vary. For example, the illustrative components within the environment 200 are not intended to be exhaustive but are representative to highlight components that can be used to implement aspects of the present disclosure. For example, other devices and / or components may be used in addition to or in place of the depicted devices / components. The depicted examples do not convey or imply any architectural or other limitations regarding the presently described embodiments and / or the general disclosure. In the discussion of the figures, for the sake of continuity of description, reference may also be made to components shown in other figures.

[0044] Figure 3 A flowchart of a method 300 for automated menu testing is shown. The method 300 can be configured to match text, foreground color, and background color with target elements in a target menu by using key-node-based menu navigation. A key node is a menu element that can be identified and / or accessed when navigating the target menu. Since directions such as whether moving in the vertical or horizontal direction can be bound to key nodes, the method 300 implements a simple and flexible way to navigate the target menu. The method 300 can be performed by Figure 2 one or more components of the environment 200 (such as the test engine 210). Although embodiments of the present disclosure are in accordance with Figure 2described in an environment 200, it should be recognized that other systems can be utilized to perform the described methods.

[0045] Method 300 generally begins at block 305, where a test machine receives a target menu for testing. The method proceeds to block 310, where a refresh page control key can be used to refresh the target menu. The target menu (such as a BIOS setup menu) can be presented in an American National Standards Institute (ANSI)-compatible display via a serial stream. Since changes in content can be streamed through a serial interface, the target menu is generally not refreshed during navigation. Thus, the method can trigger a refresh of the target menu using a refresh control key (such as the "F1" key), such that all elements in the target menu can be updated, which can also place the cursor at the starting point of the target menu. The method proceeds to block 305.

[0046] At block 315, the method can receive an update (if any) based on changes to one or more elements of the target menu. The changes can be based on the refresh of the target menu page applied at block 310. The changes can also be based on the application of control keys, such as at block 360. The method proceeds to block 320, where data associated with the target menu includes the update (if any), which can be stored in a frame buffer. The frame buffer can be configured to interpret an ANSI character stream as a frame. The frame buffer can be initialized for an entire page, such as during a refresh. Additionally, the frame buffer can be updated by an incremental stream of content. Once the frame buffer is initialized and / or updated, the frame buffer can be decomposed into three spaces: a text space, a foreground space, and a background space. Changes to the target menu or cursor position can be reflected in the three spaces.

[0047] The information in the foreground space and the background space provides more detail than a snapshot image of the target menu. For example, the foreground space includes a foreground color associated with the text. The background space includes a background color associated with the text. The information, along with the expected text, can be used to navigate the target menu to reach a target location, rather than simply using the expected text and / or a menu map. For example, the additional information can help determine the position of the cursor, which items are non-selectable, whether these items are in the top menu, etc. The method can proceed to blocks 325, 330, and 335.

[0048] At block 325, the method can extract text from the text space in the frame buffer, as Figure 8 shown. At block 330, the method can extract foreground information from the foreground space in the frame buffer, as Figure 9 depicted. At block 335, the method can extract background information from the background space in the frame buffer, as Figure 10as depicted. The method can proceed to block 340.

[0049] At block 340, the method can perform test steps as part of a test case in a test suite. Specifically, the method can perform blocks 345, 350, 355, and 360. For example, block 340 can be a test step that includes matching a key node with the current content, where the key node includes expected text, background color, and foreground color. Specifically, the method can use a regular expression pattern to match the content in the text space, foreground space, and background space, such as Figure 6 as depicted in Table 600. In one example, a test step can be represented as a row in Table 600. The test steps can be executed to capture elements in a target menu, such as selected items, displayed items, pop-up windows, etc.

[0050] At block 345, the method can use a regular expression to match the extracted text with the expected text. At block 350, the method can use a regular expression pattern to match the current foreground color with the expected foreground color. At block 355, the method can use a rule pattern expression to match the current background color with the expected background color. The method can proceed to decision block 370.

[0051] At decision block 370, the method can determine whether the extracted text, foreground color, and background color match the expected text, foreground color, and background color at blocks 345, 350, and 355. If the current text, foreground color, and background color match the expected text, foreground color, and background color, then take the "yes" branch, and the method proceeds to block 390. If the current text, foreground color, and background color do not match the expected text, foreground color, and background color, then take the "no" branch, and the method proceeds to decision block 375. At block 390, the method can mark the test step as successful. Information associated with the test step can be recorded. If all the test steps of a test case are recorded as successful, then the test case is successful. The method can proceed to decision block 385.

[0052] At decision block 375, the method can determine whether the maximum retry count threshold has been exceeded. If the maximum retry count has been reached, then take the "yes" branch, and the method can proceed to block 380. If the maximum retry count has not been reached, then take the "no" branch, and the method can proceed to block 360.

[0053] At block 360, the method can apply a control key as indicated in a test step or test case. For example, the method can apply a horizontal or vertical navigation key. Specifically, the method can apply a left key, a right key, an up key, or a down key. In another example, the method can apply an exit key. The method can proceed to block 365. At block 365, the method can apply menu navigation logic, which is shown in detail in Figure 4 The method can proceed to block 315.

[0054] At block 380, the method can mark the test case as failed and record an error message. A test case fails if at least one of the test steps in the test step fails. The method can proceed to decision block 385. At decision block 385, the method can determine whether the test case is the last test case of a test suite. If the test case is the last test case of a test suite, the "yes" branch will be taken and the method ends. If the test case is not the last test case of a test suite, the "no" branch is taken and the method proceeds to block 310.

[0055] Figure 4 A flowchart of method 400 is shown, which is a more detailed illustration of block 365 of Figure 3 method 300. Method 400 can be configured to act as a feedback loop that allows continued sending of control keys until a target menu item is reached, which completes the test case or the cursor stops horizontally or vertically at the end of the menu, where the maximum number of retries has been reached. Method 400 can be configured to navigate a non-circular menu. In a circular menu, when the cursor reaches the end of the target menu by horizontal or vertical movement, the cursor can navigate back to the beginning of the menu. However, in a non-circular menu, the cursor may get stuck at the end of the target menu. Therefore, the maximum number of retries can be used to identify whether the cursor has gotten stuck at the end of the target menu. In a test case, the maximum number of retries can be a predefined threshold. Each target element in the menu can be associated with a different threshold.

[0056] Method 400 generally begins at block 405, where the method can determine the control key to apply based on the test case being processed, such as Figure 5Depicted in the direction column of Table 500. The method may proceed to decision box 410. At decision box 410, the method determines whether the control key is a navigation key. If the control key is a navigation key, the "yes" branch is taken and the method proceeds to decision box 420. If the control key is not a navigation key, the "no" branch is taken and the method proceeds to box 415. At box 415, the control key can be applied. The control key can be a single key or a combination of keys suitable for performing an action. Examples of control keys can include the Ctrl, Alt, Esc keys or similar keys. The method may proceed to box 455. According to decision box 420, the method can determine whether the direction associated with the navigation key is horizontal. If the direction of the navigation key is horizontal, the method proceeds to decision box 425. If the direction of the navigation key is not horizontal, the method proceeds to decision box 430.

[0057] At decision box 425, the method can determine whether the navigation key is the left arrow key. If the navigation key is the left arrow key, the "yes" branch is taken and the method proceeds to box 450 where the left arrow key is applied. If the navigation key is not the left arrow key, the "no" branch is taken and the method proceeds to box 445 where the right arrow key is applied. The method may proceed to box 455. At decision box 430, the method can determine whether the navigation key is the up arrow key. If the navigation key is the up arrow key, the "yes" branch is taken and the method proceeds to box 440 where the up arrow key is applied. If the navigation key is not the up arrow key, the "no" branch is taken and the method can proceed to box 435 where the down arrow key can be applied. The method may proceed to box 455.

[0058] At box 455, the method can determine the current combination of text, foreground color, and background color. The method can compare the current combination of text, foreground color, and background color with the previous combination of text, foreground color, and background color. If this box is included in the first step of a test case, the previous combination of text, foreground color, and background color may have been initialized to a value at the start of the test case, and the number "K" may have been set to the predefined maximum number of retries for the current test case. Each test case can have a different predefined maximum number of retries. Additionally, at the start of the test case, a counter may have been set to zero. The method may proceed to decision box 470.

[0059] At decision block 470, the method can determine whether the combination of text, foreground color, and background color is invariant K times. If the combination of text, foreground color, and background color is invariant K times, the "yes" branch is taken and the method proceeds to block 475. If the combination of text, foreground color, and background color has changed, the "no" branch is executed and the method can end. At block 475, the method can update the previous combination with the current combination of text, foreground color, and background color. Additionally, the current value of a counter can be incremented by 1. The method can loop back to decision block 410.

[0060] Figure 5 Table 500 showing automated menu testing is presented. Each row in Table 500 can be a key node having columns text, foreground color, background color, and direction as its attributes. Each row can also depict a test step. Table 500 also includes a column purpose associated with navigating to each key node. Each key node can have one or more of several attributes, including a text string, a foreground color code, a background color code, and a navigation direction. The direction can be horizontal or vertical. Horizontal can be left or backward. Vertical can be up or down. The control key is one of an exit key, an enter key, an up key, a down key, a left key, and a right key. The control key can also be defined by the user according to an operation guide.

[0061] Figure 6 Table 600 showing the mapping of colors to color codes is presented. The mapping can be used to identify the foreground color and background color associated with a target menu. Referring to the first row of Table 500, the expected key node includes the text "Server Management" with a foreground color of blue and a background color of dark gray. The test case can apply horizontal keys until the current combination of text, foreground color, and background color matches the attributes of the expected key node.

[0062] Figure 7 An example of a target menu 700 is presented, where the current cursor is located at the top menu element "Main". The element "Main" can be the initial position of the cursor when refreshing the target menu. The arrow indicates the horizontal direction in which the cursor should move to reach the element "Server Management" depicted in the first row of Table 500, and this movement can also be the first step of the test case. Based on the number of top menu elements, the maximum number of retries can be set to at least seven times because it takes six presses of the right arrow key to reach the element "Server Management".

[0063] Figure 8 A text space 800 including text associated with a target menu is presented. Figure 9 A foreground space 900 including a foreground color code associated with a target menu is presented. Figure 10Shows a background space 1000 including a background color code associated with a target menu. Thus, based on Figure 6 , Figure 8 , Figure 9 and Figure 10 , the current position of the cursor has the text "Main" combined with a blue foreground color and a dark gray background color. The current combination is not equal to the expected combination shown in the first row of Table 500. Therefore, the cursor can be moved until the expected combination is equal to the current combination of text, foreground color, and background color or the maximum number of retries is reached.

[0064] Figure 11 Shows a target menu 700 where the cursor is at the top menu element "Advanced" after the right horizontal key has been applied. The right key may have been applied based on the first row of Table 500. Thus, the cursor moves to the top right menu element next to the "Main" top menu element. Figure 12 Shows a target menu 700 having a current combination associated with the cursor for the text "FRB-2 Timer" with a white foreground color and a dark gray background color as depicted respectively in Figure 13 , Figure 14 and Figure 15 . In this example, Figure 13 shows the text in the text space 1300 associated with the target menu 700 as depicted in Figure 12 , while Figure 14 shows a foreground space 1400 including a foreground color code associated with the target menu 700, and Figure 15 shows a background space 1500 including a background color code associated with the target menu 700. Additionally, the text associated with an element can identify whether the element is selectable or unselected. For example, the "+" associated with the text element "Enabled" indicates that this text element is selectable. The test case can also first test this property, as depicted in the third row of Table 500 in Figure 5 , and subsequently perform a fourth test step based on the fourth row.

[0065] Figure 16 Shows a target menu 700 where the submenu associated with the text "FRB-2 Timer" is selected. Figure 16 The arrow depicted in Figure 17 shows that the vertical key has been applied. Figure 16 Shows a text space 1700 including the text associated with the target menu 700 as depicted in Figure 18 shows a foreground space 1800 including a foreground color code associated with the target menu 700 and Figure 19 shows a background space 1900 including a background color code associated with the target menu 700.

[0066] Although the cursor is described as being located at the default starting position of a test case in a test suite, there may be cases where the cursor can be located at a non-default position. For example, the cursor can be located at the top menu element "Advanced" instead of starting at the top menu element "Main". However, based on Figure 5 the first row depicted in Table 500, the cursor can be moved horizontally to the right, and with each move, the current combination of attributes associated with the cursor's position can be compared with the expected attributes of a key node. Thus, the cursor can be moved five times to reach the top menu element "Server Management", which is below the maximum number of retries set for the above-mentioned test step. Therefore, the test case may be successful without modifying the test case for the scenario.

[0067] While Figure 3 and Figure 4 show exemplary blocks of Methods 300 and 400 in some embodiments, Methods 300 and 400 can include additional blocks, fewer blocks, different blocks, or blocks arranged in a different manner compared to those depicted in Figure 3 and Figure 4 . Those skilled in the art will understand that the principles presented herein can be implemented in any suitably arranged processing system. Additionally or alternatively, two or more of the blocks of Methods 300 and 400 can be executed in parallel. For example, blocks 325, 330, and 335 of Method 300 can be executed in parallel.

[0068] According to various embodiments of the present disclosure, the methods described herein can be implemented by software programs executable by a computer system. Additionally, in exemplary non-limiting embodiments, the implementations can include distributed processing, component / object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionalities described herein.

[0069] When referred to as "devices", "modules", "units", "controllers", etc., the embodiments described herein can be configured as hardware. For example, a portion of an information handling system device can be hardware, such as an integrated circuit (such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a structured ASIC, or a device embedded on a larger chip), a card (such as a peripheral component interface (PCI) card, a PCI Express card, a personal computer memory card, an international association (PCMCIA) card, or other such expansion cards), or a system (such as a motherboard, a system-on-chip (SoC), or a stand-alone device).

[0070] The present disclosure contemplates a computer-readable medium that includes instructions or receives and executes instructions responsive to a propagated signal such that a device connected to a network can communicate voice, video, or data over the network. Additionally, instructions can be transmitted or received over the network via a network interface device.

[0071] Although the computer-readable medium is shown as a single medium, the term "computer-readable medium" includes a single medium or multiple media (such as a centralized or distributed database and / or associated caches and servers) that store one or more sets of instructions. The term "computer-readable medium" should also include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by a processor or that causes a computer system to perform any one or more of the methods or operations disclosed herein.

[0072] In a particular non-limiting, exemplary embodiment, the computer-readable medium can include solid-state memory such as a memory card, or other encapsulations that house one or more non-volatile read-only memories. Additionally, the computer-readable medium can be random access memory or other volatile, rewritable memory. Further, the computer-readable medium can include magneto-optical or optical media (such as a disk or tape) or another storage device to store information received via a carrier signal (such as a signal transmitted through a transmission medium). Digital file attachments of e-mails or other standalone information archives or sets of archives can be considered a distribution medium equivalent to a tangible storage medium. Accordingly, the present disclosure is considered to include any one or more of a computer-readable medium or distribution medium in which data or instructions can be stored, as well as other equivalents and successor media.

[0073] Although only a few exemplary embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications may be made to the exemplary embodiments without materially departing from the novel teachings and advantages of the embodiments of the present disclosure. Accordingly, all such modifications are intended to be included within the scope of the embodiments of the present disclosure as defined in the following claims. In the claims, the apparatus-plus-function clauses are intended to cover the structures that perform the recited function herein, including not only structural equivalents but also equivalent structures.

Claims

1. A method, comprising: After initializing a frame buffer associated with a menu by a processor, decomposing the content of the frame buffer into a text space, a foreground space, and a background space; Using control keys to navigate the menu to a key node, where the key node includes expected text and expected attributes; and Matching the text and attributes of a current element with the expected text and the expected attributes, where the text is from the text space, and where the attributes are a foreground color from the foreground space or a background color from the background space.

2. The method according to claim 1, wherein the control keys include navigation keys.

3. The method according to claim 1, wherein the key node is associated with the control keys.

4. The method according to claim 1, further comprising applying the control keys if the attributes of the current element do not match the expected attributes of the key node.

5. The method according to claim 4, after applying the control keys, determining whether a maximum retry count has been reached.

6. The method according to claim 1, wherein the control keys are applied until the key node is reached or the maximum retry count is reached.

7. The method according to claim 1, wherein the matching of the text and the attributes is performed using a regular expression.

8. The method according to claim 1, wherein the matching of the text and the attributes of the current element includes matching both the expected background color and the expected foreground color with the background color and the foreground color associated with the current element.

9. An information handling system, comprising: A processor; And A memory storing instructions that, when executed, cause the processor to perform operations including the following: After initializing a frame buffer associated with a menu, decomposing the content of the frame buffer into a text space, a foreground space, and a background space; Using control keys to navigate the menu to a key node, where the key node includes expected text and expected attributes; and Matching the text and attributes of a current element with the expected text and the expected attributes, where the text is from the text space, and where the attributes are a foreground color from the foreground space or a background color from the background space.

10. The information handling system according to claim 9, wherein the control keys include navigation keys.

11. The information handling system according to claim 9, wherein the key node is associated with the control keys.

12. The information handling system according to claim 9, wherein the operations further include applying the control keys if the attributes of the current element do not match the expected attributes of the key node.

13. The information handling system according to claim 12, after applying the control keys, determining whether a maximum retry count has been reached.

14. The information handling system according to claim 12, wherein the control keys are applied until the key node is reached or the maximum retry count is reached.

15. A non - transitory computer - readable medium for storing instructions that are executable to perform operations including the following: After initializing a frame buffer associated with a menu, decomposing the content of the frame buffer into a text space, a foreground space, and a background space; Using control keys to navigate the menu to a key node, where the key node includes expected text and expected attributes; and Matching the text and attributes of a current element with the expected text and the expected attributes, where the text is from the text space and where the attributes are a foreground color from the foreground space or a background color from the background space.

16. The non - transitory computer - readable medium according to claim 15, wherein the control keys include navigation keys.

17. The non - transitory computer - readable medium according to claim 15, wherein the key node is associated with the control keys.

18. The non - transitory computer - readable medium according to claim 15, further comprising applying the control keys if the attributes of the current element do not match the expected attributes of the key node.

19. The non - transitory computer - readable medium according to claim 15, after applying the control keys, determining whether a maximum number of retry attempts has been reached.

20. The non - transitory computer - readable medium according to claim 19, wherein the control keys are applied until the key node is reached or the maximum number of retry attempts is reached.