Guru's Software Testing

If software engineering is really an engineering discipline, it is the intelligent application of proven principles, techniques, languages, and tools to the cost-effective creation and maintenance of software that satisfies users' needs.
1. What is Software

"Software is code, programs, documentation and data relating to the operation of a computer based solution or to utilize capabilities of hardware."

2. What is Software Testing

"Software testing is an activity (phase of Software Development Life Cycle) that aims to check or evaluate capability of a system or program or software and determining that it meets its required results."
2.1 Testing Objectives

A number of rules that act as testing objectives are:
  • Testing is a process of executing a program with the aim of checking capability of software for producing right results.
  • Testing is a process of executing a program with the aim of finding errors.
  • A good test case will have a good chance of finding an undiscovered error.
  • A successful test case uncovers a new error.
2.2 Test Case Design

The design of software testing can be a challenging process. However software engineers often see testing as an after thought, producing test cases that feel right but have little assurance that they are complete. The objective of testing is to have the highest likelihood of finding the most errors with a minimum amount of timing and effort. A large number of test case design methods have been developed that offer the developer with a systematic approach to testing. Methods offer an approach that can ensure the completeness of tests and offer the highest likelihood for uncovering errors in software

3. Software Testing Techniques

The importance of software testing and its impact on software cannot be underestimated. Software testing is a fundamental component of software quality assurance and represents a review of specification, design and coding. The greater visibility of software systems and the cost associated with software failure are motivating factors for planning, through testing. It is not uncommon for a software organization to spent 40% of its effort on testing.

3.1 Static Testing Versus Dynamic Testing

Static testing is a form of software testing where the software isn’t actually used.
  • It is generally not detailed testing, but checks mainly for the sanity of the code, algorithm, or document. It is primarily syntax checking of the code or and manually reading of the code or document to find errors
  • This type of testing can be used by the developer who wrote the code, in isolation. Code reviews, inspections and walkthroughs are also used.
  • This is the verification portion of Verification and Validation
  • These are verification activities. Code Reviews, inspection and walkthroughs are few of the static testing methodologies
In Dynamic testing the software must actually be compiled and run.
  • Dynamic analysis refers to the examination of the physical response from the system to variables that are not constant and change with time.
  • Some of dynamic testing methodologies include unit testing, integration testing, system testing and acceptance testing.
  • Dynamic testing is the validation portion of Verification and Validation.
  • These are the Validation activities. Unit Tests, Integration Tests, System Tests and Acceptance Tests are few of the Dynamic Testing methodologies.

Also Available

Server Virtualization – World’s Hottest Topic – A Good Research Work