Subscribe by Email


Showing posts with label Pair. Show all posts
Showing posts with label Pair. Show all posts

Friday, May 18, 2012

What is meant by pair programming?


With the advent of the agile software process development, so many agile software development methodologies also came in to the scene and one of them is the pair programming which has been discussed throughout this article. 

What is meant by Pair Programming?


- Pair programming is a commonly deployed agile software development process.
- It involves two software programmers or developers working together on a single work station. 
Out of the two programmers or developers one is called the driver and the other one is the observer. 
- The work of the driver is to type in the program code in to the compiler.
- The observer has to review the typed in code line by line for any discrepancy. 
- There is another quite familiar term for the observer which is the “navigator”. 
- At regular intervals of time, the two programmers or developers keep changing their roles. 
- While carrying out the review process, the observer also takes in to consideration the strategy that is being used for the work.
- Both the driver and the observer work for the improvement of the software system or application and try to identify all the potential problems that can take root in the future. 
- Most of the problems are addressed in the earlier stages of the development so that extra work burden is cropped up in the last and also to minimize the rewrite expenses.
- Such a methodology like pair programming helps the driver to concentrate only on the typing work.
- It does not focus up on each and every tactical aspect of the current task of the software system or the application under development. 
- Here we can say that the observer acts like a safety guide or net who tells the driver of the fault he makes while typing in the program code. 

Benefits of Pair Programming


Pair programming has got many benefits. A research was conducted regarding the benefits of the pair programming and it was found that:
- Following the pair programming, programs with shorter code length are produced. 
- These programs were found to possess better designs and lesser number of bugs as compared to the programs that are produced by individually working programmers. 
- Depending on the experience and skills of the programmers as well as the complexity of the task, the defects rates were found to get reduced surprising from range of 15 – 50 percent. 
- When two programmers work together, it is obvious that they will consider many design alternatives as compared to the programmers who work individually.
- This is so because the when two people think together, the scope of thinking widens and they arrive at simple and better working and maintainable designs, are able to catch defects early. 
- They are able to complete the programming work well within the stipulated period of time. 
- On the other hand the individually working programmer will take much longer time to complete the same task. 

Few drawbacks of Pair Programming


"An analysis conducted in the year of 2007 suggested that the pair programming is not wholly beneficial and effective since it identified many other factors that have large affects on the results of the programming tasks."
- It was observed that though the development time was reduced by the use of the pair programming and some marginal effects were induced, it required more developer effort! 
- Therefore if we see overall it tends to be more costly than the solo programming. 
- Though the coding of the programming took place at a faster pace but the time spent got doubled. - In some of the cases a drop in the productivity is observed while implementing the pair programming. 

Throughout the process of pair programming there is a knowledge flow between the two developers.


Monday, January 16, 2012

What are different concepts of Pair wise testing?

We all know that we can't test everything. This is particularly appropriate for testing multiple combinations of input parameters. To test all the possible combinations for these parameters would require millions of tests.

- Pair wise testing or all pairs testing is an effective and systematic way to reduce the number of tests.

- The process of integrating this testing technique into test practices can prove to be a boon in saving time and efforts.

- Pair wise testing is also known as all pairs testing.

- Pair wise testing is nothing but a combined form of software testing methodologies or techniques.

- In a typical pair wise testing, all the pairs of input parameters, which are basically software algorithms, are tested in various possible unique combinations.

If the test vectors are chosen carefully, this process can be carried out much faster instead of performing an exhaustive search of all combinations of all the involved parameters and by parallelizing the tests of input parameter pairs.

The number of tests is typically given by the following formula:
O(nm)

Where n is the number of possibilities of first input parameter with most choices and m is the number of possibilities for the second input parameter with the most choices.

Reason of pair wise testing
- The pair wise testing is based on a certain reason.
- Even a simplest or primitive bug or error can cause havocs to the program.
- The petty errors are caused unknowingly by an input parameter.
- Other bugs and errors are a result of interaction between the various pairs of parameters.
- All these kind of bugs and errors can be arrested with the help of pair wise testing.
- Bugs and errors involving the interactions between three or more parameters are progressively less common in occurrence, but at the same time they are progressively more expensive to be found out by carrying out the exhaustive testing, which has its limit as the exhaustive testing of all possible inputs.

Many testers and software developers consider the pairs wise testing of a software system or subsystem or an application as a reasonable and efficient cost-benefit compromise between higher-order testing methods or techniques that can be combined and used, and less exhaustive methods or techniques which fail to exercise all the possible pairs of input parameters.

Since it is not possible for any testing technique or methodology to find out all the bugs and errors, pairs wise testing is typically used together with other testing methods and software quality assurance techniques and methodologies such as:

- Unit testing
- Symbolic execution
- Code review and
- Fuzz testing

Advantages of Pair Wise testing
- The best advantage of pair wise testing is that pair wise test cases give over 90 percent of coverage.

- In a research the pair wise testing was compared with the random input testing and it was found that pair wise testing provided better coverage.

- The block coverage obtained by pair wise testing has always been found to be comparable with the block coverage achieved by the exhaustive testing by testing all the possible factor combinations.

- Pair wise testing is actually based up on the fact that most faults are caused by interactions mostly between two factors.

- Pair wise generated test suites are quite effective in covering all the possible combinations of two parameters and therefore are much smaller than exhaustive test suites and still very effective in discovering defects.

Necessary condition for pair wise testing: - For each pair of input parameters, all the combinations of valid values of these two parameters should be covered.

- To test a small number of input parameters can result in a combinatorial explosion of a large number of possible permutations.

- Pair wise testing is to reduce the combinations to a more small and manageable size and provide effective fault detection.


Saturday, July 30, 2011

Black Box Testing Technique - Orthogonal Array Testing (OATS)

Orthogonal array testing enables you to design test cases that provide maximum test coverage with reasonable number of test cases. This type of testing can be applied to problems which has relatively small input domain but too large to accommodate exhaustive testing. Orthogonal array testing is more suitable in finding errors associated with faulty logic within a software component.

Orthogonal arrays are two dimensional arrays of numbers which possess the interesting quality that by choosing any two columns in the array you receive an even distribution of all the pair-wise combinations of values in the array.

The benefits of orthogonal array testing includes:
- lower execution time.
- lower implementation time.
- code coverage is high.
- overall productivity increases.
- the analysis of results take less time.

Orthogonal array testing uses the following terminology:
- Runs are the number of rows in an array.
- Factors are the number of columns in an array.
- Levels are the maximum number of values that can be taken on by any single factor.

Orthogonal array testing (OAT) helps in optimizing testing by creating an optimized test suite, detects all kind of faults, guarantees the testing of pair wise combinations, less prone to errors, simpler to generate and is independent of platforms and domains.


Facebook activity