SOFTWARE TESTING TECHNIQUES INTRODUCTION

The importance of software testing and its implications with respect to software quality cannot be overemphasized.

The development of software systems involves a series of production activities where opportunities for injection of human fallibilities are enormous. Erros may begin to occur at the very inception of the process where the objectives... may be erroneously or imperfectly specified, as well as [in] later design and development stages . . . Because of human inability to perform and communicate with perfection, software development is accompanied by a quality assurance activity.

Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design, and code generation.

The increasing visibility of software as a system element and the attendant “costs” associated with a software failure are motivating forces for well-planned, thorough testing. It is not unusual for a software development organization to expend between 30 and 40 percent of total project effort on testing. In the extreme, testing of human-rated software (e.g., flight control, nuclear reactor monitoring) can cost three to five times as much as all other software engineering steps combined!

QUICK LOOK

What is it?

Once source code has been generated, software must be tested to uncover (and correct) as many errors as possible before delivery to your customer. Your goal is to design a series of test cases that have a high likelihood of finding errors-but how?

That’s where software testing techniques enter the picture. These techniques provide systematic guidance for designing tests that

1) exercise the internal logic of software components, and

(2) exercise the input and output domains of the program to uncover errors in program function, behavior, and performance.

Who does it?

During early stages of testing, a software engineer performs all tests. However, as the testing progresses, testing specialists may become involved.

Why is it important?

Reviews and other SQA activities can and do uncover errors, but they are not sufficient. Every time the program is executed, the customer tests it! Therefore, you have to execute the program before it gets to the customer with the specific intent of finding and removing all errors. In order to find the highest possible number of erros, tests must be conducted systematically and test cases must be designed using disciplined techniques.

What are the steps?

Software is tested from two different perspectives: (1) internal program logic is exercised using “white box” test case design techniques. Software requirements are exercised using “black box” test case design techniques .In both cases, the intent is to find the maximum number of errors with the minimum amount of effort and time.

What is the work product?

A set of test cases designed to exercise both internal logic and external requirements is designed and documented, expected restarts are defined, and actual results are recorded.

How do I ensure that I’ve done it right?

When you begin testing, change your point of view. Try hard to “break” the software! Design test cases in a disciplined fashion and review the test cases you do create for thoroughness.

RELATED POST


ERROR CHECK LIST FOR INSPECTIONS

WALK THROUGHS IN TESTING

TESTING FOR SPECIALIZED ENVIRONMENTS PART ONE

TESTING FOR SPECIALIZED ENVIRONMENTS PART TWO

VALIDATION TESTING

SYSTEM TESTING


DEBUGGING AND TESTING

DEFECT AMPLIFICATION AND REMOVAL

ITERATIVE SPIRAL MODEL

STANDARD WATER MODEL

CONFIGURATION MANAGEMENT


CONTROLLED TESTING ENVIRONMENT

RISK ANALYSIS PART ONE


RISK ANALYSIS PART TWO

BACK GROUND ISSUES

SOFTWARE REVIEWS PART ONE

SOFTWARE REVIEWS PART TWO

SOFTWARE RELIABILITY

SAFETY ASPECTS

MISTAKE PROOFING

SCRIPT ENVIRONMENT

V MODEL IN TESTING

No comments:

Post a Comment