How to use Threadingtest to improve software security detection efficiency (bottom)
method Three: Visual code structure Analysisfunction Call Graph:
Can show users a series of information about the software system as a whole. such as: class or function and the total number of member functions of the class, call relationship or class of inheritance relationship depth, hierarchy, statement total number of rows and overall complexity, the overall test coverage (the results of the cumulative and last run, you can choose the statement, Branch and MC/DC test coverage criteria), Overall performance analysis results as well as the proportion of each module, as well as the global variables and static variables analysis results, etc. at the same time, it also gives the specific information of each module, including: The source line number and complexity of each module, test coverage Analysis results, fan-in fan out information, highlighting a module and all its related modules, Or, a local subtree is generated for the root of any module.
Features of the function call graph:
1. support for ultra-high-speed graphics rendering at million-element levels.
2. support full-screen and ultra-smooth zoom and shrink technology, smooth mobile technology.
3. it is possible to freely define the number of layers by aggregating the layout according to the class grouping and by the function call relation layout.
4. supports step-by-step sub-tree expansion and drill down functions.
5. Supports the display of coverage on function entities, as well as coverage and function-related information.
6. Traceability: The function call graph is "live", not stationary, you can choose any module in the graph and trace all the paths and related modules that call it, and the module that he calls, to modify the prevention of defects in the module inconsistency.
7. Interoperable , such as highlighting a module and its associated modules, or drawing a single module's invocation relationship.
8. You can select any module in the function call graph to generate a local sub-graph for the root, and generate the related information of the sub-graph, so that the group of groups or individuals can easily get the relevant local information.
9. The link between the modules and the logical block diagram: Complete the combination of macro (function call graph) and microscopic view (control flowchart) to achieve better visualization
Function call Aggregation graph:
Groups of functions are grouped by class, and functions of the same class are aggregated by graphs.
Class inheritance diagram:
Shows the integration and derivation relationships for all classes of the current project.
Control Flowchart
Through the function of the if-else,while,for,do-while,switch-case and other control statement structure to draw a display diagram of the process relationship, with the following source code display interface, display can clearly see the function inside the operation logic and structure, conditions of the true and false health, mc/ DC's satisfaction rate, and so on.
Characteristics:
1. visual Control flow chart, the main control logic statement should have a clear graphical element display, support nested display and display in series.
2. Click each element of the control flow graph to see the corresponding code snippet, as well as the number of execution times and coverage of the code snippet.
3. in the code snippet of the control flow graph, when the conditional statement becomes the selected hotspot, you can see that the various combinations of the various sub-conditions of the conditional statement perform the true and false cases.
4. supports thumbnail display for smooth zooming and full-screen display.
5. can be automatically linked, traced, and converted to function call graphs.
List of functions:
For all functions of the whole program, according to various coverage, complexity of sorting, to help users to quickly locate all the function information, and through the function call graph, control flowchart, coverage visualization and cumulative coverage graph fast switch, so that users in view and solve practical problems to provide convenience.
security detection with threadingtest code visualization
In the process of security detection, it is usually necessary to detect the design errors of the code, and the callgraph provided by TT can reverse engineer The program logic, and through the inverse analysis result, the tester can get the visualized program call structure diagram, which is the graphic representation of the programming. The call logic of the functions expressed by callgraph and the programmed flow expressed by Controlflow can help developers and testers quickly detect the design errors of the program.
code simplicity, annotation clarity checking with threadingtest
TT internal support is based on the program's control flow characteristics of the standard format of the program, so the formatting process of the log is to code writing normative check.
Through the static analysis function of TT, we can detect the syntax that is not recommended, such as function recursive call and goto statement.
Code complexity Analysis and security checks using Threadingtest
Complex software is unstable and can not withstand unpredictable behavior. So, we try to make the software less complex. If the conditional use of an automated tool, you can control the software design or/and code through the tool, graphically reflect the control flow and data flow in the software structure, through the link number/call number, node points, nesting depth and other such structural relationship checks to obtain the complexity of the measurement, will be very good results.
TT In the process of analyzing the code, TT can give the result of the code complexity directly, the software module with the higher complexity is more prone to introduce the flaw, and it is more easy to introduce the security problem, the highly complex data structure is difficult to test thoroughly. It is possible to use the TT and other complexity assessment techniques to identify areas that need further improvement in order to improve the security of the software.
method Four: The System-level white box test technique is fully tested and redundant code Analysis
TT support the continuous testing technology in the functional testing process, that is, coverage consolidation, for multiple versions to achieve intelligent coverage consolidation, the previous function-level multi-version comparison, based on the coverage consolidation algorithm, accurate statistics of the current version of the cumulative coverage, thus greatly reducing the test engineer's repeated testing work.
With the TT system-level white box test function, we can through the functional testing process, the deployment of TT, and then all the test cases of the white box coverage, after many rounds of multiple use cases test, TT can clearly show the non-covered code, the code from a security point of view can be divided into two categories:
1. Some code is garbage code or does not reach the code, from a security point of view, the code is a potential security threat, need to be processed.
2. The software testing process is not sufficient, these non-executed code, there is likely to be a potential security vulnerability, the need to supplement use cases to test, to ensure the comprehensiveness and adequacy of testing.
currently Threadingtest Personal Edition is free to use, you can learn more on the technical website, website:www.teststars.cc, can also be downloaded in the Nebula Testing website: If you have any questions during the installation and trial process, You can join QQ Technology Group -" symbol execution - threading Test",QQ number is: "339834199"
How to use Threadingtest to improve software security detection efficiency (bottom)