The increasing complexity of large-scale real-world programs necessitates the automation of softwaretesting. As a basic problem in softwaretesting, the automation of path-wise test data generation is especially impo...
详细信息
The increasing complexity of large-scale real-world programs necessitates the automation of softwaretesting. As a basic problem in softwaretesting, the automation of path-wise test data generation is especially important, which is in essence a constraint optimization problem solved by search strategies. Therefore, the constraint processing efficiency of the selected search algorithm is a key factor. Aiming at the increase of search efficiency, a hybrid intelligent algorithm is proposed to efficiently search the solution space of potential test data by making full use of both global and local search methods. Branch and bound is adopted for global search, which gives definite results with relatively less cost. In the search procedure for each variable, hill climbing is adopted for local search, which is enhanced with the initial values selected heuristically based on the monotonicity analysis of branching conditions. They are highly integrated by an efficient ordering method and the backtracking operation. In order to facilitate the search methods, the solution space is represented as state space. Experimental results show that the proposed method outperformed some other methods used in test data generation. The heuristic initial value selection strategy improves the search efficiency greatly and makes the search basically backtrack-free. The results also demonstrate that the proposed method is applicable in engineering.
The article discusses model driven engineering techniques in computersoftware design, and the difficulties of testing automatic model transformations. A fault in one model system can propagate into another during thi...
详细信息
The article discusses model driven engineering techniques in computersoftware design, and the difficulties of testing automatic model transformations. A fault in one model system can propagate into another during this process, but the changes induced by the transformation often make it difficult to systematically isolate the source of the problem. An example is provided which involves flattening hierarchies and meta-models. The difficulties which arise from the translation of complex data between heterogeneous computer languages is discussed. Potential solutions to some of these problems are also presented, involving the construction of oracles, meta-heuristics, and the use of white-box testing.
LESLIE LAMPORT, KNOWN for his seminal work in distributed systems, famously said, "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unus...
详细信息
LESLIE LAMPORT, KNOWN for his seminal work in distributed systems, famously said, "A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." Given this bleak outlook and the large set of possible failures, how do you even begin to verify and validate the distributed systems you build are doing the right thing? Distributed systems are difficult to build and test for two main reasons: partial failure and asynchrony. Asynchrony is the nondeterminism of ordering and timing within a system;essentially, there is no now.(10) Partial failure is the idea components can fail along
This paper considers various aspects of static analysis of C# programs in order to detect the maximum number of software bugs in an acceptable time. A complete cycle of software static analysis is described with the m...
详细信息
This paper considers various aspects of static analysis of C# programs in order to detect the maximum number of software bugs in an acceptable time. A complete cycle of software static analysis is described with the main focus being placed on the specifics of the C# language. Some methods are discussed that take into account popular features of C# at all levels of analysis: call graph and control flow graph construction, dataflow analysis, as well as context- and path-sensitive interprocedural analysis. A symbolic execution method is proposed, which is based on the works devoted to the Bounded Model Checking (BMC) and the Saturn software Analysis Project. A memory model is described that enables an accurate intraprocedural analysis and allows one to create compact representations of error conditions associated with functions, which are essential for interprocedural analysis. A special attention is paid to the optimizations that occur during path-sensitive analysis of error conditions. The conditions need to be optimized in terms of size, because path-sensitive interprocedural analysis requires saving a large number of conditions for each analyzed function. The conditions are resolved using advanced SMT solvers (such as the Microsoft Z3 Prover). This paper also considers various approaches to modeling the behavior of library functions: based on a summary containing a set of properties required for analysis, or based on simplified implementations in C#. All the discussed solutions are implemented in the SharpChecker static analysis tool and are tested on a number of open-source projects from 1.5 thousand to 1.35 million lines of code.
The article discusses automated test methods for finding bugs in computer programs which negatively affect usability. Several ways in which automated tests can help identify problems in web-based applications are desc...
详细信息
The article discusses automated test methods for finding bugs in computer programs which negatively affect usability. Several ways in which automated tests can help identify problems in web-based applications are described. Automated tests can provide information about the software as it is being developed, helping to quickly identify potential problems. Used as an adjunct to traditional human usability testing, it can offer software developers fast and consistent feedback. Examples of automated testing methods are described.
The article, the second of a series which began in the September 2010 issue of the journal, analyzes principles of software design. It focuses on high-performance software, and heuristics which can help identify metho...
详细信息
The article, the second of a series which began in the September 2010 issue of the journal, analyzes principles of software design. It focuses on high-performance software, and heuristics which can help identify methods of improving performance. Specific factors discussed include risk minimization, efficiency of execution, and queuing and coherency delays caused by increased system loads. The concept of a knee is explained, as a section of a curve where response times and throughput are optimally balanced. The pernicious aspects of surrogate measures and the benefits of performance instrumentation are also discussed.
Three Logic-Analyzer techniques combine stimulus and real-time capture forcircuit validation and debugging. If you are performing validation tests or debugging circuits, youcan save time by using three logic-analyzer ...
详细信息
Three Logic-Analyzer techniques combine stimulus and real-time capture forcircuit validation and debugging. If you are performing validation tests or debugging circuits, youcan save time by using three logic-analyzer techniques that combine stimulus and real-time tracecapture: simulating the input to a circuit and capturing traces with the logic analyzer to validatethe correct response to a given stimulus; using the logic analyzer to capture traffic and quicklyconvert the real-time trace into a stimulus for a pattern generator; and introducing known inputerrors, using the pattern generator, to test the circuits' reaction to inputs that are out ofspecification.
暂无评论