Skip to main content

Chapter 6: Software Testing


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:

  1. Black Box Testing (Functional Testing):
    Focuses on outputs in response to specific inputs without considering the internal logic.

  2. 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:

DeliverablesDescriptionTesting Types
Registration SystemUser Sign-up, Profile insertionUnit, Integrity, Module Testing
Friends SystemSending and responding to friend requestsUnit, Integrity, Module Testing
Messaging SystemSending and replying to messagesUnit, Integrity, Module Testing
GroupsCreating and managing groupsUnit, Integrity, Module Testing
Posting SystemPosting pictures, videos, and content on walls, groups, etc.Unit, Integrity, Module Testing
Liking SystemLiking/disliking posts, images, and videosUnit, Integrity, Module Testing
Commenting SystemCommenting on posts, galleries, and mediaUnit, Integrity, Module Testing
Pages SystemCreating and managing pages, posting contentUnit, Integrity, Module Testing


Comments