Dynamic testing is also called dynamic analysis. It has always been a part of software testing and is basically used to explain the dynamic behavior of a software application or a program.
- Dynamic testing can now be defined as the testing the response or reaction (physical in nature) of the system to the dynamic variables ( the variables which keep changing with time and are not constant) that have been used in the program.
- To carry out a dynamic test for any program, one has to compile the software, run it and work with it.
- Working with the software involves inputting data values to the variables.
- It also involves checking the output if whether or not it is up to the expectations of the programmer.
- The actual program output is checked against the desired program output. Input and output is checked for validation of the software.
Many methodologies have been developed for dynamic testing. Few have been listed below:
- Unit tests
- System tests
- Integration tests and
- Acceptance test
Idea of dynamic testing is typically based on testing the software during execution of the program and also during its compilation.
- Dynamic testing is totally opposite of static testing.
- The software application must be actually compiled and executed and tested as the dynamic testing is a part of validation process, which is again a part of verification and validation process.
- There are many methodologies that can be used for testing a program dynamically. If you are not comfortable with one technique, you can for the other one.
- Dynamic testing includes functional test techniques which are commonly known as black box techniques.
- They help in designing test cases which are based on the functions of the software application under test and there is no need to consider the details of the software structure.
- These techniques are used to check for input and expected output.
White box testing techniques or structural test techniques are used to check the structural design of the software application for flaws and mistakes.
Static testing can be compared in great contrast to the dynamic testing.
- Static testing can be defined as a form of software testing in which the software is not actually used.
- It is not as detailed as the dynamic testing and it is carried out to determine the sanity of the code, document or algorithm.
- It can be primarily stated as the syntax checking of the program code and manual review of the document or the source code to find the errors and bugs.
- Static testing usually used by the software developers who wrote the code in isolation and techniques such as inspections, reviews and walk through are used.
- If we look at the static testing from the point of black box testing, it involves review of specifications and requirements of the software system or application.
- Static testing forms the verification part of verification and validation process.
- Like dynamic testing, static testing can also be automated.
- Static testing involves programs to be analyzed by a compiler or an interpreter
that’s asserts the syntactic validity of the programs.
- Bugs and errors discovered during the static development are easier and less expensive to fix than later in the development cycle.
- The people who are involved in static testing are basically software developers and testers.
- During static testing you need to have a check list to ensure whether the software system or the application is keeping with the standards of the organization or not?
- These standards are basically for coding, deployment and integrating.
Monday, January 9, 2012
What is the difference between the dynamic testing and static testing?
Posted by
Sunflower
at
1/09/2012 02:12:00 PM
0
comments
Labels: Analysis, Application, Black box testing, Characteristics, Data, Differences, Dynamic, Dynamic testing, Errors, Output, program, Static, Static Testing, Tests, Values, Variables, White box testing
|
| Subscribe by Email |
|
Friday, November 18, 2011
What is static testing and what are its components ?
What is static testing? Static testing can be defined as a kind of software testing methodology in which the software is tested without actually being compiled and executed. Therefore, static testing is just the opposite of dynamic testing where the software is compiled and executed and then tested. Static testing does not goes into the detail of the software application but, checks for the correctness of the program or source code, document and algorithm. Basically syntax of the program is checked in static testing.
It is done manually by a team of professionals and qualified individuals in the concerned field. Major errors can be found out using this methodology. The writer of code himself/ herself can review the source code to check out for errors. There are many techniques followed for static testing. But the most commonly used ones are the following:
1. Code inspections
2. Code walk through and
3. Code reviews
From the idea of black box testing techniques, we can say that the review of specifications and requirements forms an important part of static testing. This is also done manually, though this is a tough task. Static testing forms the verification part of verification and validation. Nowadays there are some methodologies available by which static testing can be made automatic. This an be done by passing the software code through a static testing test suite that consists of a compiler or an interpreter which checks the software code for verification and syntax errors. Errors found during static testing are much easier to correct than the ones that will be found later. Professionals handling static testing are typically testers and application developers. Static testing is only concerned with verification activities.
While carrying out static testing for software applications certain standards are followed which are namely, standards for integration, deployment and coding. Usually static testing nowadays is done by some automated program or a tool. The analysis done manually by professionals is commonly known as program comprehension or sometimes it is called program understanding. The quality of analysis varies from professional to professional. Some analyze software part by part while some take the whole software code into consideration. Nowadays reverse engineering and software metrics are considered to be methodologies of static testing. Static testing is popular when it comes to the field of verification of the software code, computer systems needing high safety and location of potentially harming code.
Static testing also involves some formal methods for analysis. In formal methods, the analysis result for a software code is usually obtained by carrying out some rigorous mathematical calculations and methods. Following are some mathematical methodologies that are used under formal static testing:
1. Axiomatic semantics
2. Denotational semantics
3. Operational semantics and
4. Abstract interpretation: this technique is based on the idea that every statement executes based on its mathematical properties and values of its declaration. Out of all this technique can be regarded as the best technique.
There are some other techniques apart from mathematical techniques that can be used for formal static analysis. They are called implementation techniques and have been listed below:
1. Model checking: this technique takes into consideration the finite state of the system. If the system is not in finite state, it is made finite by using the technique of abstraction.
2. Use of assertions
No matter how many methodologies we may use for static testing, there will always be some uncertainty of the execution of the program and flaws. It cannot be said that after static analysis the program will execute 100 percent properly.
Some related books:
Posted by
Ashish Agarwal
at
11/18/2011 08:34:00 PM
0
comments
Labels: Product Development, Software Product Development, Static Testing, Testing, Testing techniques
|
| Subscribe by Email |
|
Tuesday, August 10, 2010
Static Testing and static code analyzers
Static Testing is also called verification. It is also called dry run testing. In this the software is not actually used. It mainly checks the sanity of the code, algorithm or the document. This type of testing can be used by the developer who wrote the code, in isolation. Code reviews, inspections and walkthroughs are also used.
Static Code Analysis is a method of detecting errors in program code based on the programmer's reviewing the code marked by the analyzer in those places where potential errors may occur.
The main advantage of static code analyzers use lies in the possibility of considerable cost saving of defects elimination in a program. The earlier an error is determined, the lower is the cost of its correction. Static analysis tools allow to detect a large number of errors at the construction stage.
Formal methods is the term applied to the analysis of software (and hardware) whose results are obtained purely through the use of rigorous mathematical methods.
Implementation techniques of formal static analysis include:
- Model checking.
- Data-flow analysis.
- Abstract interpretation models.
- Use of assertions in program code.
Posted by
Sunflower
at
8/10/2010 12:58:00 PM
0
comments
Labels: Advantages, Analyzer, Code, Errors, Formal methods, Software, Software testing, Static Analysis, Static Code analyzer, Static Testing, Verification
|
| Subscribe by Email |
|