KR102153811B1 - Method and apparatus for prioritizing web browser environment for testing web application - Google Patents
Method and apparatus for prioritizing web browser environment for testing web application Download PDFInfo
- Publication number
- KR102153811B1 KR102153811B1 KR1020190010915A KR20190010915A KR102153811B1 KR 102153811 B1 KR102153811 B1 KR 102153811B1 KR 1020190010915 A KR1020190010915 A KR 1020190010915A KR 20190010915 A KR20190010915 A KR 20190010915A KR 102153811 B1 KR102153811 B1 KR 102153811B1
- Authority
- KR
- South Korea
- Prior art keywords
- web browser
- browser environment
- priority
- determining
- environment
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법 및 장치가 제시된다. 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법은, 클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 단계를 포함하여 이루어질 수 있다. A method and apparatus for determining the priority of a web browser environment for web application testing are presented. The method for determining the priority of a web browser environment for testing a web application according to an embodiment uses information on a failure history related to a web browser environment in the web application when performing a regression test on a client-side web application, and And determining the priority of the web browser environment by using information on failure of at least one of the information on the recently failed web browser environment and information on the frequently failed web browser environment.
Description
아래의 실시예들은 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법 및 장치에 관한 것이다.The following embodiments relate to a method and apparatus for determining the priority of a web browser environment for testing a web application.
현대의 클라이언트 측 웹 어플리케이션(web application)은 점점 더 복잡해지고 오류가 발생하기 쉬워지고 있다. 이러한 어플리케이션의 실패는 웹 브라우저(web browser), 그 버전 및 기반 운영 체제의 다양한 조합에서 다르게 나타날 수 있으며, 일부 브라우저의 조합이 클라이언트 측 웹 어플리케이션이 필요로 하는 특정 기능을 지원하지 않을 수 있기 때문에 발생될 수 있다. Modern client-side web applications are becoming increasingly complex and error prone. Failure of these applications may appear differently in various combinations of web browsers, their versions, and base operating systems, and occurs because some combinations of browsers may not support specific functions required by client-side web applications. Can be.
그러한 구성 관련 실패가 웹 어플리케이션의 사용에 영향을 미치지 않도록 하기 위해 적절한 테스트가 필요하다. 새로운 코드 또는 변경된 코드로 인해 사전에 테스트된 기능에서 예상치 못한 실패가 발생할 수 있기 때문에, 특히 웹 어플리케이션이 진화함에 따라 더욱 테스트가 필요하다. 이러한 이유로 웹 어플리케이션 회귀 테스트 기술은 활발하게 연구되어 왔다. 그러한 기술에는 웹 어플리케이션의 이전 버전에서 자동으로 생성되는 테스트 케이스 또는 오라클을 위한 접근법, 웹 어플리케이션 업데이트 후 유효하지 않은 테스트 케이스 개선, 회귀 테스트 수트의 서브셋 선택 또는 우선순위 결정, 증대 테스트 수트 등이 포함된다. 그러나 이 작업 중 어느 것도 다른 웹 브라우저와 운영 체제가 이용되는 환경과 같이, 서로 다른 웹 브라우저 환경(이하, 브라우저 환경이라고 함.)에서 회귀 테스트를 할 때 발생하는 추가 문제를 고려하지 않았다.Appropriate testing is required to ensure that such configuration-related failures do not affect the use of the web application. Since unexpected failures may occur in previously tested functions due to new or changed code, more testing is required, especially as web applications evolve. For this reason, web application regression test technology has been actively studied. Such technologies include test cases that are automatically generated from previous versions of the web application or approaches for Oracle, remediation of invalid test cases after web application updates, selection or prioritization of subsets of regression test suites, and augmentation test suites. . However, none of these tasks take into account the additional problems that arise when regression tests are performed in different web browser environments (hereinafter referred to as browser environments), such as environments in which different web browsers and operating systems are used.
개발자가 서로 다른 브라우저 환경에서 기능하도록 되어 있는 웹 어플리케이션을 수정할 때, 웹 어플리케이션의 회귀 테스트에 많은 시간과 컴퓨팅 리소스가 필요할 수 있다. 현재까지 100가지 이상의 서로 다른 웹 브라우저가 존재한다. 각 웹 브라우저는 필드에서 동시에 많은 다른 버전을 가질 수 있으며, 각 버전은 서로 다른 컴퓨팅 디바이스의 넓은 범위의 다양한 운영 체제에서 실행할 수 있다. 이것은 웹 어플리케이션의 회귀 테스트를 위한 스케일의 문제를 야기한다. 회귀 테스트 시간의 연장은 웹 브라우저의 결합 실패에 대해 개발자에게 제공할 수 있는 피드백을 지연시켜 실패의 디버깅과 새로운 버전의 출시를 지연시킨다.When a developer modifies a web application that is intended to function in different browser environments, a lot of time and computing resources may be required for regression testing of the web application. To date, there are over 100 different web browsers. Each web browser can have many different versions simultaneously in the field, and each version can run on a wide range of different operating systems on different computing devices. This causes a problem of scale for regression testing of web applications. Prolonging the regression test time delays the feedback that can be provided to the developer about the web browser's mating failure, delaying the debugging of the failure and the release of a new version.
실시예들은 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법 및 장치에 관하여 기술하며, 보다 구체적으로 다양한 웹 브라우저 환경에서 클라이언트 측 웹 어플리케이션을 회귀 테스트할 때 실패에 대한 피드백을 더 빠르게 개발자에게 제공할 수 있는 웹 브라우저 환경의 우선순위를 정하는 기술을 제공한다. The embodiments describe a method and apparatus for determining the priority of a web browser environment for testing a web application, and more specifically, provide feedback on failure to a developer when regression testing a client-side web application in various web browser environments. It provides the technology to prioritize the web browser environment that can be done.
일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법은, 클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 단계를 포함하여 이루어질 수 있다. The method for determining the priority of a web browser environment for testing a web application according to an embodiment uses information on a failure history related to a web browser environment in the web application when performing a regression test on a client-side web application, and And determining the priority of the web browser environment by using information on failure of at least one of the information on the recently failed web browser environment and information on the frequently failed web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는, 캐시(cache)에 저장된 웹 브라우저의 유형, 웹 브라우저 이름, 웹 브라우저 버전 및 운영 체제의 유형 중 적어도 어느 하나 이상의 상기 최근 실패한 웹 브라우저 환경의 정보를 이용하며, 상기 캐시의 정보에 따라 스케줄링되고, 최근의 실패 정보가 있는 웹 브라우저 환경은 다른 웹 브라우저 환경보다 높은 우선순위를 할당할 수 있다. The step of determining the priority of the web browser environment includes information on the recently failed web browser environment at least one of a type of a web browser, a name of a web browser, a version of a web browser, and a type of an operating system stored in a cache. The web browser environment, which is scheduled according to the information in the cache, and has recent failure information, may be assigned a higher priority than other web browser environments.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는, 상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 단계; 및 복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 원래 순서 또는 무작위로 스케줄링하는 단계를 포함할 수 있다. The step of determining the priority of the web browser environment, wherein the cache lists information on the web browser environment that failed recently, and a higher priority when the web browser environment of the test target build is included in the cache. Allocating; And scheduling the plurality of web browser environments in the same order or randomly.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는, 상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경과 상기 캐시에서의 각 웹 브라우저 환경 간의 유사성을 계산하는 단계; 및 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경을 계산된 상기 유사성에 따라 내림차순으로 스케줄링하는 단계를 포함할 수 있다. In the step of determining the priority of the web browser environment, the cache lists information on the web browser environment that has recently failed, and between each web browser environment in the test target build and each web browser environment in the cache. Calculating similarity; And scheduling each web browser environment in the test target build in descending order according to the calculated similarity.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는, 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득하는 단계; 및 상기 웹 브라우저 환경의 상기 실패 빈도에 따라 내림차순으로 스케줄링하는 단계를 포함할 수 있다. The determining of the priority of the web browser environment may include: acquiring a failure frequency of a web browser environment in which the regression test frequently fails; And scheduling in descending order according to the failure frequency of the web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는, 머신러닝(Machine Learning, ML) 기반으로 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공하는 단계; 및 상기 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링하는 단계를 포함할 수 있다. The step of determining the priority of the web browser environment is to automatically learn the failure pattern of the web browser environment in which the regression test frequently fails based on machine learning (ML), and the web browser environment fails in subsequent builds. Providing a probability; And scheduling the web browser environment in descending order according to a probability of failure.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는, 상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 단계; 복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득하는 단계; 및 상기 웹 브라우저 환경의 상기 실패 빈도에 따라 내림차순으로 스케줄링하는 단계를 포함할 수 있다. The step of determining the priority of the web browser environment, wherein the cache lists information on the web browser environment that failed recently, and a higher priority when the web browser environment of the test target build is included in the cache. Allocating; Obtaining a failure frequency of a web browser environment in which the regression test frequently fails when the plurality of web browser environments have the same priority; And scheduling in descending order according to the failure frequency of the web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는, 상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 단계; 복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 머신러닝(Machine Learning, ML) 기반으로 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공하는 단계; 및 상기 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링하는 단계를 포함할 수 있다. The step of determining the priority of the web browser environment, wherein the cache lists information on the web browser environment that failed recently, and a higher priority when the web browser environment of the test target build is included in the cache. Allocating; If the priority of multiple web browser environments is the same, it automatically learns the failure pattern of the web browser environment that frequently failed the regression test based on machine learning (ML), and the probability of failure in the web browser environment in subsequent builds. Providing a; And scheduling the web browser environment in descending order according to a probability of failure.
결정된 상기 웹 브라우저 환경의 우선순위를 결정 방법에 따라 웹 브라우저 환경에 대해 상기 회귀 테스트를 수행하는 단계를 더 포함하고, 상기 회귀 테스트를 수행하는 단계는, 첫 번째 실패한 빌드(build)의 회귀 테스트 결과를 기반으로 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 빌드하는 단계; 결정된 상기 웹 브라우저 환경의 우선순위를 결정 방법에 의해 생성된 우선순위에 따라 테스트 대상 빌드의 웹 브라우저 환경에 우선순위를 결정하는 단계; 상기 테스트 대상 빌드에 대한 회귀 테스트 결과 값을 측정하는 단계; 및 모든 웹 브라우저 환경이 아닌 일부 빌드에서 상기 회귀 테스트가 실패할 때 상기 테스트 대상 빌드의 회귀 테스트 결과를 기반으로 상기 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 업데이트하는 단계를 포함할 수 있다. Further comprising the step of performing the regression test on the web browser environment according to the determined method of determining the priority of the web browser environment, wherein the step of performing the regression test is a regression test result of the first failed build Building a data structure and a machine learning (ML) model for a cache, a failure frequency based on the data; Determining a priority of the web browser environment of the test target build according to the priority generated by the determined priority of the web browser environment; Measuring a regression test result value for the test target build; And updating the cache, the data structure for the failure frequency, and a machine learning (ML) model based on the regression test result of the test target build when the regression test fails in some builds other than all web browser environments. can do.
상기 생성된 우선순위에 따라 테스트 대상 빌드의 웹 브라우저 환경에 우선순위를 결정하는 단계는, 복수의 웹 브라우저 환경이 동일한 우선순위를 갖는 경우 무작위 우선순위 결정을 하는 단계를 포함할 수 있다. Determining the priority of the web browser environment of the test target build according to the generated priority may include determining a random priority when a plurality of web browser environments have the same priority.
다른 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 장치는, 클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 우선순위 결정부를 포함하여 이루어질 수 있다. The apparatus for determining the priority of a web browser environment for testing a web application according to another embodiment uses information on a failure history related to a web browser environment in the web application when performing a regression test on a client-side web application, and And a priority determining unit that determines the priority of the web browser environment by using information on failure of at least one of the recently failed web browser environment information and the frequently failed web browser environment information.
웹 브라우저의 유형, 웹 브라우저 이름, 웹 브라우저 버전 및 운영 체제의 유형 중 적어도 어느 하나 이상의 상기 최근 실패한 웹 브라우저 환경의 정보를 저장하는 캐시(cache)를 포함하고, 상기 우선순위 결정부는, 상기 캐시의 정보에 따라 스케줄링되고, 최근의 실패 정보가 있는 웹 브라우저 환경은 다른 웹 브라우저 환경보다 높은 우선순위를 할당할 수 있다. And a cache for storing information on the recently failed web browser environment at least one of a type of a web browser, a name of a web browser, a version of a web browser, and a type of an operating system, and the priority determining unit includes: A web browser environment scheduled according to information and having recent failure information may be assigned a higher priority than other web browser environments.
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 캐시 적중 확인부를 더 포함하고, 상기 우선순위 결정부는, 복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 원래 순서 또는 무작위로 스케줄링할 수 있다. The cache further includes a cache hit check unit for listing information on the recently failed web browser environment, and assigning a higher priority when the web browser environment of the test target build is included in the cache, and the priority When the priorities of the plurality of web browser environments are the same, the priority determining unit may schedule an original order or randomly.
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경과 상기 캐시에서의 각 웹 브라우저 환경 간의 유사성을 계산하는 유사성 계산부를 더 포함하고, 상기 우선순위 결정부는, 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경을 계산된 상기 유사성에 따라 내림차순으로 스케줄링할 수 있다. The cache further includes a similarity calculation unit for listing information on the recently failed web browser environment, and calculating a similarity between each web browser environment in the test target build and each web browser environment in the cache, and the priority The ranking unit may schedule each web browser environment in a test target build in descending order according to the calculated similarity.
상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득하는 실패 빈도 획득부를 더 포함하고, 상기 우선순위 결정부는, 상기 웹 브라우저 환경의 상기 실패 빈도에 따라 내림차순으로 스케줄링할 수 있다. A failure frequency obtaining unit for obtaining a failure frequency of a web browser environment in which the regression test frequently fails, and the priority determining unit may schedule in a descending order according to the failure frequency of the web browser environment.
머신러닝(Machine Learning, ML) 기반으로 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공하는 머신러닝 모델부를 더 포함하고, 상기 우선순위 결정부는, 상기 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링할 수 있다. Further comprising a machine learning model unit that automatically learns a failure pattern of a web browser environment that frequently fails the regression test based on machine learning (ML), and provides a probability of failure to the web browser environment in a subsequent build, the The priority determining unit may schedule the web browser environment in descending order according to a probability of failure.
실시예들에 따르면 다양한 웹 브라우저 환경에서 클라이언트 측 웹 어플리케이션을 회귀 테스트할 때 실패에 대한 피드백을 더 빠르게 개발자에게 제공할 수 있는 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법 및 장치를 제공할 수 있다.According to embodiments, a method and apparatus for prioritizing a web browser environment for testing a web application that can provide feedback on failure to a developer more quickly when performing a regression test on a client-side web application in various web browser environments are provided. I can.
실시예들에 따르면 코드 커버리지(code coverage) 정보를 요구하지 않으므로 비용이 절감되며, 지속적인 통합(Continuous Integration, CI) 환경에서 회귀 테스트가 실행되는 시간 간격(time interval)이 짧아 실행을 지원하는 데 효과적이다. According to the embodiments, the cost is reduced because code coverage information is not required, and the time interval at which the regression test is executed in a continuous integration (CI) environment is short, so it is effective to support execution. to be.
도 1은 일 실시예에 따른 웹 어플리케이션의 웹 브라우저 환경의 우선순위 결정의 효과를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법을 나타내는 흐름도이다.
도 3은 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 장치를 나타내는 블록도이다.
도 4는 일 실시예에 따른 정확한 매칭-기반 우선순위 결정 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 유사성 매칭-기반 우선순위 결정 방법을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 실패-빈도-기반 우선순위 결정 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 머신러닝 기반 우선순위 결정 방법을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 하이브리드 우선순위 결정 방법을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 회귀 테스트를 수행 방법을 나타내는 흐름도이다.
도 10은 일 실시예에 따른 우선순위 결정 방법에 따른 APFDC 값에 대한 데이터를 나타낸다, 1 is a diagram for explaining the effect of determining the priority of a web browser environment of a web application according to an exemplary embodiment.
2 is a flowchart illustrating a method of determining a priority of a web browser environment for testing a web application according to an embodiment.
3 is a block diagram illustrating an apparatus for determining priority of a web browser environment for testing a web application according to an exemplary embodiment.
4 is a diagram for describing a method of determining an accurate matching-based priority according to an embodiment.
5 is a diagram for describing a method for determining a similarity matching-based priority according to an embodiment.
6 is a diagram illustrating a method of determining a failure-frequency-based priority according to an embodiment.
7 is a diagram for describing a method of determining a machine learning-based priority according to an embodiment.
8 is a diagram for describing a method of determining a hybrid priority according to an exemplary embodiment.
9 is a flowchart illustrating a method of performing a regression test according to an exemplary embodiment.
10 shows data on an APFD C value according to a priority determination method according to an embodiment,
이하, 첨부된 도면을 참조하여 실시예들을 설명한다. 그러나, 기술되는 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명되는 실시예들에 의하여 한정되는 것은 아니다. 또한, 여러 실시예들은 당해 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해서 제공되는 것이다. 도면에서 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Hereinafter, embodiments will be described with reference to the accompanying drawings. However, the described embodiments may be modified in various forms, and the scope of the present invention is not limited by the embodiments described below. In addition, various embodiments are provided to more completely explain the present invention to those of ordinary skill in the art. In the drawings, the shapes and sizes of elements may be exaggerated for clearer explanation.
아래의 실시예들은 다양한 웹 브라우저 환경에서 클라이언트 측 웹 어플리케이션을 회귀 테스트할 때 실패에 대한 피드백을 더 빠르게 개발자에게 제공할 수 있는 웹 브라우저 환경의 우선순위를 정하는 기술을 제공할 수 있다. The following embodiments may provide a technology for prioritizing a web browser environment capable of providing feedback on failure to a developer more quickly when performing a regression test on a client-side web application in various web browser environments.
실시예들은 회귀 테스트의 기존 어플리케이션에서 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용할 수 있다. 실시예들에 따른 2 가지 기술은 캐시에 저장된 웹 브라우저의 유형, 브라우저 버전, 운영 체제의 유형 등 최근의 실패 정보를 활용하며, 테스트 실행 환경은 캐시된 정보에 따라 스케줄링될 수 있다. 최근의 실패(recent failure) 정보가 있는 브라우저 환경은 다른 것보다 우선순위가 높으며, 빨리 테스트될 수 있다. 다른 2 가지 기술은 일반적으로 실패(common failure)하는 브라우저 환경에 기초하고 있으며, 이전(prior) 빌드(build)에서는 회귀 테스트가 여러 번 실패한 브라우저 환경에 더 큰 우선순위를 부여하는 실패-빈도-기반 접근법과, 실패 패턴을 자동으로 학습하고 웹 어플리케이션 테스트가 실패할 가능성이 높은 브라우저 환경을 예측하는 머신러닝-기반 접근법을 제안할 수 있다. 마지막으로, 또 다른 2 가지 기술은 최근의 실패와 일반적인 실패의 환경 모두에 대한 정보를 고려할 수 있다. 이 기술은 먼저 캐시된 정보를 기반으로 브라우저 환경을 스케줄링하고, 우선순위가 동일한 브라우저 환경의 경우에 주문하는 데에 실패-빈도-기반 또는 머신러닝-기반 접근방식을 적용할 수 있다.Embodiments may use information about a failure history related to a browser environment in an existing application of a regression test. Two technologies according to embodiments utilize recent failure information such as the type of web browser, browser version, and type of operating system stored in the cache, and the test execution environment may be scheduled according to the cached information. Browser environments with recent failure information have a higher priority than others and can be tested quickly. The other two techniques are based on browser environments that generally fail (common failure), and in prior builds, failure-frequency-based, which gives a greater priority to browser environments where regression tests fail multiple times. Approaches and machine learning-based approaches that automatically learn failure patterns and predict browser environments that are likely to fail web application tests can be proposed. Finally, another two techniques can take into account information about both the recent failure and the environment of general failure. The technology first schedules browser environments based on cached information, and can apply a failure-frequency-based or machine learning-based approach to ordering in the case of browser environments with the same priority.
실시예들에 따른 우선순위 결정 기술에는 몇 가지 이점이 있다. 첫째, 실시예들은 현대의 웹 어플리케이션에 적용할 수 있다. 현대의 웹 어플리케이션은 HTML, JavaScript, CSS와 같은 언어들이 혼합되어 작성되기 때문에, 일반적으로 기존의 테스트 케이스 우선순위 지정 방법에 의해 요구되는 테스트 케이스에 대한 코드 커버리지(code coverage)를 얻는 것은 어렵고 비용이 많이 든다. 그러나 실시예들에 따른 우선순위 결정 기술은 코드 커버리지 정보를 필요로 하지 않는다. 둘째, 실시예들은 특히 지속적인 통합(Continuous Integration, CI) 실행을 지원하는 데 효과적이다. 지속적인 통합(CI) 환경에서는 회귀 테스트가 실행되는 시간 간격(time interval)이 짧다. 개발자는 자신의 코드를 메인라인 코드베이스(mainline codebase)에 자주 체크하며, 해당 코드와 관련된 회귀 테스트는 해당 브라우저 환경에서 수행되어야 한다. 코드 커버리지 계산 기술은 이러한 프로세스에서 발생하는 변화의 속도를 따라갈 수 없다.There are several advantages to the prioritization technique according to the embodiments. First, the embodiments can be applied to modern web applications. Since modern web applications are written in a mixture of languages such as HTML, JavaScript, and CSS, it is difficult and expensive to obtain code coverage for test cases, which is generally required by the existing test case prioritization method. It costs a lot. However, the priority determination technique according to the embodiments does not require code coverage information. Second, the embodiments are particularly effective in supporting continuous integration (CI) execution. In a continuous integration (CI) environment, the time interval at which regression tests are executed is short. Developers frequently check their code in the mainline codebase, and regression tests related to the code must be performed in the browser environment. Code coverage calculation techniques cannot keep up with the pace of change occurring in this process.
여기에서는 적지 않고(non-trivial), 인기 있는 4 개의 오픈 소스(open source) 웹 어플리케이션에 대한 실시예들에 따른 기술을 경험적으로 연구하였다. 그 결과는 실시예들에 따른 기술이 비용 효율적(cost-effective)일 수 있다는 것을 보여준다. 실시예들에 따른 접근 방식은 브라우저 환경이 우선순위 결정 없음(no ordering)과 무작위 우선순위 결정(random ordering)되는 2 가지 기준 접근 방식보다, 일반적으로 더 빠르게 더 많은 실패를 감지할 수 있다. 또한, 6 가지 우선순위 기술을 비교했고, 어떤 기술이 각 실험 객체에 대한 다른 기술보다 더 비용 효율적인지 분석하였다. 이 분석은 개발자가 웹 어플리케이션 테스트에서 먼저 적용해야 하는 우선순위 결정 기술을 제시할 수 있다. 또한, 우선순위 지정 시간 오버헤드(overhead) 및 병렬 테스트 실행과 같은 산업에서 실시예들에 따른 기술을 사용하는 것에 대한 몇 가지 실질적인 문제들을 다루었다.Here, we have empirically studied techniques according to embodiments for four popular open source web applications that are non-trivial. The results show that the technology according to the embodiments can be cost-effective. The approach according to the embodiments can detect more failures generally faster than the two criteria approach in which the browser environment is not prioritized (no ordering) and random ordering (random ordering). In addition, we compared the six priority techniques and analyzed which technique is more cost-effective than the other techniques for each experimental object. This analysis can suggest prioritization techniques that developers should first apply in web application testing. In addition, some practical issues have been addressed with the use of techniques according to embodiments in industries such as prioritization time overhead and parallel test execution.
아래에서는, 첫 번째로 웹 어플리케이션의 브라우저 환경 우선순위 결정 프로세스를 조사하고, 회귀 테스트에 대해 웹 브라우저 환경의 우선순위를 결정하기 위해 4 가지 새로운 기술을 제안한다. 이는 이전 회귀 테스트 세션의 테스트 결과에 의존한다. 적지 않은 실제의 웹 어플리케이션을 사용하여 실시예들에 따른 기술에 대한 경험적 평가 결과를 보고하며, 그 결과 실시예에 따른 기술의 비용 효율성을 보여준다. Below, we first investigate the process of determining the browser environment prioritization of the web application, and propose four new techniques to determine the priority of the web browser environment for the regression test. It depends on the test results of the previous regression test session. A number of actual web applications are used to report the result of empirical evaluation of the technology according to the embodiments, and as a result, the cost efficiency of the technology according to the embodiment is shown.
이 작업에 더 많은 동기를 부여하기 위해, 웹 브라우저 환경 스케줄링이 웹 어플리케이션에 대한 회귀 테스트의 비용 효율성에 영향을 미치는지 여부에 대한 초기 조사 결과를 제시한다. 이러한 분석을 위해 DOM(Document Object Model) 요소를 조작하고 이벤트를 처리하는 인기 있는 오픈 소스 웹 어플리케이션인 Mootools(비특허문헌 1)을 고려했다. 웹 브라우저 환경을 확보하고 각 환경에서 어플리케이션을 테스트하는 데 필요한 시간을 측정하기 위해, Mootools에 대한 테스트 결과가 저장되는 Travis CI(비특허문헌 2)에서 이전의 Mootools 빌드 이력을 검색하였다. 사용한 빌드 이력은 2014년 3월 16일에 시작해서 2015년 2월 9일에 끝났다. 이 조사와 직접적으로 관련이 없는 빌드 이력을 제외한다. 예를 들어 일부 빌드 기록은 컴파일 실패로 인한 테스트 결과를 포함하지 않으며, 일부 빌드 기록은 실패한 웹 브라우저 환경에 대한 정보를 제공하지 않는다. 그러한 빌드 이력을 제외하면 10 개가 남는다.To motivate more of this work, we present the results of an initial investigation into whether scheduling the web browser environment affects the cost-effectiveness of regression testing for web applications. For this analysis, we considered Mootools (Non-Patent Document 1), a popular open source web application that manipulates DOM (Document Object Model) elements and handles events. In order to secure the web browser environment and measure the time required to test the application in each environment, the previous Mootools build history was searched in Travis CI (Non-Patent Document 2), which stores test results for Mootools. The build history used started on March 16, 2014 and ended on February 9, 2015. Exclude build history not directly related to this investigation. For example, some build records do not include test results due to compilation failures, and some build records do not provide information about the failed web browser environment. Excluding those build histories, 10 are left.
각 빌드에 대해, 테스트를 거친 웹 브라우저 환경의 수를 계산하였다. 빌드 전체의 중간값, 최솟값 및 최댓값은 각각 23.5, 22.0, 24.0이었다. 각 웹 브라우저 환경은 여러 개의 속성을 포함하는데, 이는 브라우저 타입 및 버전, 운영 체제 및 버전, 빌드 타입("default" 및 "nocompat")이다. 여기서, "default" 및 "nocompat" 용어는 어플리케이션이 이전 버전과 호환되는지 여부를 나타낸다. 5 가지 브라우저 타입이 있지만, 웹 브라우저 환경의 다른 속성들을 변화시킴으로써 환경의 수는 24 개로 증가할 수 있다.For each build, the number of tested web browser environments was calculated. The median, minimum, and maximum values of the entire build were 23.5, 22.0, and 24.0, respectively. Each web browser environment contains several attributes, which are browser type and version, operating system and version, and build type ("default" and "nocompat"). Here, the terms "default" and "nocompat" indicate whether the application is compatible with the previous version. There are 5 browser types, but the number of environments can be increased to 24 by changing other properties of the web browser environment.
전체 실행 환경에서 회귀 테스트 시간을 단축하기 위한 한 가지 공통적인 전략은 각 환경에서 테스트 수트(test suite)를 동시에 실행하는 것이다. Sauce Labs(비특허문헌 3) 및 BrowserStack과 같은 인기 클라우드-기반 테스트 서비스는 이러한 접근 방법을 지원하며, Mootools는 Sauce Labs를 사용한다. 이러한 경우에 테스트 수트는 동시에 실행할 수 있지만, 필요한 총 테스트 시간은 테스트할 환경의 수에 따라 달라질 수 있다. 테스트 환경의 수가 병렬로 사용할 수 있는 리소스의 수보다 많으면, 특정 환경에서만 발견할 수 있는 실패를 검출하는 데 상당한 시간이 필요할 수 있다. 가용 리소스 수를 늘리면 이 문제를 해결할 수 있지만, 추가 비용이 발생한다. 관리해야 할 웹 어플리케이션이 많다면, 각 웹 어플리케이션이 과도한 리소스를 소비하는 것을 방지함으로써 컴퓨팅 리소스를 효율적으로 사용하는 것이 더 중요해질 것이다. 유사한 이유로, 테스트 케이스 우선순위 결정에 대한 기존 연구는 회귀 테스트의 비용 효율성을 개선하기 위해 동시에 일어나는 환경에서의 테스트 케이스의 스케줄링이 중요하다는 점을 강조한다.One common strategy to shorten the regression test time across the entire execution environment is to run the test suite in each environment simultaneously. Popular cloud-based testing services such as Sauce Labs (Non-Patent Document 3) and BrowserStack support this approach, and Mootools uses Sauce Labs. In this case, the test suite can be run simultaneously, but the total test time required can vary depending on the number of environments to be tested. If the number of test environments is greater than the number of resources available in parallel, significant time may be required to detect failures that can only be found in a particular environment. Increasing the number of available resources can solve this problem, but it does incur additional costs. If there are many web applications to manage, it will become more important to use computing resources efficiently by preventing each web application from consuming excessive resources. For similar reasons, existing research on test case prioritization highlights the importance of scheduling test cases in a concurrent environment to improve the cost effectiveness of regression testing.
도 1은 일 실시예에 따른 웹 어플리케이션의 웹 브라우저 환경의 우선순위 결정의 효과를 설명하기 위한 도면이다. 1 is a diagram for explaining the effect of determining the priority of a web browser environment of a web application according to an exemplary embodiment.
도 1을 참조하면, Mootools의 웹 브라우저 환경의 2 가지 다른 스케줄(원래(original) 스케줄 및 최적의(optimal) 스케줄)을 비교하고, 최적의 스케줄이 회귀 테스트의 비용 효율성을 향상시켰는지 여부를 측정할 수 있다. 원래 스케줄에는 Mootools의 빌드 이력에 기록된 테스트 스케줄을 사용하는 것이 포함되지만, 반면에 최적의 스케줄은 실패가 관측된 모든 웹 브라우저 환경이, 실패가 관측되지 않은 웹 브라우저 환경보다 앞서 배치되도록 할 수 있다. 그런 다음 빌드 기록에서 각 브라우저 환경에 대한 실행 시간(Sauce Labs의 "job time")을 추출할 수 있다. 다음으로, 적어도 하나의 실패 테스트 케이스가 포함된 웹 브라우저 환경이 보고된 시간을 계산할 수 있다. 그런 다음 최적의 스케줄 및 원래 스케줄에 대해 보고된 계산된 시간("feedback time")을 비교할 수 있다.Referring to FIG. 1, two different schedules (original schedule and optimal schedule) of Mootools' web browser environment are compared, and it is measured whether the optimal schedule has improved the cost efficiency of the regression test. can do. The original schedule included using the test schedule recorded in Mootools' build history, while the optimal schedule would allow all web browser environments with observed failures to be deployed ahead of those with no observed failures. . You can then extract the execution time ("job time" from Sauce Labs) for each browser environment from the build history. Next, the time when the web browser environment including at least one failure test case is reported may be calculated. You can then compare the optimal schedule and the calculated time ("feedback time") reported against the original schedule.
모든 10개의 빌드에서, 최적의 스케줄은 원래 스케줄보다 평균 315.12초 빠른 피드백을 제공할 수 있다. 도 1에 도시된 바와 같이, 빌드 ID 200에 사용된 브라우저 환경이 스케줄되었을 때 각 스케줄에 대해 얻은 피드백 시간을 보여줄 수 있다. 최적의 스케줄은 실선으로 표시되고, 순위가 정해져 있지 않은 스케줄은 점선으로 표시된다. 24 개의 브라우저 환경에서 5 개의 실패가 발생하였다. x축은 각각의 실패한 브라우저 환경을 나타내고, y축은 각각의 실패한 브라우저 환경과 관련된 피드백 시간을 나타낸다. 최적의 스케줄은 153초로, 원본 스케줄보다 472초 더 빠른 피드백을 제공했다(68%에서 86%로 더 빠름). 이것은 웹 브라우저 환경을 스케줄링하는 기술이 피드백을 개선할 수 있는 가능성을 가지고 있음을 보여준다.In all 10 builds, the optimal schedule can provide feedback on average 315.12 seconds faster than the original schedule. As shown in FIG. 1, when the browser environment used for the
도 2는 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법을 나타내는 흐름도이다. 2 is a flowchart illustrating a method of determining a priority of a web browser environment for testing a web application according to an embodiment.
도 2를 참조하면, 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법은, 클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 단계(S110)를 포함하여 이루어질 수 있다. Referring to FIG. 2, in a method of determining the priority of a web browser environment for testing a web application according to an embodiment, when a client-side web application is subjected to a regression test, the failure history related to the web browser environment is determined in the web application. And determining the priority of the web browser environment by using information on the failure of at least one of the recently failed web browser environment information and the frequently failed web browser environment information (S110). I can.
또한, 실시예에 따라 결정된 웹 브라우저 환경의 우선순위를 결정 방법에 따라 웹 브라우저 환경에 대해 회귀 테스트를 수행하는 단계(S120)를 더 포함할 수 있다. In addition, the step S120 of performing a regression test on the web browser environment according to a method for determining the priority of the web browser environment determined according to the embodiment may be further included.
실시예들은 다른 웹 브라우저 환경에서 클라이언트 측 웹 어플리케이션을 회귀 테스트(regression test)할 때 실패(failure)에 대한 피드백을 더 빠르게 개발자에게 제공할 수 있는 웹 브라우저 환경의 우선순위를 정하는 6 가지 기술을 제공할 수 있다. 여기에서는 기존의 테스트 케이스가 적용 가능한 각 환경에서 실행될 것이라는 가정 하의 브라우저 환경에 초점을 맞추고 있다. 실시예들은 테스트 케이스의 우선순위 결정에 사용되는 방법을 사용하지만, 최근 그리고 빈번한 실패에 대한 정보에 기초하여 웹 브라우저 환경의 우선순위를 결정할 수 있다. The embodiments provide six techniques for prioritizing a web browser environment that can provide developers with feedback on failure faster when performing a regression test on a client-side web application in a different web browser environment. can do. Here, we focus on the browser environment under the assumption that the existing test cases will be executed in each applicable environment. The embodiments use the method used to prioritize test cases, but the priority of the web browser environment may be determined based on information on recent and frequent failures.
4 개의 적지 않고 인기 있는 오픈 소스 웹 어플리케이션을 사용하여 실시예들에 따른 접근 방식을 평가한 결과, 실시예들에 따른 기술이 비용 효율성 측면에서 2 가지 기준 방법인 우선순위 결정 없음(no ordering)과 무작위 우선순위 결정(random ordering)보다 더 나은 성과를 낸다는 것을 보여준다. 예컨대, 우선순위 결정 없음(no ordering)의 경우 개선율의 범위는 -12.24%에서 39.05% 사이이고, 무작위 우선순위 결정(random ordering)의 경우 개선율의 범위는 -0.04%에서 45.85% 사이이다. 아래에서 보다 상세히 설명하기로 한다. As a result of evaluating the approach according to the embodiments using four not less popular open source web applications, the technology according to the embodiments was found to be two standard methods in terms of cost efficiency: no ordering and It shows that it performs better than random ordering. For example, in the case of no ordering, the improvement rate ranges from -12.24% to 39.05%, and in the case of random ordering, the improvement rate ranges from -0.04% to 45.85%. It will be described in more detail below.
일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 방법은 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 장치를 예를 들어 보다 상세히 설명할 수 있다. The method for determining the priority of a web browser environment for testing a web application according to an embodiment may be described in more detail with an example of an apparatus for determining the priority of a web browser environment for testing a web application according to an embodiment.
도 3은 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 장치를 나타내는 블록도이다. 3 is a block diagram illustrating an apparatus for determining priority of a web browser environment for testing a web application according to an exemplary embodiment.
도 3을 참조하면, 일 실시예에 따른 웹 어플리케이션 테스트를 위한 웹 브라우저 환경의 우선순위 결정 장치(300)는 우선순위 결정부(310)를 포함할 수 있으며, 실시예에 따라 캐시(320), 캐시 적중 확인부(331), 유사성 계산부(332), 실패 빈도 획득부(333) 및 머신러닝 모델부(334)를 더 포함할 수 있다. 또한, 회귀 테스트부(340)를 더 포함할 수도 있다. Referring to FIG. 3, the
단계(S110)에서, 우선순위 결정부(310)는 클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정할 수 있다. In step S110, the priority determination unit 310 uses information on the failure history related to the web browser environment in the web application when performing a regression test on the client-side web application, and Priority of the web browser environment may be determined by using information on failure of at least one or more of the information and information on the frequently failed web browser environment.
웹 어플리케이션을 회귀 테스트할 때 사용하기 위해 웹 브라우저 환경의 우선순위를 결정하는 기술을 제공할 수 있다. 여기에서는 웹 브라우저 환경의 우선순위 결정 문제를 정의하기 위해 다음과 같이 테스트 케이스 우선순위 결정 문제의 공식에 대한 정의를 나타낼 수 있다. It is possible to provide a technology for determining the priority of the web browser environment for use in regression testing of web applications. Here, in order to define the prioritization problem of the web browser environment, the definition of the formula of the test case prioritization problem can be expressed as follows.
정의 1: 테스트-실행 환경의 우선순위 결정 문제Definition 1: Test-Execution Environment Prioritization Problem
조건: 웹 브라우저 환경 목록 E, E의 순열 세트 PE, 그리고 PE에서 실수로의 함수 f.Condition: Web browser environment list E, permutation set of E, PE, and function of real in PE, f.
문제: Problem:
정의 1에서 PE는 E의 가능한 모든 순서를 의미하며, f는 우선순위 결정의 목표를 정량화하는데 사용되는 객관적 함수를 나타낼 수 있다. 이 작업에서, 목표는 웹 브라우저 환경의 특정한 순서에 따라 웹 어플리케이션에 대한 테스트 수트의 실패 탐지 비율을 증가시키는 것이다. 다른 객관적 함수를 정의하여 다른 우선순위 결정 기술에 사용할 수 있다.In
본 실시예에서는 웹 브라우저 환경을 전반적으로 순서 설정하기 위해 8 가지 다른 기술을 고려한다. 처음 2 가지 기술은 휴리스틱(경험적 방법)이 적용되지 않는 경우를 나타낼 수 있다. 이러한 기술은 다음과 같이 결과를 비교할 수 있는 기준선 순서 역할을 할 수 있다. In this embodiment, eight different techniques are considered to set the overall order of the web browser environment. The first two techniques may indicate a case where heuristics (empirical methods) are not applied. This technique can serve as a baseline sequence from which results can be compared as follows:
M1: 우선순위 결정 없음(No prioritization). 웹 브라우저 환경은 우선순위가 정해져 있지 않으며, 이는 개발자들이 처음에 사용한 순서를 유지할 수 있다. M 1 : No prioritization. The web browser environment is not prioritized, which allows developers to maintain the order they first used.
M2: 무작위 우선순위 결정(Random prioritization). 웹 브라우저 환경은 무작위로 정렬될 수 있다. M 2 : Random prioritization. Web browser environments can be randomly ordered.
여기서 제시하는 다른 6 가지 기술은 최근 실패한 웹 브라우저 환경을 고려하는 기술, 자주 실패하는 환경을 고려하는 기술, 그리고 이 둘을 모두 고려하는 기술 등 3 가지 범주로 분류될 수 있다. 이는 아래에서 설명한다.The other six technologies presented here can be classified into three categories: a technology that considers a recently failed web browser environment, a technology that considers an environment that frequently fails, and a technology that considers both. This is explained below.
먼저, 캐시(cache)(320)는 웹 브라우저의 유형, 웹 브라우저 이름, 웹 브라우저 버전 및 운영 체제의 유형 중 적어도 어느 하나 이상의 최근 실패한 웹 브라우저 환경의 정보를 저장할 수 있다. 이에 따라 우선순위 결정부(310)는 캐시의 정보에 따라 스케줄링되고, 최근의 실패 정보가 있는 웹 브라우저 환경은 다른 웹 브라우저 환경보다 높은 우선순위를 할당할 수 있다. First, the
M3: 정확한 매칭-기반 우선순위 결정(Exact matching-based prioritization). M 3 : Exact matching-based prioritization.
캐시(320)는 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 캐시 적중 확인부(331)는 테스트 대상 빌드(build)의 웹 브라우저 환경이 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당할 수 있다. 그리고 우선순위 결정부(310)는 복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 원래 순서 또는 무작위로 스케줄링할 수 있다. The
정확한 매칭-기반 우선순위 결정 기술은 최근 실패한 웹 브라우저 환경을 먼저 고려할 수 있다. 이 기술은 최근에 실패한 웹 브라우저 환경이 미래의 웹 어플리케이션의 빌드에서 다시 실패할 수 있다는 가정에 근거할 수 있다.Accurate matching-based prioritization technology can first consider the recently failed web browser environment. This technique can be based on the assumption that a recently failed web browser environment may fail again in the build of future web applications.
따라서, 이 기술은 최근의 실패 정보를 고려하는 선행 연구에 기초한다. 웹 브라우저 환경의 우선순위 결정에 최근의 실패 정보를 활용하기 위해 캐시(cache)를 사용할 수 있다. 캐시는 이전 빌드가 실패했던 환경을 나열할 수 있다. 현재 빌드의 웹 브라우저 환경이 캐시에 포함되어 있는 경우, 그러한 환경에 더 높은 우선순위가 할당될 수 있다.Therefore, this technique is based on prior research that considers recent failure information. A cache can be used to utilize the latest failure information to prioritize the web browser environment. The cache can list environments where previous builds failed. If the current build's web browser environment is included in the cache, that environment may be assigned a higher priority.
캐시 적중률(cache-hit)을 다음과 같이 정의할 수 있다.The cache-hit ratio can be defined as follows.
[수학식 1][Equation 1]
여기서, TE는 개발자가 회귀 테스트를 위해 고려하고 있는 웹 브라우저 환경의 세트이고, Build i 는 Build i에서 TE의 서브셋(subset)을 나타낼 수 있다. Cache it 은 빌드 i - 1 - t에서 빌드 i - 1로 이동할 때 실패가 발생한 TE의 서브셋이다. t는 빌드 범위를 지정하는 임계값이며, 그 범위의 브라우저 환경을 캐시할 수 있다. i - 1 - t가 1보다 작으면 값이 1로 설정될 수 있다. TE의 각 브라우저 환경(C m )은 브라우저 환경의 속성을 포함하는 벡터가 될 수 있다. Here, TE is a set of web browser environments that the developer is considering for regression testing, and Build i may represent a subset of TE in Build i . Cache it is a subset of TEs that fail when moving from build i -1- t to build i -1. t is a threshold specifying the build range, and the browser environment in that range can be cached. If i-1-t is less than 1, the value may be set to 1. Each browser environment ( C m ) of TE may be a vector containing properties of the browser environment.
도 4는 일 실시예에 따른 정확한 매칭-기반 우선순위 결정 방법을 설명하기 위한 도면이다. 4 is a diagram for describing a method of determining an accurate matching-based priority according to an embodiment.
도 4를 참조하면, 예를 들어 캐시 적중이 어떻게 발생하는지 보여준다. 웹 브라우저 환경은 빌드 유형, 브라우저 이름, 브라우저 버전 및 OS의 4 가지 속성을 포함할 수 있다. 벡터의 각 속성은 가능한 값의 세트에서 값을 가져올 수 있고, Cache_hit i 는 Build i 와 Cache it 의 교차점을 나타낼 수 있다.Referring to Fig. 4, for example, it shows how a cache hit occurs. The web browser environment can include four attributes: build type, browser name, browser version, and OS. Each attribute in the vector can get a value from a set of possible values, and Cache_hit i It can represent the intersection of Build i and Cache it .
단일 브라우저 환경은 캐시에 적중할 수 있다. 캐시 적중(cache hit) 브라우저 환경은 다른 환경보다 높은 우선순위를 받을 수 있다. 브라우저 환경은 내림차순으로 우선순위 점수를 기준으로 스케줄링될 수 있다. 이때, 두 개의 브라우저 환경의 우선순위가 같을 경우, 원래 순서로 또는 무작위로 스케줄링될 수 있다. 여기에서 마지막 브라우저 환경의 우선순위는 1이고, 나머지 다른 환경들의 우선순위는 0이다. 따라서 스케줄링 결과를 ID 순으로 나타내면, "4, 1, 2, 3"이 될 수 있다.A single browser environment can hit the cache. The cache hit browser environment can be given a higher priority than other environments. Browser environments can be scheduled based on priority scores in descending order. In this case, when the priorities of the two browser environments are the same, they may be scheduled in the original order or randomly. Here, the priority of the last browser environment is 1, and the priority of the other environments is 0. Therefore, if the scheduling result is shown in the order of ID, it can be "4, 1, 2, 3".
이러한 캐시 기반 접근법의 장점은 계산적으로 가볍기 때문에, 지속적인 통합(CI) 환경과 같은 빠른 개발 환경에 적합하다는 것이다. 그러나 캐시 기반 접근법의 단점은 웹 어플리케이션이 최근에 실패한 브라우저 환경이 가까운 미래에 다시 실패할 것이라는 가정을 충족하지 못한다면, 접근법의 성능이 떨어질 수 있다는 것이다. 두 번째 잠재적 단점은 대부분의 브라우저 환경에서 이전 빌드의 테스트가 실패하지만, 몇몇의 환경에 다음의 빌드에서 테스트가 실패하는 상황에서는 접근법이 비용적으로 효율적이지 않을 수 있다는 것이다. 캐시 적중 브라우저 환경에서는 추가적인 우선순위가 고려되지 않으므로, 캐시 적중 브라우저 환경의 대부분을 테스트하기 전에 실패한 환경이 감지되지 않으면 이 접근법의 비용 효율성이 저하될 수 있다. 세 번째 잠재적 단점은 브라우저 환경의 일부 속성만 다음 빌드에서 실패한 환경을 예측하는 데 관련될 수 있으며, 캐시 기반 접근법은 그러한 경우를 고려하지 않을 수 있다는 것이다. 대신에, 그것은 브라우저 환경의 모든 속성을 매칭시켜야 한다.The advantage of this cache-based approach is that it is computationally lightweight, making it suitable for fast development environments such as continuous integration (CI) environments. However, the downside of the cache-based approach is that if the web application does not meet the assumption that the browser environment that recently failed will fail again in the near future, the performance of the approach can be degraded. The second potential drawback is that, while tests from previous builds fail in most browser environments, the approach may not be cost effective in situations where tests fail in subsequent builds in some environments. Since additional priorities are not taken into account in the cache hit browser environment, the cost effectiveness of this approach can be compromised if the failed environment is not detected before testing most of the cache hit browser environment. A third potential drawback is that only some attributes of the browser environment may be involved in predicting the failing environment in the next build, and the cache-based approach may not take that case into account. Instead, it should match all attributes of the browser environment.
M4: 유사성 매칭-기반 우선순위 결정(Similarity matching-based prioritization). M 4 : Similarity matching-based prioritization.
캐시(320)는 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 유사성 계산부(332)는 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경과 캐시에서의 각 웹 브라우저 환경 간의 유사성을 계산할 수 있다. 이에, 우선순위 결정부(310)는 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경을 계산된 유사성에 따라 내림차순으로 스케줄링할 수 있다.The
유사성 매칭-기반 우선순위 결정 기술은 상술한 정확한 매칭 기술(M3)의 두 번째와 세 번째 단점을 다루려고 한다. 이 기술은 캐시 적중 웹 브라우저 환경에 동일한 우선순위를 할당하는 대신, 테스트 대상 빌드에서의 각 환경과 캐시에서의 각 환경 간의 유사성을 계산할 수 있다. 테스트 대상 빌드에서 브라우저 환경의 우선순위는 평균 유사성으로, 캐시 내 각 환경과 해당 환경 간의 유사성 값을 캐시된 브라우저 환경의 개수로 나누어 합산하여 계산할 수 있다. 그런 다음, 브라우저 환경은 유사성 점수에 따라 내림차순으로 스케줄링될 수 있다. 이러한 맥락에서 유사성을 측정하기 위해, Jaccard 유사성 계수를 사용할 수 있다(비특허문헌 4). 이것은 브라우저 환경에 0에서 1 사이의 부동 숫자를 할당할 수 있다. 정확한 매칭 기술과 비교하여, 이것은 브라우저 환경이 같은 우선순위를 갖는 경우의 수를 감소시킬 수 있다. 또한 이것은 캐시에서의 환경과 정확히 일치하지 않는 브라우저 환경에 긍정적인 우선순위를 부여할 수 있다. 예를 들어, 브라우저 환경의 브라우저 버전이 캐시에 존재하지 않더라도, 브라우저 이름 및 운영 체제와 같은 다른 기능이 캐시에 있는 경우 그 환경은 긍정적인 우선순위를 받을 수 있다.The similarity matching-based prioritization technique attempts to address the second and third disadvantages of the above-described exact matching technique (M 3 ). Instead of assigning the same priority to the cache hit web browser environment, this technique can calculate the similarity between each environment in the build under test and each environment in the cache. In the test target build, the priority of the browser environment is average similarity, which can be calculated by dividing the similarity value between each environment in the cache and the corresponding environment by the number of cached browser environments and adding them. Then, the browser environment can be scheduled in descending order according to the similarity score. To measure the similarity in this context, the Jaccard similarity coefficient can be used (Non-Patent Document 4). It can assign a float number between 0 and 1 in the browser environment. Compared to the exact matching technique, this can reduce the number of cases where the browser environment has the same priority. It can also give a positive priority to browser environments that don't exactly match the environment in the cache. For example, even if the browser version of the browser environment is not present in the cache, the environment may receive positive priority if other features such as browser name and operating system are in the cache.
테스트 중인 빌드의 브라우저 환경과 캐시의 환경 사이의 유사성을 측정하기 위해 다음 식을 사용할 수 있다. You can use the following equation to measure the similarity between the browser environment of the build under test and the environment of the cache.
[수학식 2][Equation 2]
정의는 상술한 [수학식 1]에서 사용한 것과 동일하다. Sim ij 는 Build i 에서 j 번째 브라우저 환경의 유사성 점수를 나타낼 수 있다. 또한, Cache it 의 각 벡터에 대해 Cache it 의 벡터와 Build i 의 벡터를 그들의 조합의 놈(norm)으로 나누어, 그들의 교차점 놈을 파악하여 Jaccard 유사성 계수를 계산할 수 있다. 그 다음, Jaccard 유사성 계수를 평균을 낼 수 있다.The definition is the same as that used in [Equation 1]. Sim ij can represent the similarity score of the j- th browser environment in Build i . In addition, the vector of the vector and the Cache Build i for each vector of the Cache it divided by him (norm) of a combination thereof, to determine their intersection he can calculate the Jaccard similarity coefficient. Then, the Jaccard similarity coefficient can be averaged.
도 5는 일 실시예에 따른 유사성 매칭-기반 우선순위 결정 방법을 설명하기 위한 도면이다.5 is a diagram for describing a method for determining a similarity matching-based priority according to an embodiment.
도 5를 참조하면, 일 실시예들에 따른 접근 방법을 사용하여 브라우저 환경에 대해 계산된 유사성 점수는 각각 0/8 = 0, 3/5 = 0.6, 1/7 = 0.14, 그리고 4/4 = 1이다. 정확한 매칭 방법을 사용할 경우 브라우저 환경 2와 3은 우선순위 0이 된다. 그러나 유사성 매칭 방법을 사용할 경우 각각 0.6과 0.14의 우선순위 값이 있으므로 우선순위 결정 결과는 "4, 2, 3, 1"이 될 수 있다. 추가된 이 구별 수준이 유용하다면, 유사성 매칭 기술을 정확한 매칭 기술보다 비용 효율적으로 만들 수 있다. Referring to FIG. 5, the similarity scores calculated for the browser environment using the approach according to the exemplary embodiments are 0/8 = 0, 3/5 = 0.6, 1/7 = 0.14, and 4/4 = It is 1. When using the correct matching method,
M5: 실패-빈도-기반 우선순위 결정(Failure-frequency-based prioritization). M 5 : Failure-frequency-based prioritization.
도 6은 일 실시예에 따른 실패-빈도-기반 우선순위 결정 방법을 설명하기 위한 도면이다.6 is a diagram illustrating a method of determining a failure-frequency-based priority according to an embodiment.
도 6을 참조하면, 실패 빈도 획득부(333)는 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득할 수 있다. 이에, 우선순위 결정부(310)는 웹 브라우저 환경의 실패 빈도에 따라 내림차순으로 스케줄링할 수 있다. Referring to FIG. 6, the failure frequency obtaining unit 333 may obtain a failure frequency of a web browser environment in which the regression test frequently fails. Accordingly, the priority determining unit 310 may schedule in descending order according to the frequency of failure of the web browser environment.
자주 실패하는 웹 브라우저 환경을 고려하는 한 가지 방법은 각 브라우저 환경의 이전의 실패 개수를 계산하는 것이다. 이 방법은 웹 브라우저 환경이 미래의 빌드에서도 자주 실패할 가능성이 있다는 가정에 근거한다. 웹 어플리케이션에 대한 테스트가 다른 환경보다 특정 웹 브라우저 환경에서 더 자주 실패하는 경우, 이 방법은 미래의 빌드에서 실패할 환경을 예측하는 데 효과적일 수 있다. 그러므로 이 방법은 이전의 실패 횟수가 많은 브라우저 환경에 더 높은 우선순위를 부여할 수 있다. 이 방법을 사용하여 브라우저 환경을 스케줄링하려면, 키(key)가 브라우저 환경 벡터 C i 인 키 값(key-value) 데이터 구조를 가져야 하며, 이 값은 환경이 실패한 이전 빌드의 개수이다.One way to consider frequently failing web browser environments is to count the number of previous failures for each browser environment. This method is based on the assumption that the web browser environment is likely to fail frequently in future builds as well. If tests on a web application fail more frequently in certain web browser environments than in other environments, this method can be effective in predicting which environments will fail in future builds. Therefore, this method can give a higher priority to the browser environment where the number of previous failures was high. To schedule a browser environment using this method, you must have a key-value data structure where the key is the browser environment vector C i , which is the number of previous builds where the environment failed.
이 기술과 관련된 한 가지 문제는 실패 빈도를 계산하기 위해 브라우저 환경의 모든 속성을 사용하는 것이 브라우저 환경 스케줄링의 비용 효율성을 감소시킬 수 있다는 것이다. 예를 들어 브라우저 환경이 브라우저 이름, 브라우저 버전 및 OS 이름으로 구성되는 경우, 브라우저 이름 및 OS 이름과 같은 그 속성의 서브셋을 키로 사용하고, 이 값으로서의 키를 포함하는 실패한 브라우저 환경의 개수는 비용 효율성을 높일 수 있다. 그러나 개발자가 수동으로 속성의 서브셋 중 어떤 것이 더 비용 효과적인 스케줄링을 렌더링(render)하는 데 효과적일 수 있는지를 결정하는 것은 어렵다. 브라우저 환경의 속성 수가 증가함에 따라, 이 문제는 더 중요해질 수 있다.One problem with this technique is that using all attributes of the browser environment to calculate the frequency of failures can reduce the cost effectiveness of scheduling the browser environment. For example, if the browser environment consists of the browser name, browser version, and OS name, a subset of those attributes such as browser name and OS name are used as keys, and the number of failed browser environments containing the key as this value is cost-effective. Can increase. However, it is difficult for a developer to manually determine which of a subset of attributes can be effective in rendering more cost-effective scheduling. As the number of attributes in the browser environment increases, this problem can become more important.
M6: 머신러닝 기반 우선순위 결정(Machine-learning-based prioritization). M 6 : Machine-learning-based prioritization.
도 7은 일 실시예에 따른 머신러닝 기반 우선순위 결정 방법을 설명하기 위한 도면이다.7 is a diagram for describing a method of determining a machine learning-based priority according to an embodiment.
도 7을 참조하면, 머신러닝 모델부(334)는 머신러닝(Machine Learning, ML) 기반으로 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공할 수 있다. 그리고 우선순위 결정부(310)는 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링할 수 있다. Referring to FIG. 7, the machine learning model unit 334 automatically learns the failure pattern of the web browser environment where the regression test frequently fails based on machine learning (ML), and fails the web browser environment in subsequent builds. Can provide probability. In addition, the priority determining unit 310 may schedule the web browser environment in descending order according to the probability of failure.
실패 빈도 방법의 문제를 해결하기 위해, 머신러닝(Machine Learning, ML) 방법이 유용할 수 있다. 머신러닝(ML) 방법은 이전 빌드 기록에서 실패 패턴을 자동으로 학습할 수 있으며 후속 빌드에서의 브라우저 환경에 실패 확률을 제공한다. 여기서는 베이즈(Bayes)의 정리를 기반으로 실패 확률을 계산하는 Bernouli Naive Bayes 분류기를 사용할 수 있다. 여기에서 브라우저 환경의 속성은 명목(nominal) 또는 순서(ordinal) 데이터이며, Bernouli Naive Bayes 분류기는 그러한 데이터에 적합하다.To solve the problem of the failure frequency method, machine learning (ML) methods can be useful. Machine learning (ML) methods can automatically learn failure patterns from previous build history and provide a probability of failure in the browser environment in subsequent builds. Here we can use a Bernouli Naive Bayes classifier that calculates the probability of failure based on Bayes' theorem. Here the attribute of the browser environment is nominal or ordinal data, and the Bernouli Naive Bayes classifier is suitable for such data.
분류기는 일부 브라우저 환경이 실패한 이전 빌드에서 테스트 이력을 학습하여 빌드될 수 있다. 분류기는 주어진 브라우저 환경에서 테스트 실패 확률을 반환할 수 있다. 분류기는 빌드의 테스트가 완료되고 일부 브라우저 환경에서 실패한 후, 학습 모델을 적응적으로 업데이트할 수 있다. 각 브라우저 환경의 우선순위 점수는 환경에서의 테스트 실패 확률인 ML 모델의 출력과 동일할 수 있다. 브라우저 환경은 내림차순으로 우선순위 점수에 따라 분류될 수 있다.Classifiers can be built by learning the test history from previous builds where some browser environments failed. The classifier can return the probability of a test failure in a given browser environment. The classifier can adaptively update the training model after the build has been tested and failed in some browser environments. The priority score of each browser environment may be the same as the output of the ML model, which is the probability of test failure in the environment. Browser environments can be classified according to priority scores in descending order.
주어진 브라우저 환경에서 테스트 실패 확률을 계산하는 방법을 다음 식과 같이 나타낼 수 있다. The method of calculating the test failure probability in a given browser environment can be expressed as the following equation.
[수학식 3][Equation 3]
여기서, D는 일련의 브라우저 환경을 의미하며, k는 가능한 브라우저 환경의 수를 의미할 수 있다. T는 "통과(Pass)" 또는 "실패(Fail)"인 테스트 결과의 집합이 될 수 있다. Here, D denotes a series of browser environments, and k may denote the number of possible browser environments. T may be a set of test results that are "Pass" or "Fail".
는 주어진 브라우저 환경 하에서 테스트 실패의 확률이 될 수 있다. 베이즈(Bayes)의 정리를 이용하여 사후의 는 우도값(likelihood)인 에 P(fail)을 곱하여 증거인 P(D i )로 나누어 계산할 수 있다. P(Fail) 또는 P(True)는 균일 분포 또는 도메인 전문가로부터 얻을 수 있으며, 또는 는 이전 빌드로부터의 테스트 결과로부터 계산될 수 있으며, P(D i )는 이전 결과와 우도 값(likelihood)으로부터 계산할 수 있다. 이 기술은 사후 확률(posterior probability)에 기초하여 브라우저 환경의 우선순위를 정하므로 사후 확률의 임계값이 필요하지 않다. Can be the probability of a test failure under a given browser environment. Post-mortem using Bayes' theorem Is the likelihood It can be calculated by multiplying by P(fail) and dividing by the evidence P(D i ). P(Fail) or P(True) can be obtained from uniform distribution or domain experts, or Can be calculated from the test result from the previous build, and P(D i ) can be calculated from the previous result and likelihood. Since this technique prioritizes the browser environment based on a posterior probability, there is no need for a threshold of the posterior probability.
머신러닝(ML) 기반 방법의 잠재적 장점은 캐시-기반 또는 실패-빈도-기반 방법보다 더 정교한 스케줄링 기능을 제공한다는 것이다. 그러므로 브라우저 환경의 각 속성은 실패가 발생하기 쉬운 환경을 예측하기 위해 적응형 방식으로 사용될 수 있다. 두 번째 장점은 새로운 빌드가 수행될 때마다 개발자가 새로운 학습 모델을 작성할 필요가 없기 때문에, 이 접근법이 빠른 개발 환경에 적합하다는 것이다. 대신, 그들은 현재 빌드로부터 생성된 새로운 테스트 결과에 기초하여 기존 모델을 업데이트하기만 하면 된다. 머신러닝(ML) 기반 접근법의 잠재적인 단점은 자주 실패하는 브라우저 환경이나 속성이 있다고 가정한다는 것이다. 이러한 가정이 충족되지 않으면, 접근법의 성능이 저하될 수 있다.A potential advantage of machine learning (ML) based methods is that they provide more sophisticated scheduling capabilities than cache-based or failure-frequency-based methods. Therefore, each attribute of the browser environment can be used in an adaptive way to predict the environment prone to failure. The second advantage is that this approach is suitable for fast development environments, since the developer does not have to write a new learning model every time a new build is performed. Instead, they simply update the existing model based on the new test results generated from the current build. A potential drawback of a machine learning (ML)-based approach is that it assumes there are browser environments or properties that fail frequently. If these assumptions are not met, the performance of the approach can be degraded.
M7 및 M8: 하이브리드 우선순위 결정(Hybrid prioritization). M 7 and M 8 : Hybrid prioritization.
하이브리드 우선순위 결정 기술은 어플리케이션마다 다르게 수행되므로, 개발자가 어떤 기술을 사용할지 결정하는 것이 어려울 수 있다. 이러한 차이를 줄이기 위해 기술을 결합하는 것이 가능하다. 하이브리드 우선순위 결정 기술은 2 가지 우선순위 결정 기준을 사용하기 때문에 브라우저 환경은 첫 번째 기준에 따라 정렬되며, 둘 이상의 환경이 동일한 우선순위를 가질 경우 하이브리드 우선순위 결정은 두 번째 기준을 사용하여 이러한 환경을 정렬할 수 있다.Hybrid prioritization techniques perform differently for each application, so it can be difficult for developers to decide which technique to use. It is possible to combine technologies to close these differences. Because hybrid prioritization technology uses two prioritization criteria, browser environments are ordered according to the first criterion, and if two or more environments have the same priority, hybrid prioritization uses the second criterion to determine these environments. Can be sorted.
정확한 매칭-기반 기술의 우선순위 점수가 0이거나 1이므로, 첫 번째 기준으로 정확한 매칭-기반 우선순위 결정 기술을 선택했다. 따라서 이 기술이 다른 기술보다 우선순위가 같은 브라우저 환경을 더 많이 가질 가능성이 높다. 두 번째 기준은 실패-빈도-기반 또는 머신러닝(ML) 기반 기술일 수 있다. 여기서, 정확한 매칭 기반 기술을 실패-빈도-기반 기술과 결합하는 우선순위 결정 기술로 M7을 정의하고, M8을 머신러닝(ML) 기반 기술이 정확한 매칭-기반-기술과 결합하는 우선순위 결정 기술로 정의할 수 있다. 하이브리드 우선순위 결정 기술의 한 가지 장점은 최근에 실패한 브라우저 환경과 자주 실패한 브라우저 환경 모두를 고려할 수 있다는 것이다.Since the priority score of the exact match-based technique is 0 or 1, the correct match-based prioritization technique was selected as the first criterion. Therefore, it is more likely that this technology will have the same browser environment with the same priority than other technologies. The second criterion may be a failure-frequency-based or machine learning (ML) based technique. Here, M 7 is defined as a priority determination technology that combines an accurate matching-based technology with a failure-frequency-based technology, and M 8 is a priority determination in which a machine learning (ML) based technology is combined with an accurate matching-based-technology. It can be defined by technology. One advantage of hybrid prioritization technology is that it can take into account both recently failed and frequently failed browser environments.
도 8은 일 실시예에 따른 하이브리드 우선순위 결정 방법을 설명하기 위한 도면이다.8 is a diagram for describing a method of determining a hybrid priority according to an exemplary embodiment.
도 8을 참조하면, M7에서, 캐시는 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 캐시 적중 확인부(331)는 테스트 대상 빌드(build)의 웹 브라우저 환경이 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당할 수 있다. 이후, 복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 실패 빈도 획득부(333)는 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득할 수 있다. 이에, 우선순위 결정부(310)는 웹 브라우저 환경의 실패 빈도에 따라 내림차순으로 스케줄링할 수 있다. Referring to FIG. 8, in M 7 , the cache lists information on the web browser environment that has recently failed, and the cache hit check unit 331 is higher when the web browser environment of the test target build is included in the cache. Priority can be assigned. Thereafter, when the priorities of the plurality of web browser environments are the same, the failure frequency acquisition unit 333 may obtain the failure frequency of the web browser environment in which the regression test frequently fails. Accordingly, the priority determining unit 310 may schedule in descending order according to the frequency of failure of the web browser environment.
또한, M8에서, 캐시는 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 캐시 적중 확인부(331)는 테스트 대상 빌드(build)의 웹 브라우저 환경이 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당할 수 있다. 이후, 복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 머신러닝 모델부(334)는 머신러닝(Machine Learning, ML) 기반으로 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공하라 수 있다. 이에, 우선순위 결정부(310)는 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링할 수 있다.In addition, in M 8 , the cache lists information on the web browser environment that has recently failed, and the cache hit check unit 331 assigns a higher priority when the web browser environment of the test target build is included in the cache. can do. Thereafter, if the priorities of the plurality of web browser environments are the same, the machine learning model unit 334 automatically learns the failure pattern of the web browser environment in which the regression test frequently fails based on machine learning (ML), and follows. You can give the web browser environment the probability of failure in the build. Accordingly, the priority determining unit 310 may schedule the web browser environment in descending order according to the probability of failure.
표 1은 상술한 우선순위 결정 기술의 코드, 연산기호코드(Mnemonic) 및 설명을 나타낸다.Table 1 shows the code, operation symbol code (Mnemonic) and description of the above-described priority determination technique.
[표 1] [Table 1]
우선순위 결정 방법을 독립 변수 및 종속 변수로 구분할 수 있다. Priority determination methods can be divided into independent variables and dependent variables.
독립 변수에는 우선순위 결정 방법이 포함될 수 있다. 여기에서는 8 가지 방법을 평가하였다. 이는 앞에서 설명한 2 가지 기본 기술(M1과 M2)과 6 가지 휴리스틱 기술(M3 - M8)이다. 각 웹 애플리케이션에 대해 브라우저 환경이 실제로 테스트된 순서는 Travis CI 로그 데이터에서 획득할 수 있고, 이 오더를 원래의 스케줄로 간주할 수 있다.Independent variables may include prioritization methods. Eight methods were evaluated here. These are the two basic techniques (M 1 and M 2 ) and six heuristic techniques (M 3 -M 8 ) described above. The order in which the browser environment was actually tested for each web application can be obtained from the Travis CI log data, and this order can be regarded as the original schedule.
종속 변수로, 실패 감지 속도를 향상시키는 우선순위 결정 방법의 효율성을 측정하기 위해, APFDC(Average Percentage Faults Detected) 측정 항목을 사용할 수 있다. 이 측정은 일반적으로 테스트 케이스의 비용이 서로 다른 경우(실행 시간) 테스트 케이스 우선순위 결정의 비용 효율성을 측정하는 데 사용될 수 있다. 브라우저 환경을 테스트 케이스로 간주할 수 있으므로 이 측정 기준을 사용할 수 있다. 따라서 브라우저 환경을 스케줄링하면 테스트 케이스 우선순위를 결정할 때와 비슷한 효과가 나타날 수 있다.As a dependent variable, the APFD C (Average Percentage Faults Detected) metric can be used to measure the effectiveness of the prioritization method that improves the speed of failure detection. This measure can be used to measure the cost effectiveness of test case prioritization, typically when the cost of test cases is different (run time). You can use this metric because you can consider the browser environment as a test case. Therefore, scheduling the browser environment can have similar effects as when determining test case priorities.
APFDC의 방정식은 다음과 같이 나타낼 수 있다.The equation of APFD C can be expressed as follows.
[수학식 4][Equation 4]
여기서, n은 브라우저 환경의 수이고, m은 실패 횟수가 될 수 있다. C i 는 브라우저 환경 목록에서 i 번째 실패를 감지하는 브라우저 환경의 위치를 나타낼 수 있다. t j 는 C j 에 대해 회귀 테스트를 수행하는 비용을 나타내며, f i 는 i 번째 실패의 심각도(severity)를 나타낼 수 있다. 우선순위 결정 방법이 효과적일수록 APFDC 값이 100 %에 가까워질 수 있다.Here, n is the number of browser environments, and m may be the number of failures. C i may indicate the location of the browser environment that detects the i- th failure in the browser environment list. t j represents the cost of performing the regression test on C j , and f i can represent the severity of the i- th failure. The more effective the prioritization method is, the closer the APFD C value can be to 100%.
각 응용 프로그램의 로그 데이터를 통해 각 브라우저 환경에서 회귀 테스트를 시작하고 종료할 때를 결정할 수 있으며, 이는 작업 시간을 측정할 수 있다. 단, Lodash의 경우에는 빌드 작업 시간이 로그 데이터에 기록되어 있지 않았다. 그래서 t j 를 1로 설정할 수 있다. 이는 각 확경의 빌드 작업 시간이 동일함을 의미한다. 모든 앱의 경우, 실패 심각도를 로그 데이터로부터 알 수 없으므로 각 실패에 대해 f i 를 1로 설정할 수 있다.Through the log data of each application program, it is possible to determine when to start and end the regression test in each browser environment, which can measure the working time. However, in the case of Lodash, the build work time was not recorded in the log data. So we can set t j to 1. This means that the build work time of each expansion is the same. For all apps, the severity of the failure is not known from the log data, so you can set f i to 1 for each failure.
도 9는 일 실시예에 따른 회귀 테스트를 수행 방법을 나타내는 흐름도이다. 9 is a flowchart illustrating a method of performing a regression test according to an exemplary embodiment.
단계(S120)에서, 회귀 테스트부(340)는 결정된 웹 브라우저 환경의 우선순위를 결정 방법에 따라 웹 브라우저 환경에 대해 회귀 테스트를 수행할 수 있다. In step S120, the regression test unit 340 may perform a regression test on the web browser environment according to a method for determining the priority of the determined web browser environment.
도 9를 참조하면, 회귀 테스트를 수행하는 단계(S120)는, 첫 번째 실패한 빌드(build)의 회귀 테스트 결과를 기반으로 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 빌드하는 단계(S121), 결정된 웹 브라우저 환경의 우선순위를 결정 방법에 의해 생성된 우선순위에 따라 테스트 대상 빌드의 웹 브라우저 환경에 우선순위를 결정하는 단계(S122), 테스트 대상 빌드에 대한 회귀 테스트 결과 값을 측정하는 단계(S123), 및 모든 웹 브라우저 환경이 아닌 일부 빌드에서 회귀 테스트가 실패할 때 테스트 대상 빌드의 회귀 테스트 결과를 기반으로 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 업데이트하는 단계(S124)를 포함할 수 있다. Referring to FIG. 9, the step of performing a regression test (S120) is a step of building a cache, a data structure for failure frequency, and a machine learning (ML) model based on the regression test result of the first failed build. (S121), determining the priority of the web browser environment of the test target build according to the priority generated by the method for determining the priority of the determined web browser environment (S122), the regression test result value for the test target build The step of measuring (S123), and when the regression test fails in some builds rather than all web browser environments, updates the cache, data structure for failure frequency, and machine learning (ML) model based on the results of the regression test in the build under test It may include a step (S124).
또한, 생성된 우선순위에 따라 테스트 대상 빌드의 웹 브라우저 환경에 우선순위를 결정하는 단계(S122)는, 복수의 웹 브라우저 환경이 동일한 우선순위를 갖는 경우 무작위 우선순위 결정을 하는 단계를 포함할 수 있다. In addition, the step of determining the priority to the web browser environment of the test target build according to the generated priority (S122) may include determining a random priority when a plurality of web browser environments have the same priority. have.
예를 들어, Travis CI 및 Sauce Labs의 로그 데이터를 사용하여 다른 브라우저 환경 및 환경의 다른 순서로 회귀 테스트를 시뮬레이션할 수 있다. For example, log data from Travis CI and Sauce Labs can be used to simulate regression tests in different browser environments and in different sequences of environments.
단계(S121)에서, 첫 번째 실패한 빌드의 테스트 결과를 기반으로 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 빌드할 수 있다.In step S121, a cache, a data structure for a failure frequency, and a machine learning (ML) model may be built based on the test result of the first failed build.
단계(S122)에서, 각 기술에 의해 생성된 우선순위에 따라 현재 빌드의 브라우저 환경에 우선순위를 결정할 수 있다. 이 때, 단계(S122)에서, 둘 이상의 브라우저 환경이 동일한 우선순위를 갖는 경우 무작위 우선순위 결정을 할 수 있다. In step S122, the priority may be determined in the browser environment of the current build according to the priority generated by each technology. At this time, in step S122, when two or more browser environments have the same priority, a random priority may be determined.
단계(S123)에서, 현재 빌드에 대한 회귀 테스트 결과의 APFDC 값을 측정할 수 있다. 이 때, 단계(S122) 및 단계(S123)을 30 번 정도 반복하여 평균 APFDC 값을 구할 수 있다.In step S123, the APFD C value of the regression test result for the current build may be measured. In this case, steps S122 and S123 are repeated about 30 times to obtain an average APFD C value.
단계(S124)에서, 모든 브라우저 환경이 아닌 일부 빌드에서 회귀 테스트가 실패할 때 현재 빌드의 테스트 결과를 기반으로 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 업데이트할 수 있다. In step S124, when the regression test fails in some builds other than all browser environments, the cache, the data structure for the failure frequency, and the machine learning (ML) model may be updated based on the test result of the current build.
이후, 다음에 실패한 빌드에 대해 단계(S122) - 단계(S124)를 반복할 수 있다.Thereafter, steps S122-S124 may be repeated for the next failed build.
2 가지 예외를 제외하고 8 가지 우선순위 방법 각각에 대해 앞에서 설명한 프로세스를 수행할 수 있다. 무작위 우선순위 결정의 경우, 단계(S122)는 30 회 실행마다 다른 순서를 사용하여 단순 임의화를 통해 수행되며, 우선순위 결정 없음의 경우 단계(S122)의 무작위 우선순위 결정 및 단계(S124)는 건너뛸 수 있다. 단계 단계(S122)의 무작위 우선순위 결정에서 동점이 있을 때마다 무작위 우선순위 결정을 사용했기 때문에, 단계(S124)에서 우선순위 결정 없음 이외의 기술을 30회 실행할 수 있다. 무작위 우선순위 결정 대신에 우선순위 결정 없음을 사용할 수 있으나 원래의 순서가 의미 있다는 증거는 없다.With two exceptions, you can perform the previously described process for each of the eight priority methods. In the case of random priority determination, step (S122) is performed through simple randomization using a different order for every 30 executions, and in the case of no priority determination, the random priority determination and step (S124) of step (S122) are You can skip it. Since the random priority determination is used whenever there is a tie in the random priority determination in step S122, a technique other than no priority determination may be executed 30 times in step S124. No prioritization can be used instead of random prioritization, but there is no evidence that the original ordering is meaningful.
도 10은 일 실시예에 따른 우선순위 결정 방법에 따른 APFDC 값에 대한 데이터를 나타낸다, 10 shows data on an APFD C value according to a priority determination method according to an embodiment,
도 10을 참조하면, 웹 응용 프로그램별로 고려한 우선순위 결정 방법과 기본 기술을 사용하여 얻은 APFDC 값에 대한 데이터를 나타낸다. y 축은 APFDC 값을 나타내며 x 축은 사용되는 기술을 나타낼 수 있다. 도시된 박스(box)는 해당 기술 및 어플리케이션과 관련된 모든 실행에서 획득한 APFDC 값의 분포를 나타낼 수 있다.Referring to FIG. 10, data on the APFD C value obtained using a method of determining a priority considered for each web application and a basic technique are shown. The y-axis represents the APFD C value, and the x-axis can represent the technology used. The illustrated box may represent the distribution of APFD C values obtained in all executions related to the technology and application.
웹 어플리케이션은 다양한 환경(브라우저, 운영체제, 기기)에서 실패가 발생할 수 있기 때문에 타겟 환경에서 모두 테스트해야 한다. 타겟 환경을 모두 테스트하는 것은 많은 시간과 비용이 걸릴 수 있고, 실패를 유발하는 환경을 개발자에게 알리기까지 많은 시간이 걸릴 수 있다. 그 결과, 개발의 다음 단계(디버깅, 제품 출시 등)가 늦어질 수 있다. 이에 따라 실시예들은 테스트 환경의 우선순위를 결정하는 다양한 기법을 제시할 수 있다. 이러한 기법을 구현하여 4 개의 오픈 소스 웹 어플리케이션 대상으로 실험하였을 때 우선순위를 부여하지 않았을 때보다 빨리 개발자에게 테스트 실패에 대한 피드백을 줄 수 있음을 확인할 수 있다.Since web applications can fail in various environments (browser, operating system, and device), they must all be tested in the target environment. Testing all of the target environments can be time consuming and expensive, and it can take a long time to inform the developer of the environment that is causing the failure. As a result, the next stage of development (debugging, product launch, etc.) may be delayed. Accordingly, embodiments may suggest various techniques for determining the priority of the test environment. By implementing this technique, it can be seen that the feedback on test failures can be given to the developer faster than when priorities were not given when experimenting with four open source web applications.
실시예들은 웹 어플리케이션 테스트에 사용할 수 있다. 웹 어플리케이션의 사용 환경이 점점 다양해지고 있어 다양한 환경에서의 테스트가 더욱 중요해지고 있다. 본 기법은 웹 어플리케이션 개발자에게 빠르게 실패에 대한 피드백을 줄 수 있어 빠르게 디버깅이 가능하다. 그 결과, 실패에 대한 신속한 대응이 가능하고 클라이언트의 피해를 줄일 수 있다. 이와 같이 웹 어플리케이션 테스트 타겟 환경이 많기 때문에 실시예들에 따른 기술이 개발자에게 도움이 될 것이다. Embodiments can be used for web application testing. As the usage environment of web applications is becoming more and more diverse, testing in various environments is becoming more important. This technique can quickly give feedback on failure to the web application developer, so it can be debugged quickly. As a result, it is possible to quickly respond to failures and reduce damage to clients. As described above, since there are many web application test target environments, the technology according to the embodiments will be helpful to the developer.
최근 많은 소프트웨어는 지속적인 통합(CI) 환경에서 개발이 되는데, 지속적인 통합(CI) 환경에서는 테스트 수행 간 간격(test interval)이 과거의 개발 환경에서보다 훨씬 좁다. 즉, 테스트가 자주 수행된다. 테스트 환경 스케줄링 기술이 복잡할 경우(예컨대, 코드 분석 정보 활용시), 비용 효과(cost-effectiveness)의 향상을 가져올 수 있지만 테스트 수행 간 간격 내에 스케줄링이 완료되지 못할 수 있다. 테스트 수행 간 간격 내에 스케줄링을 수행하기 위해서는 단순한 스케줄링 방법이 필요하지만 높은 비용 효과를 가지기 어렵다. Recently, many software is developed in a continuous integration (CI) environment, and in a continuous integration (CI) environment, the test interval is much narrower than in the past development environment. That is, tests are often performed. If the test environment scheduling technique is complex (eg, when using code analysis information), cost-effectiveness may be improved, but scheduling may not be completed within the interval between test executions. A simple scheduling method is required to perform scheduling within the interval between test executions, but it is difficult to have a high cost effect.
실시예들은 테스트 이력을 사용하여 가볍(lightweight)지만 비용 효과가 높은 방법을 제안하였다. 특히, 머신러닝(machine learning) 기술을 사용한 하이브리드(hybrid) 방법이 다른 방법에 비해 대체로 높은 비용 효과를 기록하는 것을 확인하였다. Examples have proposed a method that is lightweight but cost effective using test history. In particular, it was confirmed that the hybrid method using machine learning technology generally recorded higher cost-effectiveness compared to other methods.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It can be implemented using one or more general purpose computers or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. Can be embodyed in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler but also high-level language codes that can be executed by a computer using an interpreter or the like.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and drawings as described above, various modifications and variations are possible from the above description to those of ordinary skill in the art. For example, the described techniques are performed in an order different from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the claims to be described later.
Claims (16)
클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 단계
를 포함하고,
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는,
캐시(cache)에 저장된 웹 브라우저의 유형, 웹 브라우저 이름, 웹 브라우저 버전 및 운영 체제의 유형 중 적어도 어느 하나 이상의 상기 최근 실패한 웹 브라우저 환경의 정보를 이용하며, 상기 캐시의 정보에 따라 스케줄링되고, 최근의 실패 정보가 있는 웹 브라우저 환경은 다른 웹 브라우저 환경보다 높은 우선순위를 할당하는 것
을 특징으로 하는, 웹 브라우저 환경의 우선순위 결정 방법. In the method of determining the priority of a web browser environment for web application testing,
When performing a regression test on a client-side web application, information on the failure history related to the web browser environment is used in the web application, and at least one of information on a web browser environment that has recently failed and information on a web browser environment that has frequently failed The step of determining the priority of the web browser environment using the information on the above failure
Including,
The step of determining the priority of the web browser environment,
At least one of the web browser type, web browser name, web browser version, and operating system type stored in the cache is used, and is scheduled according to the information of the cache, and The web browser environment with the failure information is assigned a higher priority than other web browser environments.
Characterized in, a method for determining the priority of a web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는,
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 단계; 및
복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 원래 순서 또는 무작위로 스케줄링하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법. The method of claim 1,
The step of determining the priority of the web browser environment,
The cache listing information on the recently failed web browser environment, and assigning a higher priority when the web browser environment of the test target build is included in the cache; And
If multiple web browser environments have the same priority, scheduling in the original order or randomly
Including, the method of determining the priority of the web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는,
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경과 상기 캐시에서의 각 웹 브라우저 환경 간의 유사성을 계산하는 단계; 및
테스트 대상 빌드(build)에서의 각 웹 브라우저 환경을 계산된 상기 유사성에 따라 내림차순으로 스케줄링하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법. The method of claim 1,
The step of determining the priority of the web browser environment,
The cache listing information on the recently failed web browser environment, and calculating a similarity between each web browser environment in a test target build and each web browser environment in the cache; And
Scheduling each web browser environment in the test target build in descending order according to the calculated similarity
Including, the method of determining the priority of the web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는,
상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득하는 단계; 및
상기 웹 브라우저 환경의 상기 실패 빈도에 따라 내림차순으로 스케줄링하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법. The method of claim 1,
The step of determining the priority of the web browser environment,
Acquiring a failure frequency of a web browser environment in which the regression test frequently fails; And
Scheduling in descending order according to the failure frequency of the web browser environment
Including, the method of determining the priority of the web browser environment.
클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 단계
를 포함하고,
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는,
머신러닝(Machine Learning, ML) 기반으로 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공하는 단계; 및
상기 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법. In the method of determining the priority of a web browser environment for web application testing,
When performing a regression test on a client-side web application, information on the failure history related to the web browser environment is used in the web application, and at least one of information on a web browser environment that has recently failed and information on a web browser environment that has frequently failed The step of determining the priority of the web browser environment using the information on the above failure
Including,
The step of determining the priority of the web browser environment,
Automatically learning a failure pattern of a web browser environment in which the regression test frequently fails based on machine learning (ML), and providing a failure probability to a web browser environment in a subsequent build; And
Scheduling the web browser environment in descending order according to the probability of failure
Including, the method of determining the priority of the web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는,
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 단계;
복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득하는 단계; 및
상기 웹 브라우저 환경의 상기 실패 빈도에 따라 내림차순으로 스케줄링하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법. The method of claim 1,
The step of determining the priority of the web browser environment,
The cache listing information on the recently failed web browser environment, and assigning a higher priority when the web browser environment of the test target build is included in the cache;
Obtaining a failure frequency of a web browser environment in which the regression test frequently fails when the plurality of web browser environments have the same priority; And
Scheduling in descending order according to the failure frequency of the web browser environment
Including, the method of determining the priority of the web browser environment.
상기 웹 브라우저 환경의 우선순위를 결정하는 단계는,
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 단계;
복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 머신러닝(Machine Learning, ML) 기반으로 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공하는 단계; 및
상기 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법. The method of claim 1,
The step of determining the priority of the web browser environment,
The cache listing information on the recently failed web browser environment, and assigning a higher priority when the web browser environment of the test target build is included in the cache;
If the priority of multiple web browser environments is the same, it automatically learns the failure pattern of the web browser environment that frequently failed the regression test based on machine learning (ML), and the probability of failure in the web browser environment in subsequent builds. Providing a; And
Scheduling the web browser environment in descending order according to the probability of failure
Including, the method of determining the priority of the web browser environment.
클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 단계
를 포함하고,
결정된 상기 웹 브라우저 환경의 우선순위를 결정 방법에 따라 웹 브라우저 환경에 대해 상기 회귀 테스트를 수행하는 단계
를 더 포함하고,
상기 회귀 테스트를 수행하는 단계는,
첫 번째 실패한 빌드(build)의 회귀 테스트 결과를 기반으로 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 빌드하는 단계;
결정된 상기 웹 브라우저 환경의 우선순위를 결정 방법에 의해 생성된 우선순위에 따라 테스트 대상 빌드의 웹 브라우저 환경에 우선순위를 결정하는 단계;
상기 테스트 대상 빌드에 대한 회귀 테스트 결과 값을 측정하는 단계; 및
모든 웹 브라우저 환경이 아닌 일부 빌드에서 상기 회귀 테스트가 실패할 때 상기 테스트 대상 빌드의 회귀 테스트 결과를 기반으로 상기 캐시, 실패 빈도에 대한 데이터 구조 및 머신러닝(ML) 모델을 업데이트하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법.In the method of determining the priority of a web browser environment for web application testing,
When performing a regression test on a client-side web application, information on the failure history related to the web browser environment is used in the web application, and at least one of information on a web browser environment that has recently failed and information on a web browser environment that has frequently failed The step of determining the priority of the web browser environment using the information on the above failure
Including,
Performing the regression test on the web browser environment according to the determined method of determining the priority of the web browser environment
Including more,
The step of performing the regression test,
Building a cache, a data structure for failure frequency, and a machine learning (ML) model based on a regression test result of the first failed build;
Determining a priority of the web browser environment of the test target build according to the priority generated by the determined priority of the web browser environment;
Measuring a regression test result value for the test target build; And
When the regression test fails in some builds other than all web browser environments, updating the cache, the data structure for the failure frequency, and a machine learning (ML) model based on the regression test result of the test target build
Including, the method of determining the priority of the web browser environment.
상기 생성된 우선순위에 따라 테스트 대상 빌드의 웹 브라우저 환경에 우선순위를 결정하는 단계는,
복수의 웹 브라우저 환경이 동일한 우선순위를 갖는 경우 무작위 우선순위 결정을 하는 단계
를 포함하는, 웹 브라우저 환경의 우선순위 결정 방법.The method of claim 9,
The step of determining the priority in the web browser environment of the test target build according to the generated priority,
Step of randomly prioritizing when multiple web browser environments have the same priority
Including, the method of determining the priority of the web browser environment.
클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 우선순위 결정부
를 포함하고,
웹 브라우저의 유형, 웹 브라우저 이름, 웹 브라우저 버전 및 운영 체제의 유형 중 적어도 어느 하나 이상의 상기 최근 실패한 웹 브라우저 환경의 정보를 저장하는 캐시(cache)
를 포함하고,
상기 우선순위 결정부는,
상기 캐시의 정보에 따라 스케줄링되고, 최근의 실패 정보가 있는 웹 브라우저 환경은 다른 웹 브라우저 환경보다 높은 우선순위를 할당하는 것
을 특징으로 하는, 웹 브라우저 환경의 우선순위 결정 장치.In the prioritization apparatus of a web browser environment for web application testing,
When performing a regression test on a client-side web application, information on the failure history related to the web browser environment is used in the web application, and at least one of information on a web browser environment that has recently failed and information on a web browser environment that has frequently failed Priority decision unit that determines the priority of the web browser environment using information on the above failures
Including,
A cache for storing information on the recently failed web browser environment at least one of a type of web browser, a web browser name, a web browser version, and an operating system type
Including,
The priority determining unit,
The web browser environment, which is scheduled according to the information in the cache, and has recent failure information, is assigned a higher priority than other web browser environments.
A device for determining the priority of a web browser environment, characterized in that.
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)의 웹 브라우저 환경이 상기 캐시에 포함되어 있는 경우 더 높은 우선순위를 할당하는 캐시 적중 확인부
를 더 포함하고,
상기 우선순위 결정부는,
복수의 웹 브라우저 환경의 우선순위가 동일한 경우, 원래 순서 또는 무작위로 스케줄링하는 것
을 특징으로 하는, 웹 브라우저 환경의 우선순위 결정 장치.The method of claim 12,
The cache lists information on the recently failed web browser environment, and a cache hit check unit that allocates a higher priority when the web browser environment of the test target build is included in the cache
Including more,
The priority determining unit,
If multiple web browser environments have the same priority, scheduling in the original order or randomly
A device for determining the priority of a web browser environment, characterized in that.
상기 캐시는 상기 최근 실패한 웹 브라우저 환경의 정보를 나열하며, 테스트 대상 빌드(build)에서의 각 웹 브라우저 환경과 상기 캐시에서의 각 웹 브라우저 환경 간의 유사성을 계산하는 유사성 계산부
를 더 포함하고,
상기 우선순위 결정부는,
테스트 대상 빌드(build)에서의 각 웹 브라우저 환경을 계산된 상기 유사성에 따라 내림차순으로 스케줄링하는 것
을 특징으로 하는, 웹 브라우저 환경의 우선순위 결정 장치.The method of claim 12,
The cache lists information on the recently failed web browser environment, and a similarity calculator that calculates the similarity between each web browser environment in the test target build and each web browser environment in the cache
Including more,
The priority determining unit,
Scheduling each web browser environment in the test target build in descending order according to the calculated similarity
A device for determining the priority of a web browser environment, characterized in that.
상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 빈도를 획득하는 실패 빈도 획득부
를 더 포함하고,
상기 우선순위 결정부는,
상기 웹 브라우저 환경의 상기 실패 빈도에 따라 내림차순으로 스케줄링하는 것
을 특징으로 하는, 웹 브라우저 환경의 우선순위 결정 장치.The method of claim 12,
A failure frequency acquisition unit that obtains the failure frequency of a web browser environment that frequently fails the regression test
Including more,
The priority determining unit,
Scheduling in descending order according to the failure frequency of the web browser environment
A device for determining the priority of a web browser environment, characterized in that.
클라이언트 측 웹 어플리케이션을 회귀 테스트 시, 상기 웹 어플리케이션에서 웹 브라우저 환경과 관련된 실패 이력(failure history)에 관한 정보를 이용하며, 최근 실패한 웹 브라우저 환경의 정보 및 자주 실패한 웹 브라우저 환경의 정보 중 적어도 어느 하나 이상의 실패에 대한 정보를 이용하여 웹 브라우저 환경의 우선순위를 결정하는 우선순위 결정부
를 포함하고,
머신러닝(Machine Learning, ML) 기반으로 상기 회귀 테스트를 자주 실패한 웹 브라우저 환경의 실패 패턴을 자동으로 학습하고, 후속 빌드에서의 웹 브라우저 환경에 실패 확률을 제공하는 머신러닝 모델부
를 더 포함하고,
상기 우선순위 결정부는,
상기 웹 브라우저 환경에 실패 확률에 따라 내림차순으로 스케줄링하는 것
을 특징으로 하는, 웹 브라우저 환경의 우선순위 결정 장치.In the prioritization apparatus of a web browser environment for web application testing,
When performing a regression test on a client-side web application, information on the failure history related to the web browser environment is used in the web application, and at least one of information on a web browser environment that has recently failed and information on a web browser environment that has frequently failed Priority decision unit that determines the priority of the web browser environment using information on the above failures
Including,
Machine learning model unit that automatically learns the failure pattern of the web browser environment that frequently failed the regression test based on machine learning (ML) and provides the probability of failure to the web browser environment in subsequent builds
Including more,
The priority determining unit,
Scheduling in descending order according to the probability of failure in the web browser environment
A device for determining the priority of a web browser environment, characterized in that.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180049060 | 2018-04-27 | ||
KR20180049060 | 2018-04-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190125163A KR20190125163A (en) | 2019-11-06 |
KR102153811B1 true KR102153811B1 (en) | 2020-09-09 |
Family
ID=68541935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190010915A KR102153811B1 (en) | 2018-04-27 | 2019-01-29 | Method and apparatus for prioritizing web browser environment for testing web application |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102153811B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060015573A1 (en) | 2004-06-30 | 2006-01-19 | Microsoft Corporation | System and method for automatic redirection to stored web resources upon access failure |
JP2010165267A (en) | 2009-01-19 | 2010-07-29 | Hitachi Software Eng Co Ltd | System for automatically executing regression test |
JP2015158897A (en) | 2014-01-21 | 2015-09-03 | 三菱電機株式会社 | Regression test scenario generator |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140008201A (en) * | 2012-07-11 | 2014-01-21 | 삼성전자주식회사 | Apparatus and method for prioritizing of test cases to verify quality of application |
KR20160068388A (en) * | 2014-12-05 | 2016-06-15 | 삼성중공업 주식회사 | System and method for providing intelligent web browser |
-
2019
- 2019-01-29 KR KR1020190010915A patent/KR102153811B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060015573A1 (en) | 2004-06-30 | 2006-01-19 | Microsoft Corporation | System and method for automatic redirection to stored web resources upon access failure |
JP2010165267A (en) | 2009-01-19 | 2010-07-29 | Hitachi Software Eng Co Ltd | System for automatically executing regression test |
JP2015158897A (en) | 2014-01-21 | 2015-09-03 | 三菱電機株式会社 | Regression test scenario generator |
Also Published As
Publication number | Publication date |
---|---|
KR20190125163A (en) | 2019-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9715441B2 (en) | Risk-based test coverage and prioritization | |
Elbaum et al. | Techniques for improving regression testing in continuous integration development environments | |
EP3596605B1 (en) | Systems and methods for micro-scheduler testing framework | |
US8448141B2 (en) | Evaluation of software based on change history | |
WO2017036335A1 (en) | Code submitting method and device | |
US8719789B2 (en) | Measuring coupling between coverage tasks and use thereof | |
US11157347B2 (en) | Detection of resource bottlenecks in user devices using artificial intelligence and causal graphs | |
US9280331B2 (en) | Hash-based change tracking for software make tools | |
US9959197B2 (en) | Automated bug detection with virtual machine forking | |
JP5845812B2 (en) | Policy scheduling for efficient parallelization of software analysis in distributed computing environments | |
JP2014507710A (en) | Processing device, trace unit, and diagnostic device | |
US9632921B1 (en) | Validation using scenario runners | |
US9600795B2 (en) | Measuring process model performance and enforcing process performance policy | |
US11119901B2 (en) | Time-limited dynamic testing pipelines | |
Mendoza et al. | Interference-aware scheduling for inference serving | |
Bai et al. | Impact of service function aging on the dependability for MEC service function chain | |
US20220382936A1 (en) | Method and system for micro-service testing, and storage medium | |
WO2017131669A1 (en) | Recommendations based on the impact of code changes | |
US20150331787A1 (en) | Software verification | |
JPWO2019189249A1 (en) | Learning devices, learning methods, and programs | |
US11169910B2 (en) | Probabilistic software testing via dynamic graphs | |
CN110825427B (en) | Code management method, device, server and storage medium | |
US10528691B1 (en) | Method and system for automated selection of a subset of plurality of validation tests | |
US11573885B1 (en) | System and method for test selection according to test impact analytics | |
KR102153811B1 (en) | Method and apparatus for prioritizing web browser environment for testing web application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |