WO2025009641A1 - 코드 테스트 지원 방법 및 전자 장치 - Google Patents
코드 테스트 지원 방법 및 전자 장치 Download PDFInfo
- Publication number
- WO2025009641A1 WO2025009641A1 PCT/KR2023/009749 KR2023009749W WO2025009641A1 WO 2025009641 A1 WO2025009641 A1 WO 2025009641A1 KR 2023009749 W KR2023009749 W KR 2023009749W WO 2025009641 A1 WO2025009641 A1 WO 2025009641A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- code
- test
- target code
- reference image
- image
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3608—Analysis of software for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Definitions
- Embodiments of the present specification relate to a method and an electronic device for supporting code testing. More specifically, embodiments of the present specification relate to a method and a device for supporting code testing by comparing an image generated based on a code test with a reference image.
- the present disclosure has been proposed to solve the above-described problems, and provides a method and an electronic device to support code testing.
- the present disclosure provides a device that verifies test case information, verifies a reference image corresponding thereto, and then compares a test image generated based on a test target code with the reference image to generate control information on whether to merge the target code into the reference code.
- a method for supporting code testing in an electronic device may include: a step of confirming a pull request for a target code to be the code test; a step of confirming test case information for the code test; a step of confirming a reference image corresponding to the test case information; a step of confirming a test image generated based on the target code according to the test case information in response to the pull request; a step of confirming a comparison result between the reference image and the test image; and a step of generating control information on whether to merge the target code into the reference code based on the comparison result.
- the above reference image may include a basic reference image generated based on the target code according to the test case information and a temporary reference image generated based on the temporary code according to the test case information.
- a method for supporting code testing in an electronic device may further include a step of generating a base reference image generated based on a new reference code into which the target code is merged.
- the step of verifying the above test image may include the step of generating the test image based on a reference code that merges the target code into the reference code through a test server, and verifying the test image.
- the step of generating control information on whether to merge the target code into the reference code may include the step of passing the pull request if the comparison results are the same, and the step of generating control information on whether to merge the target code into the reference code.
- the step of generating control information on whether to merge the target code into the reference code may include the step of generating a control signal requesting confirmation of the target code from the worker terminal if the comparison results are not identical, and the step of generating control information on whether to merge the target code into the reference code based on the request.
- the step of generating control information on whether to merge the target code into the reference code based on the request may include the steps of: receiving a response to the request; passing the pull request if the difference between the reference image and the test image is less than a threshold value; and generating control information on whether to merge the target code into the reference code.
- the step of generating control information on whether to merge the target code into the reference code may include the step of generating a control signal requesting confirmation of the target code from the worker terminal if the comparison results are not identical, and the step of generating control information on whether to merge the target code into the reference code based on the request.
- the step of generating control information on whether to merge the target code into the reference code based on the request may include the steps of: receiving a response to the request; passing the pull request if the difference between the reference image and the test image is less than a threshold value; and generating control information on whether to merge the target code into the reference code.
- the step of generating control information on whether to merge the target code into the reference code based on the request may include: the step of receiving a response to the request; the step of blocking the pull request if the difference between the reference image and the generated test image is greater than or equal to a threshold value; the step of transmitting a control signal on a request for modification of the test code to a worker terminal; the step of passing the modified pull request if the difference between the reference image and the modified test image is less than the threshold value based on the response to the modification request; and the step of generating control information on whether to merge the target code into the reference code.
- a method for supporting code testing in an electronic device may further include a step of merging the target code based on the control information, and a step of dropping the temporary reference image included in the reference image if the reference image includes a temporary reference image.
- the step of verifying the above comparison result may include a step of verifying the comparison result between a basic reference image generated based on the target code and a test image generated based on the target code, if the reference image does not include a temporary reference image.
- An electronic device supporting a code test may include: a transceiver; a storage for storing one or more commands; and a processor configured to verify a pull request for a target code to be a target of the code test, verify test case information for the code test, verify a reference image corresponding to the test case information, verify a test image generated based on the target code according to the test case information in response to the pull request, verify a comparison result of the reference image and the test image, and generate control information on whether to merge the target code into the reference code based on the comparison result.
- a recording medium according to the third aspect of the present disclosure may be a non-transitory computer-readable recording medium having recorded thereon a program for execution on a computer.
- an electronic device when supporting a code test, can check test case information, check a reference image corresponding thereto, check a test image generated based on a target code for which a pull request has been received, compare the test image with the reference image, and then generate control information on whether to merge the target code into the reference code.
- the electronic device can further reduce the weight of the code test support system by discarding a temporary reference image included in the reference image after the target code is merged into the reference code.
- Figure 1 illustrates a system according to one embodiment.
- FIG. 2 is a diagram illustrating the concept of a method for supporting code testing according to one embodiment.
- FIG. 3 is a diagram illustrating an embodiment of performing error tracing in a method supporting code testing according to one embodiment.
- FIG. 4 is a flowchart illustrating a method for supporting code testing according to one embodiment.
- FIGS. 5A and 5B are flowcharts specifically describing a system supporting code testing according to one embodiment.
- FIG. 6 is a block diagram schematically illustrating an electronic device supporting code testing according to one embodiment.
- the "terminal” mentioned below may be implemented as a computer or portable terminal capable of connecting to a server or other terminal via a network.
- the computer includes, for example, a notebook, desktop, laptop, etc. equipped with a WEB Browser
- the portable terminal may include, for example, a wireless communication device that ensures portability and mobility, such as a communication-based terminal such as IMT (International Mobile Telecommunication), CDMA (Code Division Multiple Access), W-CDMA (W-Code Division Multiple Access), LTE (Long Term Evolution), and all kinds of handheld-based wireless communication devices such as a smartphone, tablet PC, etc.
- IMT International Mobile Telecommunication
- CDMA Code Division Multiple Access
- W-CDMA Wide-Code Division Multiple Access
- LTE Long Term Evolution
- handheld-based wireless communication devices such as a smartphone, tablet PC, etc.
- each block of the processing flow diagrams and combinations of the flow diagrams can be performed by computer program instructions.
- These computer program instructions can be loaded onto a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing equipment, so that the instructions executed by the processor of the computer or other programmable data processing equipment create a means for performing the functions described in the flow diagram block(s).
- These computer program instructions can also be stored in a computer-available or computer-readable memory that can be directed to a computer or other programmable data processing equipment to implement the function in a specific manner, so that the instructions stored in the computer-available or computer-readable memory can also produce a manufactured article including an instruction means for performing the functions described in the flow diagram block(s).
- the computer program instructions may be installed on a computer or other programmable data processing apparatus, a series of operational steps may be performed on the computer or other programmable data processing apparatus to produce a computer-executable process, so that the instructions executing the computer or other programmable data processing apparatus may also provide steps for executing the functions described in the flowchart block(s).
- each block may represent a module, segment, or portion of code that contains one or more executable instructions for performing a particular logical function(s). It should also be noted that in some alternative implementation examples, the functions mentioned in the blocks may occur out of order. For example, two blocks shown in succession may in fact be performed substantially concurrently, or the blocks may sometimes be performed in reverse order, depending on the functionality they perform.
- Figure 1 illustrates a system according to one embodiment.
- the system may include at least one of an electronic device (100), a worker terminal (120), a database (140), and a network (160).
- the system illustrated in FIG. 1 only illustrates components related to the present embodiment. Therefore, it will be understood by those skilled in the art related to the present embodiment that other general-purpose components may be further included in addition to the components illustrated in FIG. 1.
- the electronic device (100) is a device that configures and provides various information.
- the electronic device (100) can provide the configured information as a web page or application screen, or can provide the information in a form that can be displayed as a web page or application screen, etc. on a terminal that receives the information.
- the electronic device (100) can convert log data that the worker wants to check into a set type and store it in a database (140).
- the electronic device (100) may receive a pull-up request for a test target code for modifying an application from a worker terminal (120) for an application that is a target of a task, and may obtain test case setup information for performing a test case for the application through a database (140).
- the test case setup information obtained through the database (140) may be used in the process in which the electronic device (100) obtains a result for the test case.
- the electronic device (100) may check log data including information according to the execution of the application obtained based on a code regarding log data including information about access to the database (140), and may store one or more raw data including the log data in the database (140). Thereafter, the electronic device (100) may check at least one raw data including set identification information among the one or more raw data, and may convert the type of at least one log data included in the at least one raw data and store it in the database (140).
- the worker terminal (120) can more conveniently check log data corresponding to a specific field by using the worker terminal (120) used by the worker. For example, the worker can provide a code regarding the log data to be checked through the worker terminal (120). In addition, the worker can check the log data stored in the database (140) by using the worker terminal (120).
- the database (140) can freely perform functions such as storing, searching, deleting, editing, or adding data.
- the database (140) can include fields or components for processing functions such as storing, searching, deleting, editing, or adding data.
- the database (140) can store log data including information according to the execution of an application, one or more raw data including log data, and log data converted into a set type.
- FIG. 1 illustrates that the database (140) exists outside the electronic device (100), this is only an example, and the database (140) may be included in the electronic device (100).
- the database (140) may include one or more sub-databases, and each of the one or more sub-databases may store log data including information according to the execution of the application, one or more raw data including the log data, and log data converted into a set type.
- the electronic device (100) and the database (140) may be logically distinguished on a cloud infrastructure that provides computing resources and networking functions necessary for the execution and management of the application, and may be implemented to be able to communicate with each other through a networking protocol on the cloud infrastructure.
- the worker terminal (120), the database (140), and the electronic device (100) can communicate with each other within the network (160).
- the network (160) includes a Local Area Network (LAN), a Wide Area Network (WAN), a Value Added Network (VAN), a mobile radio communication network, a satellite communication network, and a combination thereof, and is a comprehensive data communication network that allows each network component illustrated in FIG. 1 to communicate smoothly with each other, and may include wired Internet, wireless Internet, and a mobile radio communication network.
- Wireless communication may include, but is not limited to, wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy, Zigbee, WFD (Wi-Fi Direct), UWB (ultra wideband), infrared communication (IrDA, infrared Data Association), NFC (Near Field Communication), etc., for example.
- Wi-Fi wireless LAN
- Bluetooth Bluetooth low energy
- Zigbee Wi-Fi Direct
- UWB ultra wideband
- IrDA infrared Data Association
- NFC Near Field Communication
- Each of the electronic device (100) and the worker terminal (120) may include a transceiver, storage, and a processor.
- each of the electronic device (100) and the worker terminal (120) means a unit that processes at least one function or operation, and this may be implemented by hardware or software, or a combination of hardware and software.
- each of the electronic device (100) and the worker terminal (120) is referred to as a separate device or server, but this may be a logically divided structure, and at least some of them may be implemented by a separate function in one device or server.
- the electronic device (100) and the worker terminal (120) may include a plurality of computer systems or computer software implemented as network servers.
- the electronic device (100) and the worker terminal (120) may refer to a computer system and computer software that are connected to a lower device that can communicate with another network server through a computer network such as an intranet or the Internet, receive a task execution request, perform the task for the request, and provide the execution result.
- at least some of the electronic device (100) and the worker terminal (120) may be understood as a broad concept that includes a series of application programs that can operate on a network server, and various databases built on internal or connected other nodes.
- at least some of the electronic device (100) and the worker terminal (120) may be implemented using a network server program that is provided in various ways according to an operating system such as DOS, Windows, Linux, UNIX, or MacOS.
- the electronic device (100) and the worker terminal (120) can communicate with each other through the network (160).
- the network (160) includes a Local Area Network (LAN), a Wide Area Network (WAN), a Value Added Network (VAN), a mobile radio communication network, a satellite communication network, and a combination thereof, and is a comprehensive data communication network that allows the constituents of each network (160) illustrated in FIG. 1 to communicate smoothly with each other, and may include wired Internet, wireless Internet, and a mobile radio communication network.
- the wireless communication may include, but is not limited to, wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy, Zigbee, WFD (Wi-Fi Direct), UWB (ultra wideband), infrared communication (IrDA, infrared Data Association), NFC (Near Field Communication), etc., for example.
- Wi-Fi wireless LAN
- Bluetooth Bluetooth low energy
- Zigbee Wi-Fi Direct
- UWB ultra wideband
- infrared communication IrDA, infrared Data Association
- NFC Near Field Communication
- FIG. 2 is a diagram illustrating the concept of a method for supporting code testing according to one embodiment.
- an electronic device (100) that performs a method for supporting code testing can create (201) a release branch (202) for code testing. After a new branch (204) is created in a worker terminal (120), the electronic device (100) can check a pull request (205) for a target code to be tested from the worker terminal (120). The electronic device (100) that supports code testing can check a test image (new screen shot) (207) created based on the target code according to test case information that exists in response to an application that is a target of code testing in response to the pull request (205).
- a code change (204-1) may occur in a release branch (202) upon creation of a new branch (204), and based on this, the electronic device (100) may perform an operation of driving a code case for the application whenever the application is newly updated.
- An electronic device (100) supporting a code test can identify a reference image corresponding to test case information, and the reference image can include, for example, an image included in a default baseline image (203) including a basic reference image generated based on a target code according to test case information, or a temp baseline image (206) including a temporary reference image generated based on a temporary code according to test case information.
- An electronic device (100) supporting a code test can check a comparison result (208) of a reference image and a test image (207), and generate control information on whether to merge (209) a target code into the reference code based on the comparison result (208).
- the reference image may be a snapshot image for checking a UI display in a desired direction that has already been checked based on the reference code.
- the electronic device (100) can check whether a UI has been changed for the test case by comparing a test image based on the target code with the reference image after executing a test case for an application in response to a pull request.
- the electronic device (100) can pass the target code, and if the test image and the reference image are not the same, it can prevent an unintended UI change by checking whether the test image has been changed to suit the purpose of the code test.
- the electronic device (100) can generate control information on whether to merge (209) the target code into the reference code based on the comparison result (208) through the bug tracking system, which will be discussed in detail below. After merging (209) the target code into the reference code, the electronic device (100) can generate a basic reference image generated based on the new reference code into which the target code is merged, and use this for future tests.
- An electronic device (100) supporting code testing can discard (210) a temp baseline (206) after merging (209) a target code into a reference code, and multiple code changes (211) can occur according to the new merged code.
- a method of supporting code testing through such steps can provide the effect of making the overall architecture lightweight by discarding (210) a temp baseline (206) generated for testing after merging the target code.
- FIG. 3 is a diagram illustrating an embodiment of performing error tracing in a method supporting code testing according to one embodiment.
- an electronic device (100) supporting a code test can check test case information (301) and check a reference image corresponding to the test case information (301).
- the reference image may include, for example, an image included in default baseline images (303) including a basic reference image generated based on a target code according to the test case information (301) as described in FIG. 2, or a temp baseline image (306) including a temporary reference image generated based on a temporary code according to the test case information.
- An electronic device (100) supporting a code test can check whenever a pull request (305) for a target code occurs.
- the electronic device (100) can check a test image (new screenshots) (307) generated based on the target code according to the test case information (301) in response to the pull request (305) as described in FIG. 2.
- the electronic device (100) can check a comparison result (308) of a reference image and a test image (307) as described in FIG. 2.
- the electronic device (100) may, if the comparison results (308) of the reference image and the test image (307) are the same, pass (310) the pull request (305) and generate control information on whether to merge the target code into the reference code, thereby merging (312) the target code into the reference code.
- An electronic device (100) may automatically create (305-1) an error tracking system (309) based on a pull request (305).
- the electronic device (100) according to an embodiment may pass (310) the pull request (305) through an error tracking system (309) including information about a link of the pull request (305), information about a title, and information about an owner, if the comparison result (308) of the reference image and the test image (307) is not the same, or block (311) the pull request (305).
- the electronic device (100) may merge (312) the target code without a separate target code modification according to the passage (310) of the pull request (305) or the block (311) of the pull request (305), or may merge (312) the modified target code after requesting modification of the target code to the worker terminal (120) of the target code.
- the electronic device (100) may discard (313) a temporary reference image generated based on a temporary code according to test case information for testing as described above in FIG. 2 after merging (312) the target code.
- the electronic device (100) may then perform a code change (314) according to the new merged code.
- An electronic device (100) can update a default baseline image (203) according to a new code by generating new basic reference images based on a new test code after performing a code change (314).
- FIG. 4 is a flowchart illustrating a method for supporting code testing according to one embodiment.
- an electronic device (100) supporting a code test may check a pull request for a target code to be a target of a code test in step (S430).
- the step of checking a pull request for a target code to be a target of a code test may include a step of receiving changes to a code repository through a pull request for a code being tested in the worker terminal (120) described above. This step may occur in a collaborative software development environment in which a developer provides code to a project through the worker terminal (120), and the step of checking a pull request for the target code may include a step of receiving a pull request generated when a developer changes a code base and wants to review the changes and integrate them into a basic code repository through the worker terminal (120).
- the pull request may include a branch with modified code, a description of the code changes, and additional related information.
- An electronic device (100) supporting code testing may verify test case information for a code test in step (S420).
- the step of verifying the test case information may include a step of defining a specific scenario or condition for evaluating a step or function of a code segment or a system before verifying the test case information. This may include a step of defining an input of a test case, an expected output of the test case, and a precondition or a postcondition.
- the step of verifying the test case information may include a mechanism for storing and configuring a test case through a test case repository, a test suite, or a format of a file including test case information.
- An electronic device (100) supporting a code test may verify a reference image corresponding to test case information in step (S430).
- the step of verifying the reference image may include, for example, a step of creating a visual output for an expected item after defining a test including specific steps or tasks that must be performed to create a snapshot image.
- the step of verifying the reference image may include, for example, a step of verifying a reference image for an actual visual output created according to the test case information described above.
- An electronic device (100) supporting code testing may verify a test image generated based on a target code according to test case information in response to a pull request in step (S440).
- the step of verifying the test image may include a step of generating a test image based on a reference code that merges the target code into the reference code through a test server, and verifying the test image.
- the step of verifying the test image may include, for example, a step of executing the target code including modifications introduced in the pull request to generate a test image representing a visual output generated by a code change under a specified test case condition, and verifying the same.
- the electronic device (100) may obtain test case information including an expected visual output or step as reference material for comparing the generated test image.
- An electronic device (100) supporting a code test may check a comparison result between a reference image and a test image in step (S450).
- the step of checking the comparison result may include, for example, a step of comparing the reference image checked in step (S420) with the test image checked in step (S440).
- the reference image may include, for example, a basic reference image generated based on a target code according to test case information and a temporary reference image generated based on a temporary code according to test case information.
- the electronic device (100) may check a comparison result between a basic reference image generated based on a target code and a test image generated based on the target code when the temporary reference image is not included in the reference image.
- the step of checking the comparison result may include, for example, a step of checking a comparison result between the reference image and the test image through a feature-based analysis using a pixel-based comparison, a histogram comparison, a structural similarity index (SSIM), a mean square error (MSE), or a computer vision algorithm.
- the step of verifying the comparison results may include a step of applying a comparison technique to quantitatively or qualitatively evaluate the similarities or differences between the reference image and the test image.
- the step of verifying the comparison results may include a step of verifying the comparison results by generating a request signal for a review process to review the change to other team members, such as a senior developer or project lead involved in the test, and receiving a response to ensure code quality, compliance with coding standards, and compatibility with project goals.
- An electronic device (100) supporting code testing may generate control information on whether to merge a target code into a reference code based on a comparison result in step (S460).
- the step of generating the control information on whether to merge the target code into the reference code may include a step of generating control information for passing a pull request and merging the target code into the reference code if the comparison result between the reference image and the test image mentioned above is the same.
- the step of generating the control information on whether to merge the target code into the reference code may include a step of generating a control signal for requesting confirmation of the target code from a worker terminal (120) if the comparison result is not the same, receiving a response regarding the request from the worker terminal (120), and generating control information for passing the pull request and merging the target code into the reference code if the difference between the reference image and the test image is less than a threshold value.
- the step of generating control information on whether to merge the target code into the reference code may include the steps of generating a control signal requesting confirmation of the target code from the worker terminal (120) if the comparison results are not identical, receiving a response regarding the request from the worker terminal (120), transmitting a control signal regarding a request for modification of the test code to the worker terminal (120) if the difference between the reference image and the test image is greater than or equal to a threshold value, and generating control information for passing a pull request regarding the modified code and merging the target code into the reference code based on the response to the modification request if the difference between the reference image and the modified test image is less than the threshold value.
- FIGS. 5A and 5B are flowcharts specifically describing a system supporting code testing according to one embodiment.
- a system supporting code testing may be implemented by various types of devices.
- a system supporting code testing may include an electronic device (100), a worker terminal (120), and a database (140).
- the database (140) may be a storage within the electronic device (100) or a storage external to the electronic device (100), but is not limited thereto.
- the data storage may be an open source-based non-relational database management system such as Redis (Remote Dictionary Server).
- step S510 the worker terminal (120) can transmit a pull request for the target code to the electronic device (100), and accordingly, the electronic device (100) can receive the pull request for the target code from the worker terminal (120).
- the database (140) can transmit test case information to the electronic device (100), and the electronic device (100) can receive it from the database (140).
- the electronic device (100) can check information necessary for performing a code test.
- the database (140) can include a repository based on git-hub, and can perform a step of transmitting the test case information.
- step S530 the electronic device (100) can verify a test image generated based on the target code according to the test case information in response to the pull request.
- step S540 the electronic device (100) can check the comparison result of the reference image and the test image.
- the step of checking the comparison result of the reference image and the test image can be performed through various analysis techniques such as pixel-based comparison, histogram comparison, SSIM (structural similarity index), MSE (mean square error), or feature-based analysis using a computer vision algorithm, as discussed above.
- step S545 the electronic device (100) can determine whether the comparison results of the reference image and the test image are the same, and if the comparison results of the reference image and the test image are the same, the electronic device (100) can pass the pull request for the target code in step S560. If the comparison results of the reference image and the test image are not the same, the electronic device (100) can generate a control signal requesting verification of the target code in step S550 and transmit the control signal to the worker terminal (120). In step S555, the worker terminal (120) can transmit a response to the verification request, and then the electronic device (100) can pass the pull request for the target code in step S560.
- the process of making the verification request and the response thereto will be specifically described below with reference to FIG. 5b.
- step S570 the electronic device (100) can merge the target code into the reference code.
- the electronic device (100) can perform additional code testing based on the new reference code. For example, a test reviewer can review, improve, and test changes to the pull-requested target code, and if the target code meets the quality standards of the overall project and is consistent with the development goals, the electronic device (100) can make a decision to merge the target code into the existing code repository, and the electronic device (100) can perform this merging.
- the electronic device (100) may transmit a target code merging notification to the worker terminal (120).
- the worker terminal (120) may receive the target code merging notification from the electronic device (100) and, when performing additional code testing thereafter, may perform additional code testing based on previously merged target codes.
- step S590 the electronic device (100) can transmit a request to discard a temporary reference image.
- the electronic device (100) can reduce the weight of the entire system by discarding a temporary reference image already used after merging.
- step S545 the electronic device (100) can determine whether the comparison results of the reference image and the test image are the same, and if the comparison results of the reference image and the test image are the same, the electronic device can pass the pull request for the target code in step S560. If the comparison results of the reference image and the test image are not the same, the electronic device (100) can generate a control signal requesting confirmation of the target code in step S550 and transmit it to the worker terminal (120), and if the target code has passed the manual review based on a response from the worker terminal (120), the electronic device can determine whether the target code has passed the manual review in step S511. If the target code has passed the manual review, the electronic device can pass the pull request for the target code in step S560.
- the electronic device may block the pull request in step S522 and transmit a control signal regarding a request for modification of the test code to the worker terminal (120) to repeat the above steps until the modified code passes the manual review.
- the reviewer of the target code may provide feedback and comments regarding the pull request to the worker terminal (120).
- the reviewer performing the manual review may suggest improvements to the target code to the worker of the target code, highlight potential problems with the target code, or request an explanation of the target code, thereby guiding the worker to improve the target code so that the target code can generate a suitable test image. If the difference between the reference image and the modified test image is less than a threshold value based on the response to the modification request, the electronic device (100) may pass the pull request in step S560 and perform merging as discussed above.
- Figure 6 is a block diagram schematically illustrating an electronic device supporting code testing according to one embodiment.
- the electronic device (600) of FIG. 6 may correspond to the electronic device (100) of the present specification.
- the electronic device (600) of the present disclosure may include a transceiver (610), a storage (620), and a processor (630), according to an embodiment.
- the components illustrated in FIG. 6 are not essential for implementing the electronic device, and thus, it will be understood by those skilled in the art related to the present embodiment that the electronic device (600) described in the present specification may have more or fewer components than the components listed above.
- the processor (630) may include at least one processor.
- the electronic device (600) may also operate as a server or a proxy server.
- the transceiver (610) can communicate with an external device using wired or wireless communication technology and can include the transceiver (610).
- the external device can be a terminal or server including a terminal of a developer or a quality assurance team.
- the communication technology used by the transceiver (610) can include, but is not limited to, GSM (Global System for Mobile communication), CDMA (Code Division Multi Access), LTE (Long Term Evolution), 5G, WLAN (Wireless LAN), Wi-Fi (Wireless-Fidelity), Bluetooth, RFID (Radio Frequency Identification), Infrared Data Association (IrDA), ZigBee, NFC (Near Field Communication), etc.
- the transceiver (610) can communicate with the worker terminal (120) and the database (140) via the network (160) to exchange information. More specifically, the transceiver (610) can receive test case information from the database (140) and can receive a pull request for the target code from the worker terminal (120).
- Storage (620) can store information for performing at least one of the methods described above through FIGS. 1 to 5b.
- Storage (620) can be referred to as memory and can be volatile memory or non-volatile memory.
- the processor (630) can control the overall operation of the electronic device (600) and process data and signals.
- the processor (630) can perform one of the methods described above with reference to FIGS. 1 to 5B.
- the processor (630) can control embodiments performed by the electronic device (600) through interactions with the transceiver (610) and the storage (620), and further components that the electronic device (600) can include.
- the processor (630) can check a pull request for a target code to be a target of a code test, check test case information for the code test, check a reference image corresponding to the test case information, check a test image generated based on the target code according to the test case information in response to the pull request, check a comparison result of the reference image and the test image, and generate control information on whether to merge the target code into the reference code based on the comparison result.
- the electronic device or terminal may include a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a user interface device such as a touch panel, a key, an icon, etc.
- the methods implemented as software modules or algorithms may be stored on a computer-readable recording medium as computer-readable codes or program commands executable on the processor.
- the computer-readable recording medium includes a magnetic storage medium (e.g., a read-only memory (ROM), a random-access memory (RAM), a floppy disk, a hard disk, etc.) and an optical reading medium (e.g., a CD-ROM, a Digital Versatile Disc (DVD)).
- the computer-readable recording medium may be distributed to computer systems connected to a network, so that the computer-readable code may be stored and executed in a distributed manner.
- the medium may be readable by a computer, stored in a memory, and executed by a processor.
- the present embodiment may be represented by functional block configurations and various processing steps. These functional blocks may be implemented by various numbers of hardware and/or software configurations that perform specific functions. For example, the embodiment may employ direct circuit configurations such as memory, processing, logic, look-up tables, etc., which may perform various functions under the control of one or more microprocessors or other control devices. Similarly to the fact that the components may be implemented as software programs or software elements, the present embodiment may be implemented in a programming or scripting language such as C, C++, Java, assembler, Python, etc., including various algorithms implemented as a combination of data structures, processes, routines, or other programming configurations. The functional aspects may be implemented as algorithms that are executed on one or more processors.
- the present embodiment may employ conventional techniques for electronic environment setting, signal processing, and/or data processing.
- Terms such as “mechanism,” “element,” “means,” and “configuration” can be used broadly and are not limited to mechanical and physical configurations. The terms can also include the meaning of a series of software processes (routines) in connection with a processor, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
코드 테스트를 지원하는 방법 및 전자 장치가 개시된다. 방법은 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트(pull request)를 확인하는 단계, 코드 테스트에 대한 테스트 케이스 정보를 확인하는 단계, 테스트 케이스 정보에 대응하는 기준 이미지를 확인하는 단계, 대상 코드에 대한 풀 리퀘스트(pull request)를 확인하는 단계, 풀 리퀘스트에 대응하여 테스트 케이스 정보에 따라 대상 코드에 기초하여 생성된 테스트 이미지를 확인하는 단계, 기준 이미지 및 테스트 이미지의 비교 결과를 확인하는 단계, 및 비교 결과를 기반으로 대상 코드를 기준 코드에 병합(merge)할지 여부에 대한 제어 정보를 생성하는 단계를 포함한다.
Description
본 명세서의 실시 예는 코드 테스트 지원 방법 및 전자 장치에 관한 것이다. 보다 구체적으로 본 명세서의 실시 예는 코드 테스트에 기초하여 생성된 이미지를 기준 이미지와 비교하여 코드 테스트를 지원하는 방법 및 장치에 관한 것이다.
애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 CI/CD(continuous integration/continuous delivery) 작업 환경 하에서, 복수의 개발자들에 의해 다양한 종류의 코드 테스트가 필요한 상황이 증가하고 있다. 서비스 버전의 업그레이드 방향이 다양화되며 테스트 케이스의 설정에 따라 해당 테스트 케이스의 통과 기준을 만족하는지 여부를 검증하기 위한 방법의 개선이 필요해지고 있으며 복수의 개발자들이 코드를 수정하는 환경에서 테스트 관련 데이터를 효과적으로 생산성 있게 관리할 방법에 대한 필요성이 더욱 증가하고 있다.
관련하여 KR102156931B1 건 및 KR101691929 건 등의 선행문헌들을 참조할 수 있다.
본 개시는 상술한 문제점을 해결하기 위해 제안된 것으로, 코드 테스트 지원 방법 및 전자 장치를 제공하는데 있다.
보다 구체적으로 본 개시는 테스트 케이스 정보를 확인하고, 이에 대응하는 기준 이미지를 확인한 뒤 테스트 대상 코드에 기초하여 생성된 테스트 이미지와 기준 이미지를 비교하여 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 장치를 제공하는 것을 목적으로 한다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1측면에 따른 전자 장치에서의 코드 테스트 지원 방법은, 상기 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트(pull request)를 확인하는 단계; 상기 코드 테스트에 대한 테스트 케이스 정보를 확인하는 단계; 상기 테스트 케이스 정보에 대응하는 기준 이미지를 확인하는 단계; 상기 풀 리퀘스트에 대응하여 상기 테스트 케이스 정보에 따라 상기 대상 코드에 기초하여 생성된 테스트 이미지를 확인하는 단계; 상기 기준 이미지 및 상기 테스트 이미지의 비교 결과를 확인하는 단계; 및 상기 비교 결과를 기반으로 상기 대상 코드를 기준 코드에 병합(merge)할지 여부에 대한 제어 정보를 생성하는 단계를 포함할 수 있다.
상기 기준 이미지는, 상기 테스트 케이스 정보에 따라 상기 대상 코드에 기초하여 생성되는 기본 기준 이미지 및 상기 테스트 케이스 정보에 따라 임시 코드에 기초하여 생성되는 임시 기준 이미지를 포함할 수 있다.
전자 장치에서의 코드 테스트 지원 방법은, 상기 대상 코드가 병합된 새로운 기준 코드에 기초하여 생성되는 기본 기준 이미지를 생성하는 단계를 더 포함할 수 있다.
상기 테스트 이미지를 확인하는 단계는, 테스트 서버를 통해 상기 대상 코드를 기준 코드에 병합한 기준 코드에 기초하여 상기 테스트 이미지를 생성(generate)하고, 상기 테스트 이미지를 확인하는 단계를 포함할 수 있다.
상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는, 상기 비교 결과가 동일한 경우, 상기 풀 리퀘스트를 통과시키는 단계 및 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함할 수 있다.
상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는, 상기 비교 결과가 동일하지 않은 경우, 상기 대상 코드에 대한 확인을 작업자 단말에 요청하는 제어 신호를 생성하는 단계 및 상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함할 수 있다.
상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는, 상기 요청에 관한 응답을 수신하는 단계; 상기 기준 이미지와 상기 테스트 이미지 간의 차이가 임계 값 미만인 경우, 상기 풀 리퀘스트를 통과시키는 단계 및 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함할 수 있다.
상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는, 상기 비교 결과가 동일하지 않은 경우, 상기 대상 코드에 대한 확인을 작업자 단말에 요청하는 제어 신호를 생성하는 단계 및 상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함할 수 있다.
상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는, 상기 요청에 관한 응답을 수신하는 단계; 상기 기준 이미지와 상기 테스트 이미지 간의 차이가 임계 값 미만인 경우, 상기 풀 리퀘스트를 통과시키는 단계 및 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함할 수 있다.
상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는, 상기 요청에 관한 응답을 수신하는 단계; 상기 기준 이미지와 상기 생성된 테스트 이미지 간의 차이가 임계 값 이상인 경우, 상기 풀 리퀘스트를 블록(block)시키는 단계; 작업자 단말에 테스트 코드의 수정 요청에 관한 제어 신호를 송신하는 단계; 상기 수정 요청에 대한 응답에 기반하여, 상기 기준 이미지와 수정된 테스트 이미지 간의 차이가 임계 값 미만인 경우 수정된 풀 리퀘스트를 통과시키는 단계 및 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함할 수 있다.
전자 장치에서의 코드 테스트 지원 방법은, 상기 제어 정보에 기초하여 상기 대상 코드를 병합하는 단계 및 상기 기준 이미지에 임시 기준 이미지가 포함된 경우, 상기 기준 이미지에 포함된 상기 임시 기준 이미지를 폐기(drop)하는 단계를 더 포함할 수 있다.
상기 비교 결과를 확인하는 단계는, 상기 기준 이미지에 임시 기준 이미지가 포함되지 않은 경우, 상기 대상 코드에 기초하여 생성되는 기본 기준 이미지와 상기 대상 코드에 기초하여 생성된 테스트 이미지의 비교 결과를 확인하는 단계를 포함할 수 있다.
본 개시의 제2 측면에 따른 코드 테스트를 지원하는 전자 장치는, 트랜시버; 하나 이상의 명령어를 저장하는 스토리지; 및 상기 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트(pull request)를 확인하고, 상기 코드 테스트에 대한 테스트 케이스 정보를 확인하고, 상기 테스트 케이스 정보에 대응하는 기준 이미지를 확인하고, 상기 풀 리퀘스트에 대응하여 상기 테스트 케이스 정보에 따라 상기 대상 코드에 기초하여 생성된 테스트 이미지를 확인하고, 상기 기준 이미지 및 상기 테스트 이미지의 비교 결과를 확인하고, 상기 비교 결과를 기반으로 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 프로세서를 포함할 수 있다.
본 개시의 제3측면에 따른 기록 매체는 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비임시적 기록 매체일 수 있다.
본 명세서의 일 실시 예에 따르면, 전자 장치는 코드 테스트 지원 시에 테스트 케이스 정보를 확인하고, 이에 대응하는 기준 이미지를 확인한 뒤, 풀 리퀘스트를 수신한 대상 코드에 기초하여 생성된 테스트 이미지를 확인하고 기준 이미지와 테스트 이미지를 비교한 뒤 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성할 수 있다. 또한 전자 장치는 대상 코드가 기준 코드에 병합된 이후 기준 이미지에 포함된 임시 기준 이미지를 폐기함을 통해 코드 테스트 지원 시스템을 더욱 경량화 할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시 예에 따른 시스템을 나타낸다.
도 2는 일 실시 예에 따른 코드 테스트를 지원하는 방법의 개념을 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 코드 테스트를 지원하는 방법에서 오류 추적을 수행하는 실시 예를 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 코드 테스트를 지원하는 방법을 설명하기 위한 흐름도이다.
도 5a 및 도 5b는 일 실시 예에 따른 코드 테스트를 지원하는 시스템을 구체적으로 설명하기 위한 흐름도이다.
도 6은 일 실시 예에 따른 코드 테스트를 지원하는 전자 장치를 도식화한 블록도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “...부”, “...모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 “a, b, 및 c 중 적어도 하나”의 표현은, ‘a 단독’, ‘b 단독’, ‘c 단독’, ‘a 및 b’, ‘a 및 c’, ‘b 및 c’, 또는 ‘a,b,c 모두’를 포괄할 수 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 일 실시 예에 따른 시스템을 나타낸다.
도 1을 참조하면, 시스템은 전자 장치(100), 작업자 단말(120), 데이터베이스(140) 및 네트워크(160) 중에서 적어도 하나를 포함할 수 있다. 한편, 도 1에 도시된 시스템은 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
전자 장치(100)는 다양한 정보를 구성하여 제공하는 장치이다. 전자 장치(100)는 구성된 정보를 웹 페이지 또는 애플리케이션 화면 등으로 제공하거나, 제공 받는 단말에서 웹 페이지 또는 애플리케이션 화면 등으로 표시할 수 있는 형태의 정보로 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 작업자가 확인하고자 하는 로그 데이터를 설정된 타입으로 변환하여 데이터베이스(140)에 저장할 수 있다.
예를 들어, 전자 장치(100)는 작업의 대상이 되는 애플리케이션에 대해 작업자 단말(120)로부터 애플리케이션의 수정을 위한 테스트 대상 코드의 풀 업 리퀘스트를 수신하고, 애플리케이션에 대한 테스트 케이스를 수행하기 위한 테스트 케이스 셋업 정보를 데이터베이스(140)를 통해 획득할 수 있다. 데이터베이스(140)를 통해 획득한 테스트 케이스 셋업 정보는, 전자 장치(100)가 테스트 케이스에 대한 결과를 획득하는 과정에서 이용될 수 있다. 또한 전자 장치(100)는 데이터베이스(140)의 접속에 대한 정보를 포함하는 로그 데이터에 관한 코드에 기초하여 획득된 애플리케이션의 실행에 따른 정보를 포함하는 로그 데이터를 확인하고, 로그 데이터를 포함하는 하나 이상의 로우 데이터를 데이터베이스(140)에 저장할 수 있다. 이후, 전자 장치(100)는 하나 이상의 로우 데이터 중 설정된 식별 정보를 포함하는 적어도 하나의 로우 데이터를 확인하고, 적어도 하나의 로우 데이터에 포함된 적어도 하나의 로그 데이터의 타입을 변환하여 데이터베이스(140)에 저장할 수 있다.
작업자 단말(120)은 작업자들이 사용하는 작업자 단말(120)을 이용하여, 특정 필드에 대응하는 로그 데이터를 보다 편리하게 확인할 수 있다. 예를 들어, 작업자는 확인하고자 하는 로그 데이터에 관한 코드를 작업자 단말(120)을 통해 제공할 수 있다. 또한 작업자는 작업자 단말(120)을 이용하여 데이터베이스(140)에 저장된 로그 데이터를 확인할 수 있다.
데이터베이스(140)는 데이터의 저장, 검색, 삭제, 편집, 또는 추가 등의 기능을 자유롭게 수행할 수 있다. 예를 들어, 데이터베이스(140)는 데이터의 저장, 검색, 삭제, 편집, 또는 추가 등의 기능을 처리하기 위한 필드 또는 구성요소들을 포함할 수 있다. 또한, 데이터베이스(140)는 애플리케이션의 실행에 따른 정보를 포함하는 로그 데이터, 로그 데이터를 포함하는 하나 이상의 로우 데이터 및 설정된 타입으로 변환된 로그 데이터를 저장할 수 있다.
한편, 도 1은 데이터베이스(140)가 전자 장치(100)의 외부에 존재하는 것으로 도시하나, 이는 일 실시 예에 불과하며, 데이터베이스(140)는 전자 장치(100)에 포함될 수 있다. 또한, 데이터베이스(140)는 하나 이상의 서브 데이터베이스를 포함할 수 있으며, 하나 이상의 서브 데이터베이스 각각에는 애플리케이션의 실행에 따른 정보를 포함하는 로그 데이터, 로그 데이터를 포함하는 하나 이상의 로우 데이터 및 설정된 타입으로 변환된 로그 데이터가 저장될 수 있다. 또한 전자 장치(100)와 데이터베이스(140)는 애플리케이션의 실행 및 관리에 필요한 컴퓨팅 리소스와 네트워킹 기능을 제공하는 클라우드 인프라 상에서 논리적으로 구별될 수 있으며, 클라우드 인프라 상에서 네트워킹 프로토콜을 통해 서로 통신 가능하도록 구현될 수 있다.
작업자 단말(120) 및 데이터베이스(140)와 전자 장치(100)는 네트워크(160) 내에서 서로 통신할 수 있다. 네트워크(160)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
전자 장치(100) 및 작업자 단말(120) 각각은 트랜시버, 스토리지 및 프로세서를 포함할 수 있다. 또한, 전자 장치(100) 및 작업자 단말(120) 각각은 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 한편 실시 예 전반에서 전자 장치(100) 및 작업자 단말(120) 각각은 분리된 장치 또는 서버로 언급되나 이는 논리적으로 나누어진 구조일 수 있으며, 이들 중 적어도 일부가 하나의 장치 또는 서버에서 분리된 기능에 의해 구현될 수 있다.
일 실시 예에 따르면, 전자 장치(100) 및 작업자 단말(120)은 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있다. 예를 들면, 전자 장치(100) 및 작업자 단말(120) 중 적어도 일부는 인트라넷 또는 인터넷과 같은 컴퓨터 네트워크를 통해 다른 네트워크 서버와 통신할 수 있는 하위 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 지칭할 수 있다. 이외에도, 전자 장치(100) 및 작업자 단말(120) 중 적어도 일부는 네트워크 서버 상에서 동작할 수 있는 일련의 응용 프로그램과, 내부 혹은 연결된 다른 노드에 구축되어 있는 각종 데이터베이스를 포함하는 광의의 개념으로 이해될 수 있다. 예컨대, 전자 장치(100) 및 작업자 단말(120) 중 적어도 일부는 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 또는 맥OS(MacOS) 등의 운영 체제에 따라 다양하게 제공되는 네트워크 서버 프로그램을 이용하여 구현될 수 있다.
전자 장치(100) 및 작업자 단말(120)은 네트워크(160)를 통해서 서로 통신할 수 있다. 네트워크(160)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크(160) 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
도 2는 일 실시 예에 따른 코드 테스트를 지원하는 방법의 개념을 설명하기 위한 도면이다.
도 2를 참조하면, 일 실시 예에 따른 코드 테스트를 지원하는 방법을 수행하는 전자 장치(100)는, 코드 테스트를 위한 릴리즈 브랜치(release branch)(202)를 생성(201)할 수 있다. 전자 장치(100)는 작업자 단말(120)에서 새로운 브랜치(new branch)(204)가 생성된 이후, 작업자 단말(120)로부터 테스트의 대상이 될 대상 코드에 대한 풀 리퀘스트(pull request)(205)를 확인할 수 있다. 코드 테스트를 지원하는 전자 장치(100)는, 풀 리퀘스트(205)에 대응하여 코드 테스트의 대상이 되는 애플리케이션에 대응하여 존재하는 테스트 케이스 정보에 따라 대상 코드에 기초하여 생성된 테스트 이미지(new screen shot)(207)를 확인할 수 있다. 일 실시 예에서, 새로운 브랜치(204)의 생성에 따라 릴리즈 브랜치(202)에 코드 체인지(204-1)가 발생할 수 있으며 이에 기초하여 전자 장치(100)는 애플리케이션이 새롭게 업데이트 될 때 마다 해당 애플리케이션에 대한 코드 케이스를 구동하는 동작을 수행할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는, 테스트 케이스 정보에 대응하는 기준 이미지를 확인 할 수 있으며 기준 이미지는 예를 들어 테스트 케이스 정보에 따라 대상 코드에 기초하여 생성되는 기본 기준 이미지를 포함하는 디폴트 베이스라인 이미지들(203) 또는 테스트 케이스 정보에 따라 임시 코드에 기초하여 생성되는 임시 기준 이미지를 포함하는 템프 베이스 라인(206)에 포함된 이미지를 포함할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는, 기준 이미지 및 테스트 이미지(207)의 비교 결과(208)를 확인할 수 있으며, 비교 결과(208)를 기반으로 대상 코드를 기준 코드에 병합(209)할지 여부에 대한 제어 정보를 생성할 수 있다. 예를 들어 기준 이미지는 기준 코드에 기초하여 이미 확인된 원하는 방향의 UI 디스플레이를 확인하기 위한 snapshot 이미지일 수 있다. 전자 장치(100)는 풀 리퀘스트에 대응하여 애플리케이션에 대해 테스트 케이스를 실행한 후, 대상 코드에 기초한 테스트 이미지를 기준 이미지와 비교함으로써 테스트 케이스에 대한 UI 변경 여부를 확인할 수 있다. 예를 들어 테스트 이미지와 기준 이미지의 비교 결과가 동일한 경우 동일한 경우, 전자 장치(100)는 대상 코드를 패스할 수 있으며, 테스트 이미지와 기준 이미지가 동일하지 않은 경우, 테스트 이미지가 코드 테스트의 목적에 맞도록 변경되었는지 여부에 대한 확인을 통해 의도하지 않는 UI 변경을 막을 수 있다. 전자 장치(100)는 오류 추적 시스템(bug tracking system)을 통해 비교 결과(208)를 기반으로 대상 코드를 기준 코드에 병합(209)할지 여부에 대한 제어 정보를 생성할 수 있으며 이에 대해서는 이하에서 자세히 살핀다. 전자 장치(100)는, 대상 코드를 기준 코드에 병합(209)한 후 대상 코드가 병합된 새로운 기준 코드에 기초하여 생성되는 기본 기준 이미지를 생성하고, 이를 차후에 있을 테스트에 이용할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는, 대상 코드를 기준 코드에 병합(209)한 이후 템프 베이스 라인(206)을 폐기(210)할 수 있으며, 병합된 새로운 코드에 따라 복수 회의 코드 체인지(211)가 발생할 수 있다. 이와 같은 단계를 통해 코드 테스트를 지원하는 방법은 대상 코드의 병합 이후 테스트를 위해 생성된 템프 베이스 라인(206)을 폐기(210)함으로써 전체적인 아키텍처를 경량화 하는 효과를 제공할 수 있다.
도 3은 일 실시 예에 따른 코드 테스트를 지원하는 방법에서 오류 추적을 수행하는 실시 예를 설명하기 위한 도면이다.
도 3을 참조하면, 일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는, 테스트 케이스 정보(301)를 확인하고, 테스트 케이스 정보(301)에 대응하는 기준 이미지를 확인할 수 있다. 여기서 기준 이미지는 예를 들어 도 2에서 설명한 바와 같이 테스트 케이스 정보(301)에 따라 대상 코드에 기초하여 생성되는 기본 기준 이미지를 포함하는 디폴트 베이스라인 이미지들(303) 또는 테스트 케이스 정보에 따라 임시 코드에 기초하여 생성되는 임시 기준 이미지를 포함하는 템프 베이스 라인(306)에 포함된 이미지를 포함할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는, 대상 코드에 대한 풀 리퀘스트(305)가 발생할 때마다 이를 확인할 수 있다. 일 실시 예에서 전자 장치(100)는, 도 2에서 설명한 바와 같이 풀 리퀘스트(305)에 대응하여 테스트 케이스 정보(301)에 따라 대상 코드에 기초하여 생성된 테스트 이미지(new screenshots)(307)를 확인할 수 있다. 일 실시 예에서 전자 장치(100)는, 도 2에서 설명한 바와 같이 기준 이미지 및 테스트 이미지(307)의 비교 결과(308)를 확인할 수 있다.
일 실시 예에서 전자 장치(100)는, 기준 이미지 및 테스트 이미지(307)의 비교 결과(308)가 동일한 경우, 풀 리퀘스트(305)를 통과(310)시키고 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하여 대상 코드를 기준 코드에 병합(312)할 수 있다.
일 실시 예에 따른 전자 장치(100)는, 풀 리퀘스트(305)에 기초하여 오류 추적 시스템(309)을 자동 생성(auto create)(305-1)할 수 있다. 또한 일 실시 예에 따른 전자 장치(100)는, 기준 이미지 및 테스트 이미지(307)의 비교 결과(308)가 동일하지 않은 경우, 풀 리퀘스트(305)의 링크에 관한 정보, 타이틀에 관한 정보 및 소유자에 관한 정보를 포함하는 오류 추적 시스템(309)를 통해 풀 리퀘스트(305)를 통과(310)시키거나 풀 리퀘스트(305)를 블록(311)할 수 있다. 일 실시 예에서 전자 장치(100)는, 풀 리퀘스트(305)의 통과(310) 또는 풀 리퀘스트(305)의 블록(311)에 따라 별도의 대상 코드 수정 없이 대상 코드를 병합(312)하거나 대상 코드의 작업자 단말(120)에 대상 코드에 대한 수정을 요청한 이후 수정된 대상 코드를 병합(312)할 수 있다.
일 실시 예에 따른 전자 장치(100)는, 대상 코드의 병합(312)이후 앞서 도 2에서 설명한 바와 같이 테스트를 위해 테스트 케이스 정보에 따라 임시 코드에 기초하여 생성되는 임시 기준 이미지를 폐기(313)할 수 있다. 코 전자 장치(100)는 이후 병합된 새로운 코드에 따라 코드 체인지(314)를 수행할 수 있다.
일 실시 예에 따른 전자 장치(100)는, 코드 체인지(314)의 수행 이후, 새로운 테스트 코드에 기초하여 새로운 기본 기준 이미지들을 생성함을 통해 디폴트 베이스라인 이미지(203)를 새로운 코드에 따라 업데이트 할 수 있다.
도 4는 일 실시 예에 따른 코드 테스트를 지원하는 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는 단계(S430)에서 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트를 확인 할 수 있다. 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트를 확인하는 단계는, 앞서 설명한 작업자 단말(120)에서 테스트 중인 코드에 대한 풀 리퀘스트를 통해 코드 리포지토리에 대한 변경 사항을 수신하는 단계를 포함할 수 있다. 이러한 단계는 작업자 단말(120)을 통해 개발자가 프로젝트에 코드를 제공하는 공동 소프트웨어 개발 환경에서 발생할 수 있으며, 대상 코드에 대한 풀 리퀘스트를 확인하는 단계는 작업자 단말(120)을 통해 개발자가 코드 베이스를 변경하고 해당 변경 사항을 검토하고 기본 코드 리포지토리에 통합하기를 원할 때 생성된 풀 리퀘스트를 수신하는 단계를 포함할 수 있다. 풀 리퀘스트에는 수정된 코드가 있는 브랜치, 코드 변경 사항에 대한 설명 및 추가 관련 정보가 포함될 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는 단계(S420)에서 코드 테스트에 대한 테스트 케이스 정보를 확인할 수 있다. 테스트 케이스 정보를 확인하는 단계는, 테스트 케이스 정보를 확인하기 전에 코드 세그먼트 또는 시스템의 단계 또는 기능을 평가하는 특정 시나리오 또는 조건을 정의하는 단계를 포함할 수 있다. 이는 테스트 케이스의 입력, 테스트 케이스의 예상 출력 및 사전 조건 또는 사후 조건을 정의하는 단계를 포함할 수 있다. 테스트 케이스 정보를 확인하는 단계는 테스트 케이스 저장소, 테스트 스위트 또는 테스트 케이스 정보가 포함된 파일의 형식을 통해 테스트 케이스를 저장하고 구성하는 메커니즘을 포함할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는 단계(S430)에서 테스트 케이스 정보에 대응하는 기준 이미지를 확인할 수 있다. 기준 이미지를 확인하는 단계는 예를 들어 스냅샷(snapshot) 이미지를 생성하기 위해 수행해야 하는 특정 단계 또는 작업을 포함하는 테스트를 정의한 이후 예를 들어 예상되는 아이템에 대한 시각적 출력을 생성하는 단계를 포함할 수 있다. 기준 이미지를 확인하는 단계는, 예를 들어 앞서 설명한 테스트 케이스 정보에 따라 생성된 실제 시각적 출력에 관한 기준 이미지를 확인하는 단계를 포함할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는 단계(S440)에서 풀 리퀘스트에 대응하여 테스트 케이스 정보에 따라 대상 코드에 기초하여 생성된 테스트 이미지를 확인할 수 있다. 테스트 이미지를 확인하는 단계는 테스트 서버를 통해 대상 코드를 기준 코드에 병합한 기준 코드에 기초하여 테스트 이미지를 생성(generate)하고, 테스트 이미지를 확인하는 단계를 포함할 수 있다. 테스트 이미지를 확인하는 단계는, 예를 들어 풀 리퀘스트에 도입된 수정 사항을 포함하여 대상 코드를 실행하여 지정된 테스트 사례 조건에서 코드 변경으로 생성된 시각적 출력을 나타내는 테스트 이미지를 생성하고, 이를 확인하는 단계를 포함할 수 있다. 이 단계에서 전자 장치(100)는 생성된 테스트 이미지를 비교하기 위한 참고 자료로서 예상되는 시각적 출력 또는 단계를 포함한 테스트 사례 정보를 획득할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는 단계(S450)에서 기준 이미지 및 테스트 이미지의 비교 결과를 확인할 수 있다. 비교 결과를 확인하는 단계는, 예를 들어 단계(S420)에서 확인된 기준 이미지와 단계(S440)에서 확인된 테스트 이미지를 비교하는 단계를 포함할 수 있다. 기준 이미지는 예를 들어 테스트 케이스 정보에 따라 대상 코드에 기초하여 생성되는 기본 기준 이미지 및 테스트 케이스 정보에 따라 임시 코드에 기초하여 생성되는 임시 기준 이미지를 포함할 수 있다. 일 실시 예에서, 전자 장치(100)는 기준 이미지에 임시 기준 이미지가 포함되지 않은 경우, 대상 코드에 기초하여 생성되는 기본 기준 이미지와 대상 코드에 기초하여 생성된 테스트 이미지의 비교 결과를 확인할 수 있다. 비교 결과를 확인하는 단계는, 예를 들어 픽셀 기반 비교, 히스토그램 비교, SSIM(구조적 유사성 지수), MSE(평균 제곱 오차) 또는 컴퓨터 비전 알고리즘을 사용한 특징 기반 분석을 통해 기준 이미지와 테스트 이미지의 비교 결과를 확인하는 단계를 포함할 수 있다. 비교 결과를 확인하는 단계는, 비교 기술을 적용하여 기준 이미지와 테스트 이미지 간의 유사성 또는 차이점을 정량적 또는 정성적으로 평가하는 단계를 포함할 수 있다. 비교 결과를 확인하는 단계는 예를 들어 테스트와 관련한 수석 개발자 또는 프로젝트 리더와 같은 다른 팀 구성원에게 변경 사항을 검토하라는 검토 프로세스에 대한 요청 신호를 생성하고, 코드 품질, 코딩 표준 준수 및 프로젝트 목표와의 호환성을 보장하기 위한 응답을 수신하는 과정을 통해 비교 결과를 확인하는 단계를 포함할 수 있다.
일 실시 예에 따른 코드 테스트를 지원하는 전자 장치(100)는 단계(S460)에서 비교 결과를 기반으로 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성할 수 있다. 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는 앞서 언급한 기준 이미지와 테스트 이미지의 비교 결과에 따라 비교 결과가 동일한 경우 풀 리퀘스트를 통과시키고 대상 코드를 기준 코드에 병합한다는 제어 정보를 생성하는 단계를 포함할 수 있다. 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는 비교 결과가 동일하지 않은 경우, 대상 코드에 대한 확인을 작업자 단말(120)에 요청하는 제어 신호를 생성하고, 작업자 단말(120)로부터 요청에 관한 응답을 수신하고, 기준 이미지와 테스트 이미지 간의 차이가 임계 값 미만인 경우, 풀 리퀘스트를 통과시키고 대상 코드를 기준 코드에 병합한다는 제어 정보를 생성하는 단계를 포함할 수 있다. 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는 비교 결과가 동일하지 않은 경우, 대상 코드에 대한 확인을 작업자 단말(120)에 요청하는 제어 신호를 생성하고, 작업자 단말(120)로부터 요청에 관한 응답을 수신하고, 기준 이미지와 테스트 이미지 간의 차이가 임계 값 이상인 경우, 작업자 단말(120)에 테스트 코드의 수정 요청에 관한 제어 신호를 송신하고, 수정 요청에 대한 응답에 기반하여, 기준 이미지와 수정된 테스트 이미지 간의 차이가 임계 값 미만인 경우 수정된 코드에 관한 풀 리퀘스트를 통과시키고 대상 코드를 기준 코드에 병합한다는 제어 정보를 생성하는 단계를 포함할 수 있다.
도 5a 및 도 5b는 일 실시 예에 따른 코드 테스트를 지원하는 시스템을 구체적으로 설명하기 위한 흐름도이다.
도 5a 및 도 5b를 참조하면, 다양한 실시 예에 따른 코드 테스트를 지원하는 시스템은 다양한 종류의 장치들에 의해 구현될 수 있다. 예를 들어, 코드 테스트를 지원하는 시스템은 전자 장치(100), 작업자 단말(120) 데이터베이스(140)를 포함할 수 있다. 데이터베이스(140)는 전자 장치(100) 내의 스토리지일 수도 있고, 전자 장치(100) 외부의 스토리지일 수 있으나 이에 한정되는 것은 아니다. 또한, 데이터 스토리지는 레디스(Remote Dictionary Server)로 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템일 수 있다.
도 5a를 참조하면, 단계 S510에서, 작업자 단말(120)은 전자 장치(100)에 대상 코드에 대한 풀 리퀘스트를 송신할 수 있고, 이에 따라 전자 장치(100)는 작업자 단말(120)로부터 대상 코드에 대한 풀 리퀘스트를 수신할 수 있다.
단계 S520에서 데이터베이스(140)는 테스트 케이스 정보를 전자 장치(100)에 송신할 수 있고, 전자 장치(100)는 이를 데이터베이스(140)로부터 수신할 수 있다. 테스트 케이스 정보를 수신함에 따라, 전자 장치(100)는 코드 테스트를 실시하는데 필요한 정보를 확인할 수 있다. 예를 들어 데이터베이스(140)는 git-hub를 기반으로 하는 저장소를 포함할 수 있고, 테스트 케이스 정보를 송신하는 단계를 수행할 수 있다.
단계 S530에서, 전자 장치(100)는 풀 리퀘스트에 대응하여 테스트 케이스 정보에 따라 대상 코드에 기초하여 생성된 테스트 이미지를 확인할 수 있다.
단계 S540에서, 전자 장치(100)는 기준 이미지 및 테스트 이미지의 비교 결과를 확인할 수 있다. 기준 이미지 및 테스트 이미지의 비교 결과를 확인하는 단계는, 앞서 살핀 것과 같이 픽셀 기반 비교, 히스토그램 비교, SSIM(구조적 유사성 지수), MSE(평균 제곱 오차) 또는 컴퓨터 비전 알고리즘을 사용한 특징 기반 분석등의 다양한 분석 기술을 통해 수행될 수 있다.
단계 S545에서, 전자 장치(100)는 기준 이미지 및 테스트 이미지의 비교 결과가 동일한지 여부를 판단할 수 있고, 기준 이미지 및 테스트 이미지의 비교 결과가 동일한 경우 단계 S560에서 대상 코드에 대한 풀 리퀘스트를 패스할 수 있다. 전자 장치(100)는 기준 이미지 및 테스트 이미지의 비교 결과가 동일하지 않은 경우, 단계 S550에서 대상 코드에 대한 확인을 요청하는 제어 신호를 생성하여 작업자 단말(120)에 송신할 수 있다. 단계 S555에서 작업자 단말(120)은 확인 요청에 대한 응답을 송신할 수 있고, 이후 전자 장치(100)는 단계 S560에서 대상 코드에 대한 풀 리퀘스트를 패스할 수 있다. 확인 요청 및 이에 대한 응답이 이루어지는 과정에 대해서는 이하 도 5b에서 구체적으로 살핀다.
단계 S570에서, 전자 장치(100)는 대상 코드를 기준 코드에 병합할 수 있다. 전자 장치(100)는 대상 코드를 기준 코드에 병합한 이후 새로운 기준 코드에 기초하여 추가적인 코드 테스트를 진행할 수 있다. 예를 들어 테스트의 검토자는 풀 리퀘스트 된 대상 코드의 변경 사항을 검토, 개선 및 테스트한 후 대상 코드가 전체 프로젝트의 품질 표준을 충족하고 개발 목표와 일치하는 경우 대상 코드를 기존 코드 리포지토리에 병합한다는 결정을 내리고, 전자 장치(100)는 이러한 병합을 수행할 수 있다.
단계 S580에서, 전자 장치(100)는 작업자 단말(120)에 대상 코드 병합 알림을 송신할 수 있다. 예를 들어, 작업자 단말(120)은 전자 장치(100)로부터 대상 코드 병합 알림을 수신하고, 이후의 추가적인 코드 테스트를 진행하는 경우 이전에 병합된 대상 코드에 기초하여 추가적인 코드 테스트를 진행할 수 있다.
단계 S590에서 전자 장치(100)는 임시 기준 이미지 폐기 요청을 송신할 수 있다. 전자 장치(100)는 병합 이후 이미 사용한 임시 기준 이미지를 폐기함을 통해 전체 시스템을 경량화 할 수 있다.
도 5b를 참조하면, 단계 S545에서, 전자 장치(100)는 기준 이미지 및 테스트 이미지의 비교 결과가 동일한지 여부를 판단할 수 있고, 기준 이미지 및 테스트 이미지의 비교 결과가 동일한 경우 단계 S560에서 대상 코드에 대한 풀 리퀘스트를 패스할 수 있다. 전자 장치(100)는 기준 이미지 및 테스트 이미지의 비교 결과가 동일하지 않은 경우, 단계 S550에서 대상 코드에 대한 확인을 요청하는 제어 신호를 생성하여 작업자 단말(120)에 송신할 수 있고, 작업자 단말(120)로부터의 응답에 기초하여 단계 S511에서 대상 코드가 매뉴얼 리뷰(manual review)를 통과했는지 여부를 판단할 수 있다. 대상 코드가 매뉴얼 리뷰를 통과한 경우, 전자 장치는 단계 S560에서 대상 코드에 대한 풀 리퀘스트를 패스할 수 있다.
대상 코드가 매뉴얼 리뷰를 통과하지 못한 경우, 전자 장치는 단계 S522에서 풀 리퀘스트를 블록시키고 작업자 단말(120)에 테스트 코드의 수정 요청에 관한 제어 신호를 송신하여 수정된 코드가 매뉴얼 리뷰를 통과할 때까지 위 단계를 반복할 수 있다. 예를 들어, 위 단계에서 대상 코드의 검토자는 작업자 단말(120)에 풀 리퀘스트에 대한 피드백과 의견을 제공할 수 있다. 매뉴얼 리뷰를 수행하는 검토자는 대상 코드의 작업자에게 대상 코드에 대한 개선 사항을 제안하거나 대상 코드가 갖는 잠재적인 문제를 강조하거나 대상 코드에 대한 설명을 요청할 수 있으며, 이를 통해 대상 코드가 적합한 테스트 이미지를 생성하도록 대상 코드를 개선하도록 안내할 수 있다. 수정 요청에 대한 응답에 기반하여 기준 이미지와 수정된 테스트 이미지 간의 차이가 임계 값 미만인 경우 전자 장치(100)는 단계 S560에서 풀 리퀘스트를 통과시킬 수 있고, 앞서 살핀 바와 같이 병합을 수행할 수 있다.
*도 6은 일 실시 예에 따른 코드 테스트를 지원하는 전자 장치를 도식화한 블록도이다.
도 6을 참조하면, 도 6의 전자 장치(600)는 본원 명세서의 전자 장치(100)에 대응될 수 있다. 본 개시의 전자 장치(600)는 일 실시 예에 따라, 트랜시버(610), 스토리지(620) 및 프로세서(630)를 포함할 수 있다. 도 6에 도시된 구성요소들은 전자 장치를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 장치(600)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 한편 실시 예에서 프로세서(630)는 적어도 하나의 프로세서를 포함할 수 있다. 또한, 전자 장치(600)는 서버 또는 프록시 서버(Proxy Server)로 동작할 수도 있다.
트랜시버(610)는 유무선 통신 기술을 이용하여 외부의 장치와 통신할 수 있으며 트랜시버(610)를 포함할 수 있다. 외부의 장치는 개발자, 품질 보증 팀의 단말을 포함하는 단말 또는 서버가 될 수 있다. 또한, 트랜시버(610)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있을 수 있으며, 이에 한정되는 것은 아니다.
일 실시 예에 따라, 트랜시버(610)는 네트워크(160)를 통해 작업자 단말(120) 및 데이터베이스(140)와 통신하여 정보를 주고받을 수 있다. 보다 구체적으로, 트랜시버(610)는 데이터베이스(140)로부터 테스트 케이스 정보를 수신할 수 있고, 작업자 단말(120)로부터 대상 코드에 대한 풀 리퀘스트를 수신할 수 있다.
스토리지(620) 는 도 1 내지 도 5b를 통하여 전술한 적어도 하나의 방법을 수행하기 위한 정보를 저장할 수 있다. 스토리지(620)는 메모리로 호칭될 수 있고, 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(630)는 전자 장치(600)의 전반적인 동작을 제어하고 데이터 및 신호를 처리할 수 있다. 프로세서(630)는 도 1 내지 도 5b를 통하여 전술한 하나의 방법을 수행할 수 있다. 프로세서(630)는 트랜시버(610) 및 스토리지(620) 와, 나아가 전자 장치(600)가 더 포함할 수 있는 구성요소들과의 상호 작용을 통해 전자 장치(600)가 수행하는 실시 예들을 제어할 수 있다. 일 실시 예에 따라, 프로세서(630)는 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트(pull request)를 확인하고, 코드 테스트에 대한 테스트 케이스 정보를 확인하고, 테스트 케이스 정보에 대응하는 기준 이미지를 확인하고, 풀 리퀘스트에 대응하여 테스트 케이스 정보에 따라 대상 코드에 기초하여 생성된 테스트 이미지를 확인하고, 기준 이미지 및 테스트 이미지의 비교 결과를 확인하고, 비교 결과를 기반으로 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성할 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
전술한 실시 예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 아이콘 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler), 파이썬(Python) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시 예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시 예들이 구현될 수 있다.
Claims (12)
- 전자 장치에서의 코드 테스트 지원 방법에 있어서,상기 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트(pull request)를 확인하는 단계;상기 코드 테스트에 대한 테스트 케이스 정보를 확인하는 단계;상기 테스트 케이스 정보에 대응하는 기준 이미지를 확인하는 단계;상기 풀 리퀘스트에 대응하여 상기 테스트 케이스 정보에 따라 상기 대상 코드에 기초하여 생성된 테스트 이미지를 확인하는 단계;상기 기준 이미지 및 상기 테스트 이미지의 비교 결과를 확인하는 단계; 및상기 비교 결과를 기반으로 상기 대상 코드를 기준 코드에 병합(merge)할지 여부에 대한 제어 정보를 생성하는 단계를 포함하는,코드 테스트 지원 방법.
- 제1항에 있어서,상기 기준 이미지는,상기 테스트 케이스 정보에 따라 상기 대상 코드에 기초하여 생성되는 기본 기준 이미지 및 상기 테스트 케이스 정보에 따라 임시 코드에 기초하여 생성되는 임시 기준 이미지를 포함하는,코드 테스트 지원 방법.
- 제1항에 있어서,상기 대상 코드가 병합된 새로운 기준 코드에 기초하여 생성되는 기본 기준 이미지를 생성하는 단계를 더 포함하는,코드 테스트 지원 방법.
- 제1항에 있어서,상기 테스트 이미지를 확인하는 단계는,테스트 서버를 통해 상기 대상 코드를 기준 코드에 병합한 기준 코드에 기초하여 상기 테스트 이미지를 생성(generate)하고, 상기 테스트 이미지를 확인하는 단계를 포함하는,코드 테스트 지원 방법.
- 제1항에 있어서,상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는,상기 비교 결과가 동일한 경우,상기 풀 리퀘스트를 통과시키는 단계 및상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함하는,코드 테스트 지원 방법.
- 제1항에 있어서,상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는,상기 비교 결과가 동일하지 않은 경우,상기 대상 코드에 대한 확인을 작업자 단말에 요청하는 제어 신호를 생성하는 단계 및 상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함하는,코드 테스트 지원 방법.
- 제6항에 있어서,상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는,상기 요청에 관한 응답을 수신하는 단계;상기 기준 이미지와 상기 테스트 이미지 간의 차이가 임계 값 미만인 경우, 상기 풀 리퀘스트를 통과시키는 단계 및상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함하는,테스트 이미지 관리 방법.
- 제6항에 있어서,상기 요청에 기반하여 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계는,상기 요청에 관한 응답을 수신하는 단계;상기 기준 이미지와 상기 생성된 테스트 이미지 간의 차이가 임계 값 이상인 경우, 상기 풀 리퀘스트를 블록(block)시키는 단계;작업자 단말에 테스트 코드의 수정 요청에 관한 제어 신호를 송신하는 단계;상기 수정 요청에 대한 응답에 기반하여, 상기 기준 이미지와 수정된 테스트 이미지 간의 차이가 임계 값 미만인 경우 수정된 풀 리퀘스트를 통과시키는 단계 및상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는 단계를 포함하는,코드 테스트 지원 방법.
- 제1항에 있어서,상기 제어 정보에 기초하여 상기 대상 코드를 병합하는 단계 및상기 기준 이미지에 임시 기준 이미지가 포함된 경우, 상기 기준 이미지에 포함된 상기 임시 기준 이미지를 폐기(drop)하는 단계를 더 포함하는,코드 테스트 지원 방법.
- 제1항에 있어서,상기 비교 결과를 확인하는 단계는,상기 기준 이미지에 임시 기준 이미지가 포함되지 않은 경우,상기 대상 코드에 기초하여 생성되는 기본 기준 이미지와 상기 대상 코드에 기초하여 생성된 테스트 이미지의 비교 결과를 확인하는 단계를 포함하는,테스트 이미지 관리 방법.
- 코드 테스트를 지원하는 전자 장치에 있어서,트랜시버;하나 이상의 명령어를 저장하는 스토리지; 및상기 코드 테스트의 대상이 되는 대상 코드에 대한 풀 리퀘스트(pull request)를 확인하고,상기 코드 테스트에 대한 테스트 케이스 정보를 확인하고,상기 테스트 케이스 정보에 대응하는 기준 이미지를 확인하고,상기 풀 리퀘스트에 대응하여 상기 테스트 케이스 정보에 따라 상기 대상 코드에 기초하여 생성된 테스트 이미지를 확인하고,상기 기준 이미지 및 상기 테스트 이미지의 비교 결과를 확인하고,상기 비교 결과를 기반으로 상기 대상 코드를 기준 코드에 병합할지 여부에 대한 제어 정보를 생성하는,프로세서를 포함하는 전자 장치.
- 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비임시적 기록매체.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2023-0087007 | 2023-07-05 | ||
| KR1020230087007A KR102620097B1 (ko) | 2023-07-05 | 2023-07-05 | 코드 테스트 지원 방법 및 전자 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025009641A1 true WO2025009641A1 (ko) | 2025-01-09 |
Family
ID=89511933
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2023/009749 Ceased WO2025009641A1 (ko) | 2023-07-05 | 2023-07-10 | 코드 테스트 지원 방법 및 전자 장치 |
Country Status (3)
| Country | Link |
|---|---|
| KR (2) | KR102620097B1 (ko) |
| TW (2) | TWI898252B (ko) |
| WO (1) | WO2025009641A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001273168A (ja) * | 2000-03-24 | 2001-10-05 | Hitachi Information Systems Ltd | ソフトウエア自動テストシステム |
| KR20120121950A (ko) * | 2011-04-28 | 2012-11-07 | (주)아이엔에스랩 | 애플리케이션 그래픽 유저인터페이스 테스트 자동화 시스템 및 그 방법 |
| KR20150099175A (ko) * | 2014-02-21 | 2015-08-31 | 주식회사 넥스다임 | 애플리케이션 개발 환경 제공 방법과 이를 위한 기록매체 |
| KR101850303B1 (ko) * | 2016-09-13 | 2018-05-31 | 슈어소프트테크주식회사 | 소스 코드 위배 수정 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
| KR102156931B1 (ko) * | 2020-01-16 | 2020-09-16 | 주식회사 소프트센 | 블록 코딩된 프로그램 코드의 평가 장치, 시스템, 방법 및 기록 매체에 저장된 프로그램 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8700645B2 (en) * | 2007-08-17 | 2014-04-15 | Salesforce.Com, Inc. | On-demand database service system, method, and computer program product for validating a developed application |
| US9342439B2 (en) * | 2014-06-12 | 2016-05-17 | Synopsys, Inc. | Command coverage analyzer |
| CN114020627A (zh) * | 2021-11-05 | 2022-02-08 | 蔚来汽车科技(安徽)有限公司 | 应用程序的测试结果监测方法、装置及存储介质 |
-
2023
- 2023-07-05 KR KR1020230087007A patent/KR102620097B1/ko active Active
- 2023-07-10 WO PCT/KR2023/009749 patent/WO2025009641A1/ko not_active Ceased
- 2023-08-29 TW TW112132424A patent/TWI898252B/zh active
- 2023-08-29 TW TW114132131A patent/TW202548542A/zh unknown
- 2023-12-27 KR KR1020230192847A patent/KR20250007396A/ko active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001273168A (ja) * | 2000-03-24 | 2001-10-05 | Hitachi Information Systems Ltd | ソフトウエア自動テストシステム |
| KR20120121950A (ko) * | 2011-04-28 | 2012-11-07 | (주)아이엔에스랩 | 애플리케이션 그래픽 유저인터페이스 테스트 자동화 시스템 및 그 방법 |
| KR20150099175A (ko) * | 2014-02-21 | 2015-08-31 | 주식회사 넥스다임 | 애플리케이션 개발 환경 제공 방법과 이를 위한 기록매체 |
| KR101850303B1 (ko) * | 2016-09-13 | 2018-05-31 | 슈어소프트테크주식회사 | 소스 코드 위배 수정 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
| KR102156931B1 (ko) * | 2020-01-16 | 2020-09-16 | 주식회사 소프트센 | 블록 코딩된 프로그램 코드의 평가 장치, 시스템, 방법 및 기록 매체에 저장된 프로그램 |
Also Published As
| Publication number | Publication date |
|---|---|
| TWI898252B (zh) | 2025-09-21 |
| TW202548542A (zh) | 2025-12-16 |
| KR102620097B1 (ko) | 2024-01-02 |
| KR20250007396A (ko) | 2025-01-14 |
| TW202503533A (zh) | 2025-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11449408B2 (en) | Method, device, and computer program product for obtaining diagnostic information | |
| US10642717B2 (en) | Application user interface testing system and method | |
| CN115454869B (zh) | 界面自动化测试方法、装置、设备及存储介质 | |
| KR102202108B1 (ko) | 클라우드 인프라 자산의 취약점을 자동진단하기 위한 시스템 및 방법 | |
| US11604724B2 (en) | Software application component testing | |
| CN118713924B (zh) | 端口安全自动化测试方法、装置、设备及存储介质 | |
| US9703683B2 (en) | Software testing coverage | |
| CN113886221B (zh) | 测试脚本生成方法、装置、存储介质及电子设备 | |
| WO2024106621A1 (ko) | 스크립트와 관련한 정보를 제공하는 전자 장치 및 그 방법 | |
| US11061662B1 (en) | Maintenance of fast-changing software applications | |
| KR102620097B1 (ko) | 코드 테스트 지원 방법 및 전자 장치 | |
| US11748246B2 (en) | Crowd-sourced QA with trusted compute model | |
| WO2024058299A1 (ko) | Ab 테스트 코드 정보 관리를 위한 전자 장치 및 그 방법 | |
| WO2024128401A1 (ko) | 전자 장치 및 그의 정보 제공 방법 | |
| CN114942887A (zh) | 一种程序安全测试方法、装置、设备和介质 | |
| US20160275002A1 (en) | Image capture in application lifecycle management for documentation and support | |
| WO2025028691A1 (ko) | 정보를 처리하는 방법 및 전자 장치 | |
| US20250294062A1 (en) | Web based electronic device registration | |
| WO2024147400A1 (ko) | 불변성을 검증하는 전자 장치 및 그 방법 | |
| US12524331B2 (en) | Method and apparatus to recognize and correlate screens | |
| US20260119376A1 (en) | Performing code review and generation of test scenarios using integrated programmatic and specialized guided and constrained artificial intelligence | |
| WO2025116378A1 (en) | System and methods for cloud agnostic infrastructure provisioning | |
| WO2024063183A1 (ko) | 테스트를 수행하기 위한 방법 및 장치 | |
| US11928040B2 (en) | API adapter test system, API adapter test assistance device, API adapter test assistance method, and API adapter test assistance program | |
| CN121614380A (zh) | 页面测试方法、装置、电子设备、介质及产品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23944457 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |