You are on page 1of 21

Software Testing

Alejandro.Rojas - 160004043
Jhon.Salguero - 160004049
Introduction
Software testing consists of verifying the behavior of
a program dynamically through a finite group of test
cases, duly selected from the typically infinite scope
of executions, in relation to the expected behavior.

Doing these tests is the activity that has the objective


of evaluating and improving the quality of the
product, identifying defects and problems.
1. Software Testing Fundamentals

❖ Testing-Related Terminology
● Definitions of Testing and Related Terminology
● Faults vs. Failures
❖ Key Issues
• Test Selection Criteria.
• Testing Effectiveness.
• Testing for Defect Discovery.
• The Oracle Problem.
• Theoretical and Practical Limitations of.
Testing.
• The Problem of Infeasible Paths.
•  Testability.
❖ Relationship of Testing to Other Activities
● Testing vs. Static
● Testing vs. Correctness
● Testing vs. Debugging
● Testing vs. Program
2. Test Levels
❖ The Target of the Test
● Unit Testing

● Integration Testing

● System Testing

● Acceptance Testing
❖ Objectives of Testing
● Acceptance / Qualification Testing
● Installation Testin
● Alpha and Beta Testing
● Reliability Achievement and Evaluation
● Regression Testing
● Performance Testing
● Security Testing
● Stress Testing
● Back-to-Back Testing
● Recovery Testing
● Interface Testing
● Configuration Testing
● Usability and Human Computer Interaction
Testing
3. Test Techniques
❖ Based on the Software Engineer’s Intuition
and Experience
• Ad Hoc
• Exploratory Testing
❖ Input Domain-Based Techniques
● Equivalence Partitioning

● Pairwise Testing

● Boundary-Value Analysis

● Random Testing
❖ Code-Based Techniques
● Control Flow-Based Criteri

● Data Flow-Based Criteria

● Reference Models for Code-Based Testing


❖ Fault-Based Techniques
● Error Guessing
● Mutation Testing

❖ Usage-Based Techniques
● Operational Profile

● User Observation Heuristics


❖ Model-Based Testing Techniques
● Decision Tables

● Finite-State Machines

● Formal Specifications

● Workflow Models

❖ Techniques Based on the Nature of the


Application

❖ Selecting and Combining Techniques


● Combining Functional and Structural

● Deterministic vs. Random


4. Test-Related Measures
❖ Evaluation of the Program Under Test
● Program Measurements That Aid in

Planning and Designing Tests


● Fault Types, Classification, and Statistics

● Fault Density

● Life Test, Reliability Evaluation

● Reliability Growth Models


❖ Evaluation of the Tests Performed
● Coverage / Thoroughness Measures

● Fault Seeding

● Mutation Score

● Comparison and Relative Effectiveness of

Different Techniques
5. Test Process
❖ Practical Considerations
● Attitudes / Egoless Programming

● Test Guides

● Test Process Management

● Test Documentation and Work Products

● Internal vs. Independent Test Team

● Cost/Effort Estimation and Test Process

Measures
● Termination

● Test Reuse and Test Patterns


❖ Test Activities
● Planning

● Test-Case Generation

● Test Environment Development

● Execution

● Test Results Evaluation

● Problem Reporting / Test Log

● Defect Tracking
6. Software Testing Tools
❖ Testing Tool Support
● Selecting Tools

● Categories of Tools
References
[1]. Naik and P. Tripathy, Software Testing
and Quality Assurance: Theory and
Practice, Wiley-Spektrum, 2008.

[2]. Sommerville, Software Engineering, 9th


ed., Addison-Wesley, 2011.

[3]. https://prezi.com/iuagg7-v4nb0/swebok-v3/
QUESTIONS!
THANKS FOR YOUR
ATTENTION!

You might also like