CN112084786A - DSL-based network configuration file testing method - Google Patents
DSL-based network configuration file testing method Download PDFInfo
- Publication number
- CN112084786A CN112084786A CN202010767723.XA CN202010767723A CN112084786A CN 112084786 A CN112084786 A CN 112084786A CN 202010767723 A CN202010767723 A CN 202010767723A CN 112084786 A CN112084786 A CN 112084786A
- Authority
- CN
- China
- Prior art keywords
- error
- configuration file
- errors
- suspicious
- assertion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 23
- 238000004458 analytical method Methods 0.000 claims abstract description 17
- 238000012795 verification Methods 0.000 claims abstract description 17
- 238000001514 detection method Methods 0.000 claims abstract description 11
- 230000003068 static effect Effects 0.000 claims abstract description 10
- 238000005516 engineering process Methods 0.000 claims abstract description 4
- 238000002360 preparation method Methods 0.000 claims abstract description 3
- 239000013598 vector Substances 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 claims description 3
- 230000008447 perception Effects 0.000 claims description 3
- 238000010998 test method Methods 0.000 claims description 3
- 238000011835 investigation Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 241000287107 Passer Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
The invention discloses a DSL-based network configuration file testing method, which mainly comprises the following steps: step 1: preparation of a profile data set containing errors; step 2: preparing relevant content for executing static error matching, including analyzing each configuration file in an error configuration file set and a configuration file to be tested, and constructing a learning mode for suspicious error detection and an assertion template for suspicious error verification; and step 3: detection and verification of suspected errors, including matching to learning patterns, based on assertion templates and formalizing verifiers to verify suspected errors; and 4, step 4: and (3) judging whether the same errors exist in other configuration files or not by utilizing a semantic analysis technology based on the verification result in the step (3), and checking whether the same errors exist in other configuration files or not by utilizing a semantic learning-based method, so that the errors are detected more comprehensively and quickly, and the working efficiency is improved.
Description
Technical Field
The invention belongs to the technical field of computer analysis and detection, and particularly relates to a DSL-based network configuration file testing method, an assertion statement-based testing method and a semantic learning method.
Background
Domain-Specific Languages (DSLs) are a computer programming language with limited expressiveness for a Specific Domain, and are divided into external DSLs and internal DSLs. The domain specific language has three advantages: (1) the development efficiency is improved: by using DSL building models, the common codes are put together to avoid repetition, thereby greatly improving the productivity; (2) and (3) adding system functions: by knowing the DSL code, a large number of system functions can be written using DSL; (3) adapting the execution environment: DSL can make up for the limitations of the host language, represent things in a suitable DSL form, and generate code that can be used in the actual execution environment.
Assertion (Assertion) is a commonly used means in programming to place a discriminant that a return value always needs to be true into a program statement, to exclude cases that should not be generated in the logic of the design. At present, an assertion method is mainly used for detecting potential bugs in software, and combination of assertion and software testing is more beneficial to program analysis.
At this stage, copy-and-paste of code is often used to improve the effectiveness of software development, which if the development process is out of management would introduce a large amount of vulnerable code. The semantic learning method is mainly used for detecting whether known errors exist in program codes. Compared with a detection method and a fuzzy test method based on a clone technology, the semantic learning method has higher accuracy and effectiveness.
Disclosure of Invention
Because the potential error of the network configuration file can cause the problems of network interruption or abnormity and the like, in order to ensure the normal operation of the network, the invention designs a DSL-based network configuration file test method aiming at the Cisco configuration file.
The technical scheme adopted by the invention is as follows:
a DSL-based network configuration file testing method comprises the steps of constructing an error configuration file set and a learning mode, statically matching an abstract syntax tree, verifying suspected errors and calculating similarity based on semantics, and mainly comprises the following steps:
step 1: preparation of a profile data set containing errors;
step 2: preparing relevant content for executing static error matching, including analyzing each configuration file in an error configuration file set and a configuration file to be tested, and constructing a learning mode for suspicious error detection and an assertion template for suspicious error verification;
and step 3: detection and verification of suspected errors, including matching to learning patterns, based on assertion templates and formalizing verifiers to verify suspected errors;
and 4, step 4: based on the verification result in the step 3, judging whether the same error exists in other configuration files by utilizing a semantic analysis technology;
the configuration file data set containing errors in the step 1 needs deep investigation and collection of common error types in Cisco configuration files so as to construct the configuration file data set;
the detailed steps in the step 2 comprise:
step 2.1: analyzing each configuration file in the configuration file to be tested and the error configuration file set into an abstract syntax tree respectively;
step 2.2: and traversing the abstract syntax tree obtained in the step 2.1 by using a syntax tree, and collecting error related information, such as error types, error positions and the like. Finally, a learning pattern is constructed based on the error type. The constructed learning mode not only comprises information of error types, error variables and the like, but also comprises an assertion statement template for detecting suspicious errors.
The detailed steps in the step 3 comprise:
step 3.1: performing static pattern matching on the analyzed abstract syntax tree of the configuration file to be tested and the learning pattern constructed in the step 2.2, and if the matching is successful, indicating that a suspicious error exists in the configuration file to be tested;
step 3.2: based on the suspected error information found in step 3.1, finding out corresponding mode content in the learning mode according to the error type, automatically recommending and inserting corresponding error-oriented assertion statements at proper positions in the configuration file, and finally judging whether the suspected error is a real error according to the inserted assertion statements;
step 3.3: obtaining a configuration file inserted with an assertion statement through the step 3.2, in the step, verifying whether the suspicious error is a real error by executing the assertion statement and the formal verifier by using the test case, if the inserted assertion statement can be triggered by the test case, the suspicious error is a real error, otherwise, sending the configuration file containing the suspicious error to the formal verifier, and if the configuration file can be verified by the formal verifier, the suspicious error is not a real error; if the configuration file can not be verified by the verifier, the configuration file indicates that a potential suspicious error in the configuration file is a potential real error, and finally, the configuration file containing the real error is output;
the detailed steps in the step 4 comprise:
step 4.1: because the labeled semantic flow graph comprises both a control flow graph and a data flow graph, more semantic information can be acquired by using the labeled semantic flow graph.
Step 4.2: and taking the configuration file containing the real errors and any one configuration file in the configuration file set to be tested as input, extracting the characteristics of each basic block in the two files, and coding the basic blocks into initial numerical vectors.
Step 4.3: and (3) constructing a semantic perception deep neural network model by utilizing a deep neural network, sending the initial numerical value vector obtained in the step (4.2) to the model, and obtaining a corresponding embedded vector through repeated iterative computation, wherein the embedded vector is the semantic of the configuration file.
Step 4.4: and 4.3, calculating the similarity between the embedded vectors of the two configuration files acquired in the step 4.3 by using the cosine theorem, arranging the similarity scores in a descending order, comparing the similarity scores with a predefined threshold value respectively, if the score is greater than the threshold value, indicating that the configuration file in the configuration file set to be tested most possibly contains the same real error, and finally outputting the configuration file.
The invention has the advantages that: whether the same errors exist in other configuration files or not is checked based on a semantic learning method, so that the errors are detected more comprehensively and quickly, and the working efficiency is improved.
Drawings
Fig. 1 is an overall framework diagram of a DSL-based network profile testing method.
Fig. 2 is a framework diagram of an implementation of the parsing module.
FIG. 3 is a flow diagram of an implementation of a verification module.
FIG. 4 is a flow chart of an implementation of the semantic learning module.
Detailed Description
The invention is further described below with reference to the accompanying figures 1-4 of the specification. In order to fully detect potential errors in a configuration file, static pattern matching is combined with dynamic verification techniques to detect errors in a configuration file. Meanwhile, for a large configuration file, a semantic learning method is introduced to detect whether other configuration files contain detected errors or not, so that the detection speed is accelerated, and the method efficiency is improved.
An overall framework for DSL-based network profile testing methods. In the whole framework, three main functional modules are provided, namely an analysis module, a verification module and a semantic learning module. Analyzing each configuration file in the configuration file set containing errors and the configuration file to be tested into an abstract syntax tree through an analysis module, and traversing the abstract syntax trees to construct a learning mode for matching; performing pattern matching at a verification module to confirm the suspicious error, and determining whether the suspicious error is a real error by using an assertion statement; the semantic learning module judges whether other configuration files to be tested contain the known error or not based on the cosine theorem and the detected real error, and finally outputs the configuration file which most possibly contains the known error.
Before the analysis module works and develops, deep research is carried out, common error types in Cisco configuration files are collected, and an error configuration file set is constructed according to the collected error related information.
The parsing module implementation is shown in fig. 2. The module is mainly responsible for analyzing each configuration file in the error configuration file set and the configuration file to be tested into an abstract syntax tree respectively, collecting error related information by traversing the abstract syntax tree of the configuration file containing the error, and then constructing a learning mode for matching the suspicious error according to the error related information. In the learning mode, besides information such as error types and error variables, the learning mode also comprises corresponding assertion templates for judging whether suspicious errors are real errors.
An Abstract Syntax Tree (AST) is an intermediate representation form, and the main contents in a source file can be clearly understood by constructing the Abstract Syntax Tree. The structure of the abstract syntax tree is independent of the grammar of the host language, which employs a context-free grammar used in the parsing stage. The domain specific languages are classified into external DSL and internal DSL, where external DSL is a language "different from the language mainly used by the application system", and usually adopts a custom syntax, and is not limited to the syntax structure of the host language, thereby providing a greater degree of syntax freedom. Thus, in the present invention, the external DSL is used to describe the syntactic structure of the profile. The input text is then converted to an abstract syntax tree using a parser. The process of parsing the configuration file into an abstract syntax tree is as follows:
step 1: according to the characteristics of the Cisco configuration file, the lexical rules and the grammatical rules related to the configuration file are compiled based on the external DSL. According to the above, after constructing the abstract syntax tree corresponding to each configuration file by lexical and syntactic analysis, a listener mechanism based on the syntax parse tree automatically traverses each syntax tree. And collecting relevant information of the errors existing in the configuration file, such as important information of error types, error positions and the like, by traversing the syntax tree.
Step 2: and performing lexical analysis according to written lexical rules, wherein the lexical analysis process is mainly responsible for gathering characters in the input configuration file into lexical symbols and eliminating meaningless characters such as blank characters, line feed characters and the like in the source file. Through lexical analysis, grammar analysis can be simplified, and work efficiency is improved. After the collected information related to the errors is classified according to the types of the errors, the information is written into a learning mode for matching.
And step 3: and carrying out syntactic analysis according to the written syntactic rules, wherein the syntactic analysis is mainly responsible for receiving lexical symbols obtained by the lexical analysis, analyzing the lexical symbols to identify the statement structures in the configuration files, and finally constructing the corresponding abstract syntactic trees.
The detailed steps in the step 2 comprise:
step 2.1: analyzing each configuration file in the configuration file to be tested and the error configuration file set into an abstract syntax tree respectively;
step 2.2: and traversing the abstract syntax tree obtained in the step 2.1 by using a syntax tree, and collecting error related information, such as error types, error positions and the like. And finally, constructing a learning mode according to the error type, wherein the constructed learning mode not only comprises the error type and error variable information, but also comprises an assertion statement template for detecting suspicious errors.
The learning mode is mainly used for static mode matching, and whether suspicious errors exist in a source file to be detected or not is determined according to a matching result. After constructing the abstract syntax tree of each configuration file in the error configuration file set, traversing the abstract syntax tree according to the self syntax tree passer in the parser, and collecting the relevant information of the error. And finally classifying according to the error types to construct a learning mode.
The process of constructing the learning pattern is as follows: assertion template formalization program verification is a powerful technique to ensure program correctness, and in order to perform this technique better, it is often necessary to manually specify assertion statements, which is often a time consuming and error prone task. In the invention, the assertion method is applied to the detection of the configuration file for the first time. To save and ensure the accuracy of assertion statements, the present invention will automatically recommend at the appropriate location in the configuration file and insert the corresponding assertion statement. And classifying the assertion template according to the error types, designing an assertion statement by using a machine learning method, and finally constructing the assertion template. The process of formulating an assertion template is as follows:
step 2.3: judging whether assertion is needed: and judging whether suspicious errors exist in the configuration file according to the matching result of the learning pattern. If there is a suspicious error in the file, it means that an assertion statement does need to be inserted into the configuration file.
Step 2.4: recommending an assertion variable: assertion statements are usually expressed in the form of boolean expressions, which are determined by determining whether a variable in the expression is always true in any case, and therefore, after determining that an assertion needs to be inserted, it is still determined which variable is most likely to occur in the assertion. In the present invention, a "score" is defined for each variable, and by calculating the score of "score" and arranging in descending order, the variables with high scores are the variables most likely to appear in the assertion statement.
Step 2.5: recommended variable value range: after the assertion variable in the configuration file is determined, the maximum value and the minimum value of the variable value are calculated by using a verification tool according to the variable value rule in the configuration file, so that the compliance range of the variable value is recommended.
Step 2.6: and compiling the assertion sentences corresponding to each error according to the error types, and summarizing the assertion sentences into the assertion template in the learning mode.
The detailed steps in the step 3 comprise:
step 3.1: performing static pattern matching on the analyzed abstract syntax tree of the configuration file to be tested and the learning pattern constructed in the step 2.2, and if the matching is successful, indicating that a suspicious error exists in the configuration file to be tested;
step 3.2: based on the suspected error information found in step 3.1, finding out corresponding mode content in the learning mode according to the error type, automatically recommending and inserting corresponding error-oriented assertion statements at proper positions in the configuration file, and finally judging whether the suspected error is a real error according to the inserted assertion statements;
step 3.3: obtaining a configuration file inserted with an assertion statement through the step 3.2, in the step, verifying whether the suspicious error is a real error by executing the assertion statement and the formal verifier by using the test case, if the inserted assertion statement can be triggered by the test case, the suspicious error is a real error, otherwise, sending the configuration file containing the suspicious error to the formal verifier, and if the configuration file can be verified by the formal verifier, the suspicious error is not a real error; if the configuration file can not be verified by the verifier, the configuration file indicates that a potential suspicious error in the configuration file is a potential real error, and finally, the configuration file containing the real error is output.
The verifier adopts a verification module which comprises three parts of contents and is mainly responsible for confirming whether suspicious errors exist in the configuration file to be tested; if the suspicious error exists, automatically recommending and inserting related assertion statements at the proper position of the configuration file according to the corresponding assertion template in the learning mode; finally, the configuration file containing the assertion statement is verified by utilizing a formal verifier to judge whether the suspicious error is a real error.
Step 3.4: and in the pattern matching, the abstract syntax tree and the learning pattern of the configuration file to be tested sent by the analysis module are used as input, and the potential suspicious errors in the configuration file to be tested are finally output.
Step 3.5: and the analysis module analyzes the configuration file to be tested into a corresponding abstract syntax tree, collects important information in the abstract syntax tree based on the abstract syntax tree and the constructed learning mode, and performs static mode matching on the abstract syntax tree and the constructed learning mode.
Step 3.6: checking the static pattern matching result, and if the matching is successful, indicating that a suspicious error exists in the configuration file to be tested; otherwise, it is not present.
Step 3.7: and inserting an assertion, if the configuration file to be tested confirms that a suspicious error exists, finding corresponding mode content in the constructed learning mode according to the error type, automatically recommending at a proper position in the configuration file, and inserting a corresponding error-oriented assertion statement. And then, judging whether the detected suspicious error is a real error or not according to the inserted assertion statement.
Step 3.8: in the verification of the configuration file, whether the detected suspicious error is a real error needs to be judged in two ways, namely, executing an assertion statement and verifying the assertion statement.
Step 3.8.1: first, a test case auto-generator is utilized to generate a test case that can trigger error-oriented assertions in a configuration file. If the inserted assertion statement can be triggered by a real test case, it indicates that the suspicious error detected in the configuration file to be tested is a real error; and if the test case cannot be triggered by the real test case, sending the configuration file containing the suspected error to the step 2 for verification.
Step 3.8.2: in this step, the formal verifier is mainly used to automatically verify the configuration file containing the suspected error. If the configuration file can be verified by the formal verifier, the suspicious error is not a real error; if the configuration file can not be verified by the verifier, the suspected error in the configuration file is a potential real error. And outputting the real error and sending the real error to a semantic learning module.
Step 3.9: and the semantic learning module is used for realizing a scheme, and the module is mainly used for judging whether the other configuration files to be detected contain the known errors or not based on the detected real errors. The semantics of the two configuration files are generated by mainly utilizing a semantic generation model, the similarity score between the two semantics is calculated according to the cosine theorem, the two semantics are compared with a predefined threshold value, the two semantics are arranged in a descending order according to the score, and finally the configuration file most possibly containing the known error is output. The introduction of the semantic learning module can accelerate the detection speed and improve the overall efficiency of the method.
Step 3.10: and creating a marked Semantic Flow Graph, taking the configuration file containing the real error and the configuration file set to be tested as the input of the module, and respectively creating a marked Semantic Flow Graph (LSFG) for each configuration file in the configuration file containing the real error and the configuration file set to be tested. The marked semantic Flow Graph not only comprises a Control Flow Graph (CFG) but also comprises a Data Flow Graph (DFG), and more semantic information can be acquired by utilizing the marked semantic Flow Graph. In the present invention, it is contemplated to create a control flow graph for each basic block in the configuration file using the tool IDAPython, and to speculate a data flow graph between two basic blocks based on the created control flow graph.
Step 3.10.1 extracts features, performs feature extraction for each basic block in the two configuration files, the extracted features are light, robust and easy to extract, and encodes the extracted features as the initial value vector of the basic block. For each profile, where the initial value vectors of all basic blocks are stored in an independent file, the file is sent to a semantic generation model to generate profile semantics.
Step 3.10.2 builds a semantic generation model whose purpose is to obtain a higher dimensional feature representation that can be used as a semantic embedding vector to represent the semantics of the entire profile. A semantic perception deep neural network model is built based on a deep neural network, an initial numerical value vector of a configuration file is sent to the model, and an embedded vector, namely the semantics of the configuration file of the embedded vector and the configuration file of the embedded vector are obtained through multiple times of iterative computation.
And 3.10.3, similarity calculation, namely performing similarity calculation between the two embedded vectors of the two configuration files output by the semantic generation model based on the cosine theorem. And (4) the similarity scores are arranged according to a descending order and are respectively compared with a predefined threshold, the configuration file with the similarity score larger than the threshold is the configuration file most possibly containing the known real errors, and the configuration file is output. Aiming at a large configuration file set, a semantic learning module is utilized to quickly detect which configuration files in the configuration file set have known errors, so that the working efficiency of the whole method is improved.
Claims (5)
1. A DSL-based network profile test method is characterized by comprising the steps of constructing an error profile set and a learning mode, statically matching an abstract syntax tree, verifying suspected errors and calculating similarity based on semantics, and mainly comprises the following steps:
step 1: preparation of a profile data set containing errors;
step 2: preparing relevant content for executing static error matching, including analyzing each configuration file in an error configuration file set and a configuration file to be tested, and constructing a learning mode for suspicious error detection and an assertion template for suspicious error verification;
and step 3: detection and verification of suspected errors, including matching to learning patterns, based on assertion templates and formalizing verifiers to verify suspected errors;
and 4, step 4: and (4) judging whether the same error exists in other configuration files or not by utilizing a semantic analysis technology based on the verification result of the step (3).
2. The DSL-based network profile testing method of claim 1, wherein: the profile data set containing errors in step 1 requires deep investigation and collection of common error types in Cisco profiles to build the profile data set.
3. The DSL-based network profile testing method of claim 1, wherein: the detailed steps in the step 2 comprise:
step 2.1: analyzing each configuration file in the configuration file to be tested and the error configuration file set into an abstract syntax tree respectively;
step 2.2: and traversing the abstract syntax tree obtained in the step 2.1 by using a syntax tree, and collecting error related information, such as error types, error positions and the like. And finally, constructing a learning mode according to the error type, wherein the constructed learning mode not only comprises the error type and error variable information, but also comprises an assertion statement template for detecting suspicious errors.
4. The DSL-based network profile testing method of claim 1, wherein: the detailed steps in the step 3 comprise:
step 3.1: performing static pattern matching on the analyzed abstract syntax tree of the configuration file to be tested and the learning pattern constructed in the step 2.2, and if the matching is successful, indicating that a suspicious error exists in the configuration file to be tested;
step 3.2: based on the suspected error information found in step 3.1, finding out corresponding mode content in the learning mode according to the error type, automatically recommending and inserting corresponding error-oriented assertion statements at proper positions in the configuration file, and finally judging whether the suspected error is a real error according to the inserted assertion statements;
step 3.3: obtaining a configuration file inserted with an assertion statement through the step 3.2, in the step, verifying whether the suspicious error is a real error by executing the assertion statement and the formal verifier by using the test case, if the inserted assertion statement can be triggered by the test case, the suspicious error is a real error, otherwise, sending the configuration file containing the suspicious error to the formal verifier, and if the configuration file can be verified by the formal verifier, the suspicious error is not a real error; if the configuration file can not be verified by the verifier, the configuration file indicates that a potential suspicious error in the configuration file is a potential real error, and finally, the configuration file containing the real error is output.
5. The DSL-based network profile testing method of claim 1, wherein: the detailed steps in the step 4 comprise:
step 4.1: because the marked semantic flow graph comprises both a control flow graph and a data flow graph, more semantic information can be acquired, and the marked semantic flow graph needs to be established for each configuration file in a configuration file set containing real errors and configuration files to be tested;
step 4.2: taking a configuration file containing real errors and any one configuration file in a configuration file set to be tested as input, extracting the characteristics of each basic block in the two files, and coding the basic blocks into an initial numerical vector;
step 4.3: a deep neural network is utilized to construct a semantic perception deep neural network model, the initial numerical value vector obtained in the step 4.2 is sent to the model, and a corresponding embedded vector is obtained through repeated iterative computation, wherein the embedded vector is the semantic of the configuration file;
step 4.4: and 4.3, calculating the similarity between the embedded vectors of the two configuration files acquired in the step 4.3 by using the cosine theorem, arranging the similarity scores in a descending order, comparing the similarity scores with a predefined threshold value respectively, if the score is greater than the threshold value, indicating that the configuration file in the configuration file set to be tested most possibly contains the same real error, and finally outputting the configuration file.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767723.XA CN112084786A (en) | 2020-08-03 | 2020-08-03 | DSL-based network configuration file testing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767723.XA CN112084786A (en) | 2020-08-03 | 2020-08-03 | DSL-based network configuration file testing method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112084786A true CN112084786A (en) | 2020-12-15 |
Family
ID=73735317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010767723.XA Pending CN112084786A (en) | 2020-08-03 | 2020-08-03 | DSL-based network configuration file testing method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084786A (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841841A (en) * | 2011-06-20 | 2012-12-26 | 阿里巴巴集团控股有限公司 | Method and system for processing assertion in test |
JP2016525759A (en) * | 2013-07-30 | 2016-08-25 | インチュート・インコーポレイテッドIntuit Inc. | Method and system for obtaining a configuration profile |
CN106250769A (en) * | 2016-07-30 | 2016-12-21 | 北京明朝万达科技股份有限公司 | The source code data detection method of a kind of multistage filtering and device |
CN109656813A (en) * | 2018-11-21 | 2019-04-19 | 恒为科技(上海)股份有限公司 | A kind of test case operation method and device |
KR20190113050A (en) * | 2018-03-27 | 2019-10-08 | 한국과학기술원 | Method and system for automatic configuration test case generation of mobile application |
CN110347603A (en) * | 2019-07-12 | 2019-10-18 | 北京精密机电控制设备研究所 | A kind of automation software testing system and method for artificial intelligence |
CN110795142A (en) * | 2019-10-18 | 2020-02-14 | 郑州阿帕斯科技有限公司 | Configuration file generation method and device |
CN110941701A (en) * | 2019-11-27 | 2020-03-31 | 珠海格力电器股份有限公司 | Optimization method of semantic analysis sample set, storage medium and computing device |
-
2020
- 2020-08-03 CN CN202010767723.XA patent/CN112084786A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841841A (en) * | 2011-06-20 | 2012-12-26 | 阿里巴巴集团控股有限公司 | Method and system for processing assertion in test |
JP2016525759A (en) * | 2013-07-30 | 2016-08-25 | インチュート・インコーポレイテッドIntuit Inc. | Method and system for obtaining a configuration profile |
CN106250769A (en) * | 2016-07-30 | 2016-12-21 | 北京明朝万达科技股份有限公司 | The source code data detection method of a kind of multistage filtering and device |
KR20190113050A (en) * | 2018-03-27 | 2019-10-08 | 한국과학기술원 | Method and system for automatic configuration test case generation of mobile application |
CN109656813A (en) * | 2018-11-21 | 2019-04-19 | 恒为科技(上海)股份有限公司 | A kind of test case operation method and device |
CN110347603A (en) * | 2019-07-12 | 2019-10-18 | 北京精密机电控制设备研究所 | A kind of automation software testing system and method for artificial intelligence |
CN110795142A (en) * | 2019-10-18 | 2020-02-14 | 郑州阿帕斯科技有限公司 | Configuration file generation method and device |
CN110941701A (en) * | 2019-11-27 | 2020-03-31 | 珠海格力电器股份有限公司 | Optimization method of semantic analysis sample set, storage medium and computing device |
Non-Patent Citations (2)
Title |
---|
MICHEL ALBONICO: "A DSL-based Approach for Elasticity Testing of Cloud Systems", pages 1 - 7, Retrieved from the Internet <URL:https://hal.science/hal-01437137> * |
龚智勇: "基于Selenium的OpenStack Horizon自动化测试平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 06, 15 June 2017 (2017-06-15), pages 138 - 841 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Russell et al. | Automated vulnerability detection in source code using deep representation learning | |
CN109885479B (en) | Software fuzzy test method and device based on path record truncation | |
US11775414B2 (en) | Automated bug fixing using deep learning | |
CN109977205B (en) | Method for computer to independently learn source code | |
US7779049B1 (en) | Source level optimization of regular expressions | |
CN102339252A (en) | Static state detecting system based on XML (Extensive Makeup Language) middle model and defect mode matching | |
CN114297654A (en) | Intelligent contract vulnerability detection method and system for source code hierarchy | |
CN112307473A (en) | Malicious JavaScript code detection model based on Bi-LSTM network and attention mechanism | |
Tran et al. | Does BLEU score work for code migration? | |
CN113127339B (en) | Method for acquiring Github open source platform data and source code defect repair system | |
CN116049831A (en) | Software vulnerability detection method based on static analysis and dynamic analysis | |
Annamaa et al. | An interactive tool for analyzing embedded SQL queries | |
CN115269427A (en) | Intermediate language representation method and system for WEB injection vulnerability | |
CN117113347A (en) | Large-scale code data feature extraction method and system | |
CN113742205A (en) | Code vulnerability intelligent detection method based on man-machine cooperation | |
CN116340952A (en) | Intelligent contract vulnerability detection method based on operation code program dependency graph | |
CN116578980A (en) | Code analysis method and device based on neural network and electronic equipment | |
CN115066674A (en) | Method for evaluating source code using numeric array representation of source code elements | |
KR102546424B1 (en) | Machine learning data generating apparatus, apparatus and method for analyzing errors in source code | |
CN113238937B (en) | Compiler fuzzy test method based on code compaction and false alarm filtering | |
CN115357492A (en) | Formal verification method and device for Java software | |
CN116541286A (en) | High coverage rate test data generation method based on pile insertion and symbol execution | |
CN115039083A (en) | Validity verification enabling method for asynchronous algorithm generated during execution of logic connection program | |
CN112084786A (en) | DSL-based network configuration file testing method | |
Anderson et al. | Supporting analysis of SQL queries in PHP AiR |
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 |