Introduction to Software Testing: A Practical Guide to Testing, Design, Automation, and Execution

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Get started and hit the ground running in the world of software testing. This simple and practical guide teaches you the fundamentals of software testing, with no prior experience required. You will start by learning functional and non-functional software testing. Then you will gain an understanding of the primary responsibilities of a tester in the Software Development Life Cycle and how to plan and execute testing activities. You will also learn how testing applies to an agile environment, what challenges you might face in your day-to-day life as a tester, and how to overcome them. You will learn the most commonly used test design techniques, with ample examples and exercises to practice yourself. This book takes you on a journey around the software testing world, covering the basic principles and techniques and showing examples of how to apply them. Software testing is a safeguard of the quality of a software product, and a tester is responsible for reporting on the quality status. Keep in mind that the quality of the product is not the sole responsibility of a tester; rather, it’s a collective effort from every individual in the organization. A chain is only as strong as its weakest link. Different types of testing are applicable to every phase of the software development life cycle; of course, the priorities and the risks are not the same in all the products. Testing is all about identifying those risks and setting up a mitigation plan by executing the necessary tests and analyzing the results. In this book, I will demonstrate some of the most important software testing types and techniques that exist and how to apply them. You will find out what testing activities take place during every phase of software development, how to plan the testing activities, how to design the test cases, how to execute them, and how to report defects and the status of your activities. It is meant to be easy to understand for everyone, even with only the slightest technical background or involvement in a product. I hope you will enjoy the process and pick up a thing or two! By the end of this book, you will understand the software testing ecosystem, from its types, techniques, and tools, to test planning, execution, and reporting. What You Will Learn: Master the fundamentals of Software Testing Gain an understanding of different software testing types Plan and execute testing activities Apply test design techniques to concrete examples Who This Book Is For: Software testers, developers, project managers, and other stakeholders involved in software testing.

Author(s): Panagiotis Leloudas
Publisher: Apress
Year: 2023

Language: English
Pages: 219

Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: The Importance of Software Testing
Summary
Chapter 2: Software Testing Types and Techniques
Functional Testing
Unit Testing
Integration Testing
System Testing
User Acceptance Testing
Nonfunctional Testing
Performance Testing
Security Testing
Usability Testing
Compatibility Testing
Scalability Testing
Reliability Testing
Availability Testing
Installability Testing
Maintainability Testing
Compliance Testing
Static Testing
Code Reviews
Requirement Reviews
Design Reviews
Walk-Throughs
Inspections
Summary
Chapter 3: Software Development Life Cycle
Planning Phase
Requirements Gathering Phase
Design Phase
Development Phase
Deployment Phase
Maintenance Phase
The Role of Testing in the SDLC
Summary
Chapter 4: Test Planning
Defining Testing Objectives
Determining the Scope of Testing
Selecting the Testing Approach
Identifying Testing Resources
Developing the Test Schedule
Defining Test Cases
Identifying Test Data
Defect Management Process
Stop Testing Criteria
Reviewing and Approving the Test Plan
Benefits of Test Planning
Test Plan Document
Test Planning Tools and Techniques
Summary
Chapter 5: Test Design Techniques
Black-Box Testing
Equivalence Partitioning
User Login Page
Credit Card Payment
Exercise
Boundary Value Analysis
Age Validation
File Size Validation
Exercise
Decision Table Testing
E-shop Discounts
Transportation Price
Exercise
State Transition Testing
Traffic Light System
State Transition Table
State Transition Diagram
Shopping Cart
State Transition Table
State Transition Diagram
Exercise
Use-Case Testing
Exercise
Pairwise Testing
Exercise
Error Guessing
Registration Form
E-commerce Website
Exercise
Exploratory Testing
Mobile App
Online Marketplace
Exercise
Random Testing
Web Application
Game Testing
Exercise
Ad Hoc Testing
Example of Ad Hoc Testing
Exercise
White-Box Testing
Statement Coverage
Exercise
Branch Coverage
Exercise
Path Coverage
Exercise
Condition Coverage
Exercise
Decision Coverage
Exercise
Multiple Condition Coverage
Exercise
Modified Condition/Decision Coverage
Loop Testing
Data Flow Testing
Static Testing
Summary
Chapter 6: Test Execution
Getting Started
Test Execution Process
Test Environment Setup
Defect Reporting and Retesting
Regression Testing
Test Case Status Reporting
Test Case Completion
Techniques and Tools Used in Test Execution
Quality Metrics
Defect Density
Test Coverage
Code Complexity
Code Maintainability
Fault Slip Through
Coding Standards
Code Duplication
Dead Code
Lines of Code
Fan-Out
Compiler Warnings
Summary
Chapter 7: Test Automation
Benefits of Test Automation
Record and Playback Tools
Scripting Tools
Hybrid Tools
Frameworks
Automated Testing Tools
Automated Test Scripts
Summary
Chapter 8: Testing in Agile Environment
Agile Testing Principles
Agile Testing Quadrants
Test-Driven Development
Behavior-Driven Development
Acceptance Test-Driven Development
Continuous Integration and  Continuous Delivery
Test Automation in Agile
Agile Testing Best Practices
Summary
Chapter 9: Challenges and Solutions in Software Testing
Lack of Clear Requirements
Impact of Lack of Clear Requirements on Testing
Mitigating the Impact of Lack of Clear Requirements
Time Constraints
Impact of Time Constraints on Software Testing
Strategies for Managing Time Constraints in Testing
Lack of Skilled Resources
Impact of Lack of Skilled Resources on Software Testing
Strategies for Managing Lack of Skilled Resources in Testing
Automation Challenges
Common Automation Challenges
Strategies for Addressing Automation Challenges
Communication and Collaboration
Change Management
Testing Across Platforms
Future of Software Testing
Risk-Based Testing
Summary
Afterword
Index
Capture.PNG