Software Testing Discussion
Discussion Points
- Part I. When do we start testing and what are the different types of testing that can be performed? A web search for relevant articles and information could be employed to assist you in your response.
- Part II. Design Peer Review – From your Design Specification, please post an image of one or more of the following: architecture diagram, application class diagram, detailed class diagram, test cases and scenario, persistent class diagram with SQL statements, or sample Java statements in the Design Peer Review with a brief discussion of its contents, how it meets the requirements in the IT Online Requirement specification, and any features you like or issues you encountered. An image is easier for everyone to access.
-
-
When do we start testing and what are the different types of testing that can be performed?,
-
From your Design Specification please post an image of one or more of the following: architecture diagram application class diagram detailed class diagram test cases and scenario persistent class diagram with SQL statements or sample Java statements in the Design Peer Review with a brief discussion of its contents, how it meets the requirements in the IT Online Requirement specification and any features you like or issues you encountered.
Comprehensive Response
Part I: When to Start Testing & Types of Testing
When Testing Should Begin (“Shift-Left” Approach)
Testing should begin as early as possible in the software development lifecycle — ideally even before any code is written. This concept is known as shift-left testing, which means moving testing activities “left” on the project timeline. By integrating testing into the early phases (like during requirements and design), teams can identify defects early, reduce cost, and improve quality. Wikipedia+1
Early testing also includes writing acceptance test criteria during the requirements/design phase. For example, in development models like the V-Model, test planning and test specification happen in parallel with design. درجات
During coding, unit tests by developers (often automated) validate individual components. Then, as modules are combined, integration testing ensures that the different parts interact correctly. geeksforgeeks.org+2Atlassian+2
Types of Testing
There are many types of software testing, each serving a specific purpose:
-
Unit Testing
-
Tests individual functions, methods, or classes in isolation. geeksforgeeks.org+1
-
Generally performed by developers, often automated (e.g., JUnit). Atlassian
-
-
Integration Testing
-
Tests how multiple units or modules work together. geeksforgeeks.org
-
Helps catch issues in data flow, APIs, or module interactions. Wikipedia+1
-
-
System Testing
-
Validates the complete, integrated system to ensure it meets the specified requirements. DesignRush+1
-
Can involve functional and non-functional tests (performance, security, etc.). International Software Test Institute
-
-
Acceptance Testing (User Acceptance Testing)
-
Formal testing that verifies the system meets business requirements. DesignRush+1
-
Often done by stakeholders or end users. Global App Testing
-
-
Smoke / Sanity Testing
-
Preliminary tests to check basic functionality or build stability before deeper testing. TestDevLab
-
Smoke testing helps decide whether a build is stable enough to proceed with more complete testing. Wikipedia
-
-
Regression Testing
-
Repeated testing of existing functionality to ensure new changes haven’t broken anything. Global App Testing
-
-
Exploratory and Ad-Hoc Testing
-
Informal testing without predefined test cases; relies on tester intuition to find edge-case bugs. TestDevLab
-
-
Non-functional Testing
-
Tests aspects such as performance (load, stress), security, usability, and compatibility. gwcet.ac.in
-
By combining these different testing types throughout the development process, teams can ensure robustness, usability, performance, and compliance with business requirements.
-
-


