Paper Suitable Somewhat not suitable 2 – Coding Knowledge

Paper Summary

Title

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

An Innovative Approach to Investigate Various Software Testing Techniques and Strategies

Authors

Syed Roohullah Jan, Syed Tauhid Ullah Shah, Zia Ullah Johar, Yasin Shah, Fazlullah Khan

Publication Details

International Journal of Scientific Research in Science, Engineering, and Technology; Vol. 2, Issue 2, March-April 2016

Citations: 44

Introduction

The paper records a comparative study of the basic strategies and testing levels applied in software testing during the Software Development Life Cycle (SDLC) of a software product. SR Jan et al first introduce the reader to the definition of software testing, as a process of quality evaluation of a developed software and the means to accomplishing those quality standards. Five main objectives have been defined for software testing:

1.      Detection of all errors, faults, lacunae and redundancies in the system, its code, working and structure

2.      Prevention of failures by reducing the errors being exposed upon testing

3.      Quality Improvement  by examining the client’s standards and requirements and correcting and updating the software in accordance

4.      Validation, i.e. ensuring that the correct product is being developed

5.      Verification, i.e. ensuring that the product development is correct

Strategies discussed

The authors enlist three major strategies of software testing under the “box approach to software products”. The box approach envisions the entire product as an assembled box of modules that perform various functions independently and as a group. The strategies are as follows.

Black Box Strategy

Here the tester need not have any knowledge of programming languages or the code structure of the software. The only information necessary is the type of input(s) taken by the system and the desired output(s) of the module(s). This strategy ensures the acceptability of the user input(s) and the correctness of the output(s).

White box Strategy

Hereextensive knowledge of the internal code design and structure is necessary, hence the testing is done by the developers. It’s also called “Structural/Code-based Testing”. In-depth testing of the entire system is done to detect fine aberrations and coding mistakes.

Grey Box Strategy

This strategy combines the benefits of both black-box and white-box approaches; the tester has a fair idea of the coding structure while using the input-output strategy of testing. This testing approach is designed to have the independence of platforms and languages.

Comparative Study

Sr. no.

Black Box Approach

White Box Approach

Grey Box Approach

1 – Algorithm testing

Not suitable

Suitable

Somewhat not suitable

2 – Coding Knowledge

Not necessary

Necessary

Partially necessary

3 – Granularity

Low

High

Medium

4 – Synonyms

 Closed-Box Testing
Data-driven Testing

Clear-Box Testing
Structural Testing
Code-based Testing

Translucent Testing

5 – Testing personnel

Testers, End users

Developers and/or Skilled Testers

Developers, Testers, End-users

6 – Time consumption

Low;
Least exhaustive

High;
Most exhaustive

Medium; somewhat exhaustive

7 – Techniques involved

1.       Equivalence Partitioning
2.       Boundary Value Analysis
3.       Orthogonal Array Testing
4.       Fuzzing or Fuzz Testing
5.       Graph-based Testing
6.       All-pairs Testing
7.       State Transition Diagrams (State Graphs)

1.       Static Testing
o   Desk Checking
o   Code Walkthrough
o   Formal Inspection
2.       Structural Testing
o   Control Flow Testing
o   Basic Path Testing
o   Data Flow Testing
o   Loop Testing

1.       Orthogonal Array Testing
2.       Matrix Testing
3.       Regression Testing
4.       Pattern Testing

8 – Advantages

· Fewer test cases needed
·       Independence of tester from programmer
·       High efficiency for large chunks of code
·       No need to access code

·       Most suitable for optimizing the code
·       Testing of every loop and possible path
·       Removal of redundant code and elimination of hidden errors
·       Checking of validity of data structures

·       Highly efficient test suite design
·       Benefits of both black-box and white-box approaches

9 – Disadvantages

·       Not suitable to cover all code problems
·       Chance of repetition of test cases, increasing testing time
·       Difficulty in test suite design due to possible lack of requirement clarity
·       Neglect of back-end sections

·       Expensive as a fully skilled expert is necessary
·       Omission of certain cases is possible
·       Tedious and time-consuming process of examining every nook and cranny of the system

·       Ignorance of several possible flow paths
·       Chance of redundant test cases
·       Limited access to source code, allowing only restricted code change and error elimination

 

Levels of Testing

The paper documents three clear levels of software testing as follows:

Unit Level

The smallest functional units of the software (modules, functions, etc.) are examined at this level and tested for internal bugs individually, by the application developers.

Integration Testing

Here the separate modules are combined and tested in groups. Unit testing eliminates the basic level flaws while integration testing removes errors as well as builds up the structure of the system.

System Testing

Here the complete system is tested as a whole in a black-box manner, to determine the proper execution of the entire system and the correct system integration

Comparative Study

Sr. No.
 

Unit Testing

Integration Testing

System Testing

1 – Occurrence (stage)

At any point in the testing process

Only after complete Unit Testing

Only after successful Integration Testing

2 – What is checked

Functioning of individual modules

Grouped/Integrated modules

Overall system (all modules together)

3 – Similarity to box approach

Resembles white-box testing

Resembles grey-box testing

Resembles black-box testing

4 – Code Visibility Check

Yes

Partly

No

5 – Specification Used in testing

Module specification

Interface specification

User requirement specification

6 – Techniques

1.       Module interface test
2.       Local data structures
3.       Boundary conditions
4.       Independent paths
5.       Error handling paths

1.       Top-Down integration
2.       Bottom-Up integration
3.       Big-bang integration

1.       Recovery Testing
2.       Security Testing
3.       Graphical User Interface Testing
4.       Compatibility Testing

7 – Advantages

·       Inexpensive
·       High structural efficiency
·       Easy to test single modules instead of groups or whole
·       Error removal is inexpensive
·       Simple testing tools

·       Testing lessened as modules are already unit-tested
·       Only grouped modules are tested for interface flaws

·       Whole system testing
·       Ensuring customer satisfaction and user criteria fulfillment
·       Testing conditions are close to deployment environment
·       Proper validation and verification of software as per SRS document.

8 – Disadvantages

·       Difficulty in detecting all bugs
·       Time-consuming
·       Higher level flaws possible to be omitted
·       Difficulty in writing good test suites
·       Simple mistakes can affect entire system upwards

·       Difficulty in debugging many errors
·       Delayed delivery of application to end user
·       Several disposable codes used in debugging (code length increased)

·       Time-consuming
·       No knowledge of internal code structure
·       No knowledge of system integration to tester(s)

 

Conclusion

The paper has successfully reviewed the basic strategies, techniques, and levels of testing followed in the software testing process of software development.

x

Hi!
I'm Dianna!

Would you like to get a custom essay? How about receiving a customized one?

Check it out