Testing
Testing
INTRODUCTION
Testing is the process of testing software for defects. Process of software engineering is testing the software for correct behavior prior to release to end users. Large scale engineering projects follow a more rigorous methodology in order to maximize the number of defects that can be found. For small scale engineering efforts normal testing may be sufficient.
Naveen Jain (1137418147)
Goals of Testing
Detect faults Establish confidence in software Evaluate properties of software Reliability Performance Memory Usage Security Usability
Naveen Jain (1137418147)
Documentation Effectiveness
Enhances scalabilityImproves usability Lowers customer support costs Improves reliability Increases maintainability
Development Stages
Conceptualization and initial design: The writer makes decisions about the scope, target audience, degree of coverage, and general organization of the manual. Preparation: The manual is written, reviewed, rewritten, etc. The manual is in the preparation stage until its content is in final form. Production: The manual is laid out for publication. This might involve typeset ting or making revisions to make the manual look as good as possible when printed by a laser printer or a daisy wheel. Typefaces are chosen, page style (margins, etc.) is designed, final artwork is prepared, and so forth. Publication: The manual is printed or copied and bound, ready for circulation.
Lifecycle Of Testing
Stages of Testing
Testing in the Small Unit Testing Feature Testing Integration Testing
Unit Testing
Tests the smallest individually executable code units. Usually done by programmers. Test cases might be selected based on code, specification, intuition, etc. Tools: Test driver/harness Code coverage analyzer Automatic test case generator
Naveen Jain (1137418147)
Integration Testing
Tests interactions between two or more units or components. Usually done by programmers. Emphasizes interfaces.
Issue: In what order are units combined?
Stages of Testing
Testing in the Large System Testing End-to-End Testing Operations Readiness Testing Beta Testing Load Testing Stress Testing Performance Testing Reliability Testing Regression Testing
Naveen Jain (1137418147)
Stages Of Testing
System Testing
Test the functionality of the entire system. Usually done by professional testers.
Risk-based Testing
Risk is the expected loss attributable to the failures caused by faults remaining in the software. Risk is based on Failure likelihood or likelihood of occurrence. Failure consequence. So risk-based testing involves selecting test cases in order to minimize risk by making sure that the most likely inputs and highest consequence ones are selected.
Naveen Jain (1137418147)
Acceptance Testing
The end user runs the system in their environment to evaluate whether the system meets their criteria. The outcome determines whether the customer will accept system. This is often part of a contractual agreement.
Regression Testing
Test modified versions of a previously validated system. Usually done by testers. The goal is to assure that changes to the system have not introduced errors (caused the system to regress).
Types Of Testing
Manual Testing
Manual Testing is the process of manual testing software for defects. It requires a tester to play the role of an end user, and use most of all features of the application to ensure correct behavior. To ensure completeness of testing, the tester often follows a written test plan that leads them through a set of important test cases.
Automation Testing
Test execution: Run large numbers of test cases/suites without human intervention. Test generation: Produce test cases by processing the specification, code, or model. Test management: Log test cases & results; map tests to requirements & functionality; track test progress & completeness