Software Testing Overview Software Testing Bug Terms for
Software Testing
Overview ØSoftware Testing ØBug ØTerms for software failure ØTypes of Bugs ØOccurrence of a Bug ØCost of Bugs
Software Testing is the process of evaluating a system or its component(s) with the intent to find that whether it satisfies the specified requirements or not. This activity results in the actual, expected and difference between their results
Software testing is an integral part of the software development life cycle which identifies the defects or the errors in the application
Objectives ØIt ensures if the solutions meet the business requirements ØIt catches the bugs, errors and defects. ØIt ensures if the system is stable and ready for use. ØIt identifies the areas of weakness in an application or product. ØIt establishes the degree of quality. ØIt determines user acceptability
Scope – examine components like Ø Business requirements. Ø Design requirements Ø Programmer’s code. Ø Hardware configuration. Ø Systems administration standards and constraints
The range of testing could also involve testing with respect to industry standards and professional best practices. Testing thus provides an opportunity to validate and verify all aspects of software engineering.
Verification / Validation Verification Ensure that the software system meets all the functionality. Validation Ensure that functionalities meet the intended behavior. Validation occurs after Verification takes place first and verification and mainly involves includes the checking for the checking of the overall documentation, code etc. product. Done by developers. Done by Testers. It is an objective process and no It is a subjective process and subjective decision should be involves subjective decisions on needed to verify the Software. how well the Software works.
Verification & Validation Verification - typically involves reviews and meeting to evaluate documents, plans, code, requirements, and specifications. This can be done with checklists, issues lists, walkthroughs, and inspection meeting. Validation - typically involves actual testing and takes place after verifications are completed. Validation and Verification process continue in a cycle till the software becomes defects free.
Who does Testing? Ø Software Tester Ø Software Developer Ø Project Lead/Manager Ø End User ØSoftware Quality Assurance Engineer ØSoftware Quality Assurance Analyst
When to Start Testing? An early start to testing reduces ØCost Øtime to rework Øerror free software depends on the development model
Waterfall Model
Incremental Model
Testing can be started from the Requirements Gathering phase and lasts till the deployment of the software.
When to Stop Testing? Unlike when to start testing it is difficult to determine when to stop testing. Ø Testing Deadlines. Ø Completion of test case execution. Ø Completion of Functional and code coverage to a certain point. Ø Bug rate falls below a certain level and no high priority bugs are identified. Ø Management decision.
Bug Ø A bug, also known as a software bug Ø it is an error in a software program that may produce incorrect, undesired result or prevent the program from working correctly. ØIn software testing, a bug not only means an error, but anything that affects the quality of the software program
Terms for Software Failures Error, Fault and Failure: Humans make errors in their thoughts, actions, and in the products that might result from their actions. Errors (Mistake) occur in the process of writing a program.
Terms for Software Failures Error, Fault and Failure: A programmer makes an error (mistake), which results in a defect (fault, bug) in the software source code. If this defect is executed, in certain situations the system will produce wrong results, causing a failure.
Terms for Software Failures Errors ØIncorrect usage of software by users ØBad architecture and design by architects and designers ØBad programming by developers ØInadequate testing by testers
Terms for Software Failures Fault A fault is the manifestation of one or more errors Ø An incorrect statement Ø�Wrong data type Ø Wrong mathematical formula in design document Ø Missing functionality in the system
Terms for Software Failures Failure A failure occurs when a faulty piece of code is executed leading to incorrect state that propagates to the program’s output.
Types of Bugs Software bugs, which occur irrespective of the size of the program, are generally encountered when different groups of developers work to develop a single program.
Types of Bugs 1. Bugs due to Conceptual Error: Ø Incorrect usage of syntax in the program Ø Misspelled keywords Ø Using wrong or improper design or concept.
Types of Bugs 2. Math Bugs Ø Divide by zero error Ø Overflow or Underflow Ø lack of precision in arithmetic values due to incorrect rounding or Ø Truncation of decimal values.
Types of Bugs 3. Logical Bugs Ø Infinite loops Ø Infinite recursion Ø Applying wrong logic Ø Incorrect usage of jump or break conditions.
Types of Bugs 4. Resource Bugs Ø Stack or buffer overflow Ø Access violations Ø Using variables initialized. that are not
Types of Bugs 5. Co-programming Bugs Ø Concurrency errors Ø Deadlock Ø Race condition
Types of Bugs 6. Team working Bugs Ø Out of date comments Ø Non-matching of documentation or files Ø Linking the program to incorrect files.
Occurrence of a Bug Human Factor: Ø Ø incorrect usage of logic or syntax improper linking of files Communication Failure Unrealistic Development Timeframe Ø Ø Ø Tight schedules Limited or insufficient resources Unrealistic project deadlines Poor Design Logic Poor Coding Practices Lack of Skilled Testing Change Requests
- Slides: 29