0% found this document useful (0 votes)
4 views3 pages

Introduction To Software Testing

Software testing is crucial for identifying and fixing errors in programs, which can lead to failures and financial losses. Key terms include errors, faults, and failures, with 60% of bugs arising from specification and design issues. Effective testing methods and modern approaches can significantly enhance software reliability and reduce the number of defects before release.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views3 pages

Introduction To Software Testing

Software testing is crucial for identifying and fixing errors in programs, which can lead to failures and financial losses. Key terms include errors, faults, and failures, with 60% of bugs arising from specification and design issues. Effective testing methods and modern approaches can significantly enhance software reliability and reduce the number of defects before release.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

🔹 Introduction to Software Testing

• Software testing is essential as errors are inevitable even for experienced


programmers.
• Errors in a program can lead to program crashes, wrong results, or failures.
• Errors, Bugs, Defects, and Faults are related but have distinct meanings.

🔹 Key Terminologies in Testing

Term Definition
Error/Mistake Mistake made by the programmer during specification, design, or coding.
Fault/Defect/Bug Issue in the code caused by an error that may or may not lead to a failure.
Failure When the program does not behave as expected due to a fault.

• IEEE Standard 1044 (1993 & 2010) Definitions:


o Earlier, error, fault, defect, bug were used interchangeably.
o The revised 2010 version refined meanings to improve clarity.

🔹 Sources of Bugs

• 60% bugs arise from Specification & Design.


• 40% arise from Coding mistakes.
• Research shows even experienced programmers introduce ~50 bugs per 1000 lines
of code.
• After extensive testing, at least 1 bug per 1000 lines of code still remains.

🔹 Need for Software Testing

• Reduces failures and enhances reliability before release.


• Example: Ariane 5 Rocket Failure (2000)
o Self-destructed 37 seconds after launch due to an undetected software bug.
o Caused by reuse of old code without considering new processor capabilities.
o Resulted in $1 billion loss.

🔹 Methods to Reduce Bugs

1. Review Meetings – Identify faults in code, specification, and design.


2. Testing – Most widely used method for fault detection.
3. Formal Specification & Verification – Ensures correct system behavior.
4. Proper Development Process – Systematic software development reduces errors.

🔹 Software Testing Effort

• 50% of total software development effort is spent on testing.


• Most testers work in parallel to speed up testing.
• Testing includes:
o Unit Testing – Testing individual modules.
o Integration Testing – Testing combined modules.
o System Testing – Testing the full system.

🔹 Evolution of Software Testing

• Earlier Testing Methods:


o "Monkey Testing" – Input random values and observe the output.
o Simple, not systematic.
• Modern Testing Approaches:
o Use of structured techniques & automated tools.
o Testers must be skilled in testing frameworks & methodologies.

🔹 When to Stop Testing?

1. When the number of detected bugs decreases significantly.


2. Bug Seeding Technique:
o The project manager intentionally introduces some known bugs.
o If all seeded bugs are detected, it suggests most bugs have been found.
o Testing can be stopped.

🔹 Verification vs Validation

Term Definition
Verification Ensures software is being built correctly (phase-wise correctness).
Validation Ensures the right product is built as per user requirements.

• Verification Techniques: Reviews, Simulation, Unit Testing, Integration Testing.


• Validation Techniques: System Testing.

🔹 Testing in Software Development Models


• Waterfall Model:
o Testing happens at the end of the development phase.
o Less effective as bugs are detected late.
• Iterative & Agile Models:
o Testing is continuous throughout development.
o Bugs are detected and fixed earlier.

🔹 Key Takeaways

• Testing is critical to delivering reliable software.


• Proper methodologies and systematic processes can reduce bugs.
• Advanced tools & techniques have transformed testing into a highly skilled
profession.
• Companies prioritize testing, as faulty software leads to huge financial losses.

You might also like