6.1 Software Testing
Software testing involves a set of activities and techniques aimed at validating and verifying the system. The purpose is to ensure that the final product is functional, reliable, and aligns with the requirements defined during earlier phases of the project.
6.2 Testing Classification
Software testing can be defined as the process of verifying whether a computer program, application, or product:
-
Meets the requirements that guided its design and development.
-
Works as expected under specified conditions.
-
Is implemented with the correct characteristics.
-
Satisfies the needs of stakeholders.
A test specification defines which scenarios will be tested and how they will be executed. These specifications evolve from the test plan and form the second phase of the testing life cycle.
Two primary classes of testing were adopted:
-
Black Box Testing (Functional Testing):
Focuses on outputs in response to specific inputs without considering the internal logic. -
White Box Testing (Structural Testing):
Considers the internal mechanisms of the system, including code structure and logic.
In addition, different types of testing were performed, including:
-
Unit Testing
-
Integration Testing
-
Functional and System Testing
-
Acceptance Testing
-
Regression Testing
-
Beta Testing
Each test case consisted of defined inputs and expected outputs for verification.
6.3 Input Specifications
In today’s fast-paced IT environment, organizations face the challenge of delivering quality software with fewer resources and in less time. To meet these challenges, our testing input specifications included:
-
Identifying the most suitable testing tools.
-
Automating tests for multi-technology product suites (e.g., UI-based applications).
-
Adopting cost-effective approaches.
Inputs used for test cases included keyboard and mouse actions, data files, user interactions, and system protocols. Each input was described not only by its name but also by its attributes such as values, ranges, data structures, databases, and files.
6.4 Output Specifications
For each input, a corresponding set of expected outputs was defined. Output specifications included:
-
Data values
-
Timing information
-
Screen messages
-
Logs
-
Database updates
-
Memory structures
-
Files and user interface elements
By defining and approving expected outputs in advance, the testing team could easily compare actual results and determine whether a test passed or failed.
6.5 Test Environment
Our test environment included both hardware and software setups to simulate real-world conditions.
-
Server-side: operating system, database server, web server.
-
Client-side: operating system, browser, front-end environment.
This ensured that the system could not malfunction on the customer’s side under expected usage.
6.6 Special Procedural Requirements
Both black box and white box testing techniques were applied.
-
Black Box Testing: Focused on identifying functional issues such as broken links, integration errors, and exceptions.
-
White Box Testing: Focused on code-level issues such as coding standards, separation of logic, and database connectivity.
All bugs were documented step by step and assigned to developers for resolution.
6.7 Inter-case Dependencies
Dependencies among features were carefully tested, as unresolved dependencies could cause system-wide problems.
-
Testing began with black box methods at the interface level.
-
Next, white box testing addressed code-level issues such as inconsistent coding styles or connectivity errors.
Special attention was given to dependent features like pages, groups, and user modules.
6.8 Test Deliverables
For quality assurance, the following modules were tested, and results were satisfactory:
| Deliverables | Description | Testing Types |
|---|---|---|
| Registration System | User Sign-up, Profile insertion | Unit, Integrity, Module Testing |
| Friends System | Sending and responding to friend requests | Unit, Integrity, Module Testing |
| Messaging System | Sending and replying to messages | Unit, Integrity, Module Testing |
| Groups | Creating and managing groups | Unit, Integrity, Module Testing |
| Posting System | Posting pictures, videos, and content on walls, groups, etc. | Unit, Integrity, Module Testing |
| Liking System | Liking/disliking posts, images, and videos | Unit, Integrity, Module Testing |
| Commenting System | Commenting on posts, galleries, and media | Unit, Integrity, Module Testing |
| Pages System | Creating and managing pages, posting content | Unit, Integrity, Module Testing |
Comments
Post a Comment