Software development is not complete without software testing. It constitutes an inseparable part of software development process. Almost 50 percent of the total funds for development of a software are spend on software testing and this process consumes most of the time of the whole development process.
AUTOMATED TEST DATA GENERATION
Generation of test data for the given test and according to the testing criteria proves to be quite a difficult problem.
- The automated test data generation can relieve much stress of the software testers.
- Generation of test data that is used to make a program follow a given path is the most prominent and an important problem that arises while carrying out the path oriented testing.
- The obtained input is refined by various iterations and another input is obtained.
- The whole process predicates on this obtained input.
- The statements of the program relevant to the evaluation of each branch are executed in each iteration.
- Up on each iteration, a set of linear constraints is obtained which are then solved to obtain the increment values for the input data.
- The obtained increment values are added to the current input value to obtain the input data that is to be used for the next iteration.
RELAXATION METHODS
- The relaxation method provides knowledge about the amount by which the value of each input variable should be modified for the branches on the path in order to evaluate the desired result.
ITERATIVE RELAXATION METHODS
- These can be defined as techniques for solving system of equations.
- Relaxation methods are also iterative methods defined for numerical problems of mathematics.
- They are extensively used for solving system of equations which include the following types:
(A) Linear equations
Relaxation methods are used for solving the linear equations. Problems like that of linear least squares are usually addressed under this category.
(B) System of linear inequalities
Iterative or relaxation methods prove very effective in solving the system of linear inequalities which represent the problems similar to those that arise during linear programming.
(C) Non linear system of equations
These days, iterative methods or relaxation methods have been developed and prove a great help in solving system of equations which are non linear.
- Iterative relaxation methods have proven to be very effective and important methodology in providing solutions for linear system of equations.
- They prove to be effective system of equations that are used to solve partial differential equations based on the model of ellipse.
- These systems of equations are basically used to describe problems related to boundary conditions and values in which the value of the function in the solution is indicated or specified on the boundary of a specified domain.
- If the branch conditions on a path are linear in nature, the iterative relaxation technique either obtains a solution for such a path in just one iteration or it declares that the path is in-feasible.
- We can say that the existing approaches require an unacceptably large number of iterations for longer paths since they use only one branch predicate as well as input variable at a time.
- These methods also use back tracking.
- If the branch conditions on a path are non linear in nature, then it takes more than one iteration to get the desired input data.
- But, the set of constraints that has to be solved is linear in nature and can be solved using the method of gauss elimination.
These advantages make the technique of automated test data generation practical as well as suitable for automated testing.
Friday, February 10, 2012
Automated Test Data Generation Using an Iterative Relaxation Method ?
Posted by
Sunflower
at
2/10/2012 12:14:00 PM
0
comments
Labels: Approach, Automated, Automated Test Generation, Branches, Conditions, Data, Development, Equations, Iterations, Iterative, Iterative Relaxation, Methods, Outputs, Software testing, Test data, Testers
|
| Subscribe by Email |
|
Monday, August 2, 2010
Branch Coverage or Decision Coverage in White Box Testing
Code coverage analysis is the process of finding areas of a program not exercised by a set of test cases, creating additional test cases to increase coverage, and determining a quantitative measure of code coverage, which is an indirect measure of quality.
A Decision is a program point at which the control flow has two or more alternative routes. A decision coverage is the percentage if the decision outcomes that have been exercised by a test suite.
Branch coverage testing helps in validating of all the branches in the code and making sure that no branching leads to abnormal behavior of the application. It is a better practice as compared to statement coverage. It goes deeper into the code as compared to statement coverage.
It states whether the the boolean expressions are tested in control structures. It ensures for having adequate number of test cases for every program to ensure execution of every decision or branch at least once.
What are the advantages of branch coverage?
- To validate that all the branches in the code are reached.
- To ensure that no branches lead to any abnormality of the program’s operation.
- It eliminate problems that occur with statement coverage testing.
What are disadvantages of branch coverage?
- There may be other condition that can be used for decision making.
- This metric ignores branches within boolean expressions which occur due to short-circuit operators.
Posted by
Sunflower
at
8/02/2010 11:43:00 AM
0
comments
Labels: Advantages, Branch Coverage, Branches, Code Coverage, Coverage, Disadvantages, Percentage, program, Validation, White box testing
|
| Subscribe by Email |
|
Friday, July 30, 2010
High-level Best Practice Four(4) in Software Configuration Management
There are six general areas of SCM deployment, and some best practices within each of those areas. The first, second and third area and there practices are already discussed.
Change Propagation
Propagating file changes across branches needs to be managed. The practices involved with this work space are :
- Do not delay to propagate a change. When it’s feasible to propagate a change from one
branch to another (that is, if the change wouldn’t violate the target branch’s
policy), do it sooner rather than later.
- It is much easier to merge a change from a file that is close to the common
ancestor than it is to merge a change from a file that has diverged considerably.
This is because the change in the file that has diverged may be built upon
changes that are not being propagated, and those unwanted changes can
confound the merge process.
- Changes can be propagated by the owner of the target files, the person who make the original changes, or someone else.
Posted by
Sunflower
at
7/30/2010 08:23:00 PM
0
comments
Labels: Areas, Branches, Change, High-level, Practices, Process, Propagation, SCM, Software, Software configuration management
|
| Subscribe by Email |
|
Wednesday, July 28, 2010
High-level Best Practice Three(3) in Software Configuration Management
There are six general areas of SCM deployment, and some best practices within each of those areas. The first and second areas and there practices are already discussed.
Branching
In Software Configuration Management (SCM) systems, branching allows development to proceed simultaneously along more than one path while maintaining the relationships between the different paths. A branching strategy consists of the guidelines within an environment for the creation and application of codeline policies. There are different tools that support branching Creating a branching strategy consists of :
- identifying the categories of development that can be easily characterized,
- defining the differences and similarities between them,
- defining how they relate to each other, and
- expressing all of this information as codeline policies and branches.
High Level Practices associated with branching workspace are :
- Branch only when necessary.
- Don’t copy when you mean to branch.
- Branch on incompatible policy.
- To minimize the number of changes that need to be propagated from one branch to another, put off creating a branch as long as possible.
- Branch instead of freeze.
Posted by
Sunflower
at
7/28/2010 04:19:00 PM
0
comments
Labels: Branches, Branching, Deployment, Development, Practices, Process, SCM, Software, Software configuration management, Strategy
|
| Subscribe by Email |
|