CN113688031B - Test positioning method based on byte code enhancement technology - Google Patents
Test positioning method based on byte code enhancement technology Download PDFInfo
- Publication number
- CN113688031B CN113688031B CN202110801329.8A CN202110801329A CN113688031B CN 113688031 B CN113688031 B CN 113688031B CN 202110801329 A CN202110801329 A CN 202110801329A CN 113688031 B CN113688031 B CN 113688031B
- Authority
- CN
- China
- Prior art keywords
- code
- test
- byte code
- enhancement
- positioning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000005516 engineering process Methods 0.000 title claims abstract description 19
- 230000003068 static effect Effects 0.000 claims abstract description 20
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 description 2
- 238000009933 burial Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
The invention relates to a test positioning method based on a byte code enhancement technology, which comprises the following steps: configuring a byte code enhancement module; loading, analyzing and modifying a byte code file corresponding to the source code based on a byte code enhancement technology, and obtaining byte code static data; adding event buried points on the source code logic based on a byte code enhancement technology, and acquiring test information and code execution dynamic data when a test case is adopted for testing; and performing test positioning based on the static data of the byte code, the test information and the code execution dynamic data. Compared with the prior art, the invention has the advantages of simplicity, high efficiency, intelligence and the like.
Description
Technical Field
The invention relates to the technical field of software development and testing, in particular to a test positioning method based on a byte code enhancement technology.
Background
The common black box test in the current software test comprises the steps of initiating by a test department the means of system integration test, user acceptance test and the like, writing relevant test cases, and executing automatic test or manual test. Because the testers cannot know the structure and the condition of the internal running of the program, the testers and the developers cannot know whether the black cases are sufficient or not. Therefore, when writing test cases, the tester needs to communicate with the developer for a relatively long time to determine the test scope and boundary involved in the test.
The existing test scheme does not analyze the correlation between the source codes and the code execution records, and also does not analyze the calling relationship between classes and methods among the source codes, so that the source codes are not significant to testers, and therefore, the code execution records and coverage rate information thereof are also a data island for the testers, so that the testers have no correct standard rod when writing test cases, and can only determine test contents through continuous communication with developers.
Disclosure of Invention
The invention aims to overcome the defects of the prior art and provide a test positioning method based on a byte code enhancement technology.
The aim of the invention can be achieved by the following technical scheme:
a test positioning method based on a bytecode enhancement technique, the method comprising:
configuring a byte code enhancement module;
loading, analyzing and modifying a byte code file corresponding to the source code based on a byte code enhancement technology, and obtaining byte code static data;
adding event buried points on the source code logic based on a byte code enhancement technology, and acquiring test information and code execution dynamic data when a test case is adopted for testing;
and performing test positioning based on the static data of the byte code, the test information and the code execution dynamic data.
Preferably, the specific way of configuring the byte code enhancement module is as follows: initializing a byte code enhancement module, connecting a JVM virtual machine through an Agent module, using an Attach Api provided by the JVM, attaching a proxy tool program to the JVM of each test system after the start of each test system is completed, loading enhancement expansion and reading enhancement configuration.
Preferably, the static data of the byte code comprises members, methods and annotation information related to each source code class, and method calls, member initialization and calls, abnormal intervals and code line records corresponding to the corresponding class.
Preferably, the manner of acquiring the static data of the byte code includes:
loading corresponding jar package information in the existing program, analyzing class files through a byte code enhancement technology, scanning the content of the class files all the time, and calling AgentClassVisistor to acquire member, method and annotation information related to the class corresponding to the class files when the corresponding content of the class files is scanned each time, and calling AgentMethodVisistor to acquire method call, member initialization and call, abnormal interval and code line record related to the corresponding class.
Preferably, the event burying point setting positions include a start position and an end position of the source code and a position after each line of codes.
Preferably, when the test case tests, when executing a certain code, the corresponding event embedded point after the code is triggered to generate corresponding code execution dynamic data.
Preferably, the test information includes a system name, an application name, a service name, service information in a request distributed architecture component, a test identifier, a case identifier, a user identifier, and a request identifier.
Preferably, the code execution dynamic data is log data, and the log data records the execution condition or coverage corresponding to the current code.
Preferably, the static data of the byte code, the test information and the dynamic data of the code execution are collected by the Kafka log module and sent to the test platform for unified processing to carry out test positioning.
Preferably, the test positioning specifically includes positioning code execution records related to source codes and coverage rate of test cases.
Compared with the prior art, the invention has the following advantages:
(1) Simpler: the tester can directly acquire the testing range of the current test through the developed code change;
(2) More efficient: the testers participate in the development work of the code level to a certain extent, and a plurality of problems which are difficult to communicate can be reflected from the code change;
(3) More intelligent: the test platform can recommend test cases according to code changes to obtain the maximum coverage of codes, and the test platform is more accurate than blind full-scale test.
Drawings
FIG. 1 is a flow chart of an implementation of a test positioning method based on a byte code enhancement technique of the present invention.
Detailed Description
The invention will now be described in detail with reference to the drawings and specific examples. Note that the following description of the embodiments is merely an example, and the present invention is not intended to be limited to the applications and uses thereof, and is not intended to be limited to the following embodiments.
Examples
A test positioning method based on a bytecode enhancement technique, the method comprising:
1. the byte code enhancement module is configured in the following specific modes: initializing a byte code enhancement module, connecting a JVM virtual machine through an Agent module, using an Attach Api provided by the JVM, attaching a proxy tool program to the JVM of each test system after the start of each test system is completed, loading enhancement expansion and reading enhancement configuration.
2. And loading, analyzing and modifying a byte code file corresponding to the source code based on the byte code enhancement technology, and obtaining byte code static data, wherein the byte code static data comprises members, methods and annotation information related to each type of the source code, and method calls, member initialization and call, abnormal intervals and code line records corresponding to the corresponding types.
The method for acquiring the static data of the byte code comprises the following steps:
loading corresponding jar package information in the existing program, analyzing class files through a byte code enhancement technology, scanning the content of the class files all the time, and calling AgentClassVisistor to acquire member, method and annotation information related to the class corresponding to the class files when the corresponding content of the class files is scanned each time, and calling AgentMethodVisistor to acquire method call, member initialization and call, abnormal interval and code line record related to the corresponding class.
3. Based on the byte code enhancement technology, event burial points are added on the source code logic, and test information and code execution dynamic data are obtained when test cases are adopted for testing.
The event buried point setting positions include the start and end positions of the source code and after each line of code. When the test case tests, when executing a certain code, the corresponding event embedded point behind the code is triggered to generate corresponding code execution dynamic data.
The test information includes a system name, an application name, a service name, service information in a request distributed architecture component, a test identifier, a case identifier, a user identifier, and a request identifier.
The code execution dynamic data is log data, and the log data records the execution condition or coverage corresponding to the current code.
4. And performing test positioning based on the static data of the byte code, the test information and the code execution dynamic data. The static data, the test information and the code execution dynamic data of the byte codes are collected by the Kafka log module and sent to the test platform for unified processing to carry out test positioning. The test positioning specifically comprises code execution records related to positioning source codes and coverage rate of test cases, and specifically comprises the following steps:
after the test platform acquires the content, the test platform can be combined with a source code program to analyze to obtain the following content:
(1) Checking global code coverage;
(2) Displaying the global coverage condition of the current class code corresponding to the source code;
(3) Statically analyzing class dependency relations from class files;
(4) The corresponding source code displays which classes the current class depends on;
(5) Recommending that the current class be referenced by those classes;
(6) Checking code coverage conditions related to execution of a certain use case based on the use case;
(7) Displaying a calling path of a use case method at a certain time;
(8) Displaying the code coverage condition related to the current branch corresponding to the source code;
(9) Displaying the current change related to the code coverage condition corresponding to the source code;
(10) The execution case checks the code coverage condition corresponding to the current change in a certain case;
(11) Executing records corresponding to the source code display cases;
(12) The corresponding source code recommends using some use case execution to obtain maximum coverage.
After the starting of each test system is completed, the JVM virtual machine is connected through an Agent module, a byte code file corresponding to the existing service is loaded, analyzed and modified, the existing byte code static data is obtained, event embedded point information is added on the original service logic, and therefore test information and code execution conditions in the current context are obtained in the service execution process. Therefore, the key point related to the invention mainly comprises two data acquisition methods of static data of the byte code and dynamic data of the code execution. After the static data of the byte code and the dynamic data of the code execution are obtained, the correlation between the code execution record related to the positioning source code and the coverage rate and the like can be solved by combining the test information and the source code. Furthermore, the tester can directly acquire the testing range of the current test through the developed code change, the tester participates in the development work of the code level to a certain extent, a plurality of problems which are difficult to communicate can be reflected on the code change, and the testing platform can recommend the testing case according to the code change so as to acquire the maximum coverage of the code, so that the testing platform is more accurate than blind full-scale testing.
The above embodiments are merely examples, and do not limit the scope of the present invention. These embodiments may be implemented in various other ways, and various omissions, substitutions, and changes may be made without departing from the scope of the technical idea of the present invention.
Claims (6)
1. A test positioning method based on a byte code enhancement technology is characterized by comprising the following steps:
configuring a byte code enhancement module;
loading, analyzing and modifying a byte code file corresponding to the source code based on a byte code enhancement technology, and obtaining byte code static data;
adding event buried points on the source code logic based on a byte code enhancement technology, and acquiring test information and code execution dynamic data when a test case is adopted for testing;
performing test positioning based on the static data of the byte code, the test information and the code execution dynamic data;
the byte code static data comprises members, methods, annotation information related to each class of source codes, method calls, member initialization and calls, abnormal intervals and code line records corresponding to the corresponding class;
the specific mode of the configuration byte code enhancement module is as follows: initializing a byte code enhancement module, connecting a JVM virtual machine through an Agent module, using an Attach Api provided by the JVM, attaching a proxy tool program to the JVM of each test system after the start of each test system is completed, loading enhancement expansion and reading enhancement configuration;
the event embedded point setting positions comprise a starting position and an ending position of source codes and a position behind each line of codes;
when the test case tests, when executing a certain code, the corresponding event embedded point behind the code is triggered to generate corresponding code execution dynamic data.
2. The method for positioning a test based on a bytecode enhancement technique according to claim 1, wherein the means for obtaining static data of the bytecode comprises:
loading corresponding jar package information in the existing program, analyzing class files through a byte code enhancement technology, scanning the content of the class files all the time, and calling AgentClassVisistor to acquire member, method and annotation information related to the class corresponding to the class files when the corresponding content of the class files is scanned each time, and calling AgentMethodVisistor to acquire method call, member initialization and call, abnormal interval and code line record related to the corresponding class.
3. The method of claim 1, wherein the test information includes a system name, an application name, a service name, service information in a request distributed architecture component, a test identifier, a case identifier, a user identifier, and a request identifier.
4. The method for positioning and testing based on the enhanced byte code technology according to claim 1, wherein the code execution dynamic data is log data, and the log data records the execution condition or coverage corresponding to the current code.
5. The method for testing and positioning based on the byte code enhancement technology according to claim 1, wherein the byte code static data, the test information and the code execution dynamic data are collected by the Kafka log module and sent to the test platform for unified processing for testing and positioning.
6. The method for positioning a test based on a bytecode enhancement technique according to claim 1, wherein the positioning of the test specifically includes positioning code execution records related to source codes and coverage of test cases.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110801329.8A CN113688031B (en) | 2021-07-15 | 2021-07-15 | Test positioning method based on byte code enhancement technology |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110801329.8A CN113688031B (en) | 2021-07-15 | 2021-07-15 | Test positioning method based on byte code enhancement technology |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113688031A CN113688031A (en) | 2021-11-23 |
CN113688031B true CN113688031B (en) | 2024-03-26 |
Family
ID=78577113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110801329.8A Active CN113688031B (en) | 2021-07-15 | 2021-07-15 | Test positioning method based on byte code enhancement technology |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113688031B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756092B (en) * | 2023-08-23 | 2024-01-05 | 深圳红途科技有限公司 | System download file marking method, device, computer equipment and storage medium |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1276047A2 (en) * | 2001-07-11 | 2003-01-15 | Sun Microsystems, Inc. | System controller for use in a distributed processing framework system and methods for implementing the same |
KR20070052328A (en) * | 2007-03-28 | 2007-05-21 | 텔레콤 이탈리아 소시에떼 퍼 아찌오니 | Method and system for providing interactive services in digital television |
CN106502896A (en) * | 2016-10-21 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | A kind of generation method of function test code and device |
CN107688530A (en) * | 2017-04-06 | 2018-02-13 | 平安科技(深圳)有限公司 | Method for testing software and device |
CN112416794A (en) * | 2020-12-03 | 2021-02-26 | 平安银行股份有限公司 | Method, device and equipment for processing code coverage rate and storage medium |
CN112612697A (en) * | 2020-12-17 | 2021-04-06 | 航天信息股份有限公司 | Software defect testing and positioning method and system based on byte code technology |
CN113076253A (en) * | 2021-04-16 | 2021-07-06 | 北京京东拓先科技有限公司 | Test method and test device |
-
2021
- 2021-07-15 CN CN202110801329.8A patent/CN113688031B/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1276047A2 (en) * | 2001-07-11 | 2003-01-15 | Sun Microsystems, Inc. | System controller for use in a distributed processing framework system and methods for implementing the same |
KR20070052328A (en) * | 2007-03-28 | 2007-05-21 | 텔레콤 이탈리아 소시에떼 퍼 아찌오니 | Method and system for providing interactive services in digital television |
CN106502896A (en) * | 2016-10-21 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | A kind of generation method of function test code and device |
CN107688530A (en) * | 2017-04-06 | 2018-02-13 | 平安科技(深圳)有限公司 | Method for testing software and device |
CN112416794A (en) * | 2020-12-03 | 2021-02-26 | 平安银行股份有限公司 | Method, device and equipment for processing code coverage rate and storage medium |
CN112612697A (en) * | 2020-12-17 | 2021-04-06 | 航天信息股份有限公司 | Software defect testing and positioning method and system based on byte code technology |
CN113076253A (en) * | 2021-04-16 | 2021-07-06 | 北京京东拓先科技有限公司 | Test method and test device |
Also Published As
Publication number | Publication date |
---|---|
CN113688031A (en) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7647584B2 (en) | Automation and isolation of software component testing | |
CN106325970A (en) | Compiling method and compiling system | |
CN103577324B (en) | Static detection method for privacy information disclosure in mobile applications | |
US8402446B2 (en) | Associating probes with test cases | |
CN102541731B (en) | Platform-agnostic diagnostic data collection and display | |
CN110716874B (en) | Domestic operating system hardware compatibility testing method | |
CN112732576B (en) | Automatic testing method, device and equipment based on user interface | |
CN113688031B (en) | Test positioning method based on byte code enhancement technology | |
CN112612697A (en) | Software defect testing and positioning method and system based on byte code technology | |
CN116450533B (en) | Security detection method and device for application program, electronic equipment and medium | |
CN115456628A (en) | Intelligent contract viewing method and device based on block chain, storage medium and equipment | |
CN113127367B (en) | Defect detection method for Android dynamic permission application | |
CN115185570A (en) | JIRA system-based task flow processing method, system, device, medium, and computer program product | |
CN114942887A (en) | Program safety testing method, device, equipment and medium | |
CN114676436A (en) | Android application multimedia analysis library vulnerability mining system and method based on structural variation | |
CN112506782A (en) | Application program testing method, device, equipment and storage medium | |
Esipchuk et al. | PTF-based test automation for Java applications on mobile phones | |
CN114780952B (en) | Detection method, system and storage medium for sensitive application call scene | |
CN112131110A (en) | Multisource heterogeneous data probe method and device of smart phone system | |
CN117056241B (en) | Application program testing method and device for mobile terminal | |
CN112148581A (en) | Code specification checking method, device, system and storage medium | |
CN112099838B (en) | Method, device and storage medium for determining version difference | |
CN112783759B (en) | White box test task execution method and device, storage medium and computer equipment | |
CN114003478A (en) | Performance test method and device, electronic equipment and storage medium | |
CN111221719B (en) | Automatic test system and test method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |