Information Communication Technology  ·  Level 6
System Analysis And Design
Chapter 5: Perform system testing
📚 4 Topics
⚑ What you will be able to do

By the end of this chapter, you will be able to:

  • Identify the types of system testing needed based on the system requirements.
  • Perform system debugging carefully and effectively following the system requirements.
  • Carry out system testing accurately according to the test plan.
  • Develop a clear and complete system test report following workplace procedures.

These skills will help you ensure that systems work perfectly and meet user needs, making you a valuable part of any tech team!

System testing is a critical phase in the lifecycle of any ICT project, ensuring that a system meets its specified requirements and functions correctly in the intended environment. For ICT technicians in Kenya, undertaking system testing means verifying that software or hardware solutions deployed in institutions such as county government offices or banking institutions operate reliably before full-scale rollout. This chapter explores various types of system testing, highlighting their distinct roles and the importance of thorough testing in safeguarding system quality and user satisfaction.

5.1 Types of the System Testing

System testing encompasses a range of testing types, each targeting specific aspects of the system to ensure comprehensive validation. Kenyan ICT technicians must understand these types to apply the correct testing strategies in different professional contexts, such as at NHIF when testing new claims processing software or at a university deploying an online registration system. This section breaks down the key types of system testing and their significance.

5.1.1 Software Testing

Software testing is the process of executing a program or application with the intent of finding software bugs and verifying that the software product meets the specified requirements. It is a fundamental activity for ICT technicians, who must ensure that applications used in sectors like retail banking at Co-op Bank or health information systems at Kenyatta National Hospital function flawlessly under operational conditions.

Purpose of Software Testing

  • Verification of Functional Requirements: Software testing checks that each function of the software operates according to the requirements specification. For instance, a SACCO’s loan processing software must correctly calculate interest rates and repayment schedules.
  • Detection of Defects: Identifying bugs or errors early prevents costly failures after deployment. In a county government payroll system, undetected defects could lead to incorrect salary payments.
  • Validation of System Performance: Software testing assesses whether the application performs well under expected workload, such as a high number of simultaneous users on a university portal during registration.
  • Ensuring Security Compliance: Testing includes security checks to protect sensitive data, critical for systems handling personal health records at clinics.
  • Facilitating User Acceptance: Well-tested software improves user confidence and satisfaction, essential in retail environments where point-of-sale systems must be dependable.

Types of Software Testing

  • Functional Testing: Evaluates the software against functional requirements.
  • Performance Testing: Measures responsiveness and stability under load.
  • Security Testing: Identifies vulnerabilities to prevent data breaches.
  • Regression Testing: Ensures new updates do not disrupt existing functionality.
  • Compatibility Testing: Checks software operation across different devices and environments.

Software testing is a continuous process throughout the system development lifecycle, with ICT technicians playing a vital role in executing and documenting test results.

5.1.2 Unit Testing

Unit testing focuses on verifying the smallest testable parts of an application, known as units, typically individual functions or methods. In the Kenyan ICT landscape, unit testing is crucial when developing modules for financial management systems in institutions like KRA or inventory management systems for retail chains.

Objectives of Unit Testing

  • Isolate Code Components: Each unit is tested independently to ensure it behaves as expected without interference from other parts.
  • Early Bug Detection: Unit testing allows developers and technicians to identify and fix issues at the code level before integration.
  • Simplifies Debugging: When a unit test fails, pinpointing the error is easier because the scope is limited to a small code section.
  • Facilitates Code Maintenance: Well-tested units enable safer code changes and updates in systems such as school management software.
  • Supports Documentation: Unit tests provide a form of documentation that explains how individual components should function.

Unit Testing Techniques

  • White-box Testing: Involves knowledge of the internal code to design test cases.
  • Mocking Dependencies: Simulates external components to test units in isolation.
  • Automated Unit Testing: Using tools like JUnit or NUnit to run tests repeatedly during development.
  • Test-Driven Development (TDD): Writing tests before code to ensure requirements guide the development.
  • Boundary Testing: Checking unit behavior at input limits to prevent errors.

Unit testing is typically performed by developers or ICT technicians with programming expertise, ensuring that each component functions correctly before moving to integration.

5.1.3 Integration Testing

Integration testing evaluates the interaction between multiple units or modules to verify that they work together as intended. This phase is vital in Kenyan ICT projects where systems comprise several interconnected modules, such as the integration of a hospital’s patient management system with its billing and pharmacy modules.

Goals of Integration Testing

  • Identify Interface Issues: Detect problems in data transfer, control, and communication between modules.
  • Validate Combined Functionality: Confirm that integrated units produce correct outcomes when working together.
  • Ensure Data Integrity: Verify that data remains consistent and accurate across module boundaries.
  • Test Workflow Processes: Check that end-to-end business processes function smoothly, such as a loan application workflow in a bank.
  • Detect Timing and Performance Problems: Observe how modules perform under simultaneous operations.

Integration Testing Approaches

  • Big Bang Integration: All modules are tested simultaneously after complete development, suitable for small systems but risky for complex ones.
  • Incremental Integration: Modules are integrated and tested step-by-step, reducing the complexity and isolating errors.
  • Top-Down Integration: Testing starts from higher-level modules and progressively integrates lower-level ones.
  • Bottom-Up Integration: Testing begins with lower-level modules, moving upward.
  • Sandwich Integration: Combines top-down and bottom-up approaches, useful for large systems with multiple teams.

In practice, a county government’s financial system may use incremental integration testing to ensure the revenue collection and budgeting modules interact correctly.

5.1.4 Usability

Usability assessments evaluate how easily end-users can learn and effectively use a system. For ICT technicians in Kenya, usability testing is essential when deploying systems in diverse environments, such as educational portals used by students with varying digital literacy levels or mobile banking apps accessed by rural users.

Aspects of Usability Assessment

  • Learnability: Measures how quickly new users can accomplish basic tasks, imperative for systems in public health clinics where staff turnover is high.
  • Efficiency: Assesses how fast users perform tasks once familiar with the system, important in fast-paced retail environments.
  • Memorability: Evaluates how easily users remember the system after periods of non-use, relevant for seasonal agricultural cooperative systems.
  • Error Frequency and Severity: Tracks user errors and how easily they can recover, critical in financial transaction systems.
  • User Satisfaction: Gathers subjective feedback to improve system design and support, enhancing acceptance in county administration offices.

Methods for Conducting Usability Assessments

  • User Observation: Watching real users interact with the system to identify pain points.
  • Surveys and Questionnaires: Collecting user opinions on system ease of use.
  • Think-Aloud Protocols: Users verbalize their thought process while using the system to reveal usability issues.
  • Heuristic Evaluation: Experts review the system against established usability principles.
  • A/B Testing: Comparing two versions of a system to determine which performs better in usability.

Usability assessments ensure that ICT solutions are accessible and effective for the intended user base, reducing training costs and support calls.

5.1.5 Importance of System Testing

Key Reasons System Testing Matters

  • Ensures Compliance with Requirements: Testing confirms that the system meets all functional and non-functional specifications, avoiding rework.
  • Reduces Risk of System Failures: Thorough testing detects defects that could cause downtime or data loss in critical systems like county revenue collection.
  • Improves System Security: Identifies vulnerabilities before deployment, protecting sensitive data in institutions like NHIF.
  • Enhances User Experience: By validating usability, testing ensures that users can operate the system effectively, increasing adoption rates.
  • Facilitates Maintenance and Upgrades: Well-tested systems have documented behaviors and fewer hidden bugs, simplifying future enhancements.

System testing ultimately safeguards investments in ICT projects, enabling organizations to achieve operational efficiency and service delivery excellence.

Practice Questions

  1. Explain the primary objectives of software testing and how they apply to a banking system in Kenya. (10 marks)

  2. Describe five key characteristics of unit testing and their significance in software development. (10 marks)

  3. Compare and contrast top-down and bottom-up integration testing approaches, providing examples of when each might be used. (10 marks)

  4. Discuss five aspects evaluated during usability assessments and why they are crucial for systems used in Kenyan public hospitals. (10 marks)

  5. Outline the importance of system testing in the deployment of e-government services in Kenya, citing specific benefits. (10 marks)

The rest of this chapter
🔒

Create a free account to open more of this chapter.

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒5.2 System Debugging

System debugging is a critical phase in system testing where faults or errors discovered during testing are identified, analysed, and corrected to ensure the system functions correctly. For ICT Technicians in Kenya, effective debugging is essential in environm…

🔒5.3 Performing System Settings

Configuring system settings is crucial for tailoring software or hardware to meet organisational requirements and optimise performance. For ICT Technicians in Kenya, this task involves adapting systems in places like insurance companies or county offices to lo…

🔒5.4 Developing system testing report

In the context of ICT technicians in Kenya, developing a comprehensive system testing report is a critical phase following the execution of system tests. This report communicates the outcomes of testing activities to stakeholders such as project managers, deve…

Chapter Summary

This chapter explored various types of system testing essential for validating software performance, including unit testing, integration testing, and usability assessments, each playing a crucial role in ensuring the system functions correctly and meets user needs. It emphasized the importance of comprehensive system testing to identify and resolve defects early, thereby enhancing software quality and reliability. The discussion then shifted to system debugging, detailing common techniques used to detect and fix errors, as well as outlining a structured debugging procedure to systematically address issues. Additionally, the chapter covered the process of performing system settings, which involves configuring the system environment to support optimal operation. Finally, it highlighted the development of a system testing report, a critical document that records testing outcomes, encountered problems, and recommendations for improvements, providing a basis for informed decision-making in system deployment.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. What is the primary purpose of unit testing in software development? (2 marks)
  2. Identify two key differences between integration testing and system testing. (4 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with worked answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain the purpose of unit testing in software development, illustrating your answer with an example from a Kenyan banking application. (4 marks)
  2. Distinguish between integration testing and usability assessments in system testing. (4 marks)
🔒18 more in this section.

Chapter Practical Activities

Practical 1: Unit Testing of Software Modules

Information Communication Technology · Level 6
System Analysis And Design
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Perform unit testing on the provided software module with at least five test cases and document the test results.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with Windows 10 or above and Visual Studio 2019 or later installedSample software module source code files (.cs or .java)
Unit testing framework (e.g., NUnit or MSTest)Printing paper
Printer
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with Windows 10 or above and Visual Studio 2019 or later installed1 Pc per Candidate
2Unit testing framework (e.g., NUnit or MSTest)1 Pc per Candidate
3Sample software module source code files (.cs or .java)1 Set per Candidate
4Printer1 Pc per 5 Candidates
5Printing paperEnough per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Preparation and Setup
Created a folder named UNIT_TESTING on the desktop
(Award 2 marks or zero)
2
Imported the provided software module source code into the IDE
(Award 3 marks or zero)
3
Configured the unit testing framework correctly to link with the module
(Award 3 marks or zero)
3
Sub-Total8
TASK 2: Designing and Executing Unit Tests
Designed at least five relevant test cases covering normal and boundary inputs
(Award 1 mark per valid test case)
5
Executed the unit tests successfully without errors
(Award 4 marks or zero)
4
Identified at least two defects or unexpected behaviors in the module
(Award 3 marks or zero)
3
Sub-Total12
TASK 3: Documentation and Reporting
Saved the test results report as UNIT_TEST_REPORT in the UNIT_TESTING folder
(Award 3 marks or zero)
3
Printed the saved test results report
(Award 1 mark or zero)
1
Sub-Total4
PRODUCT CHECKLIST
Test results report includes all five test cases with input, expected output, actual output, and pass/fail status clearly documented
(Award 6 marks for complete and accurate documentation or zero)
6
Sub-Total6
GRAND TOTAL30
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Perform integration testing of combined software modules

Information Communication Technology · Level 6
System Analysis And Design
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Perform integration testing on combined user authentication, payment processing, and notification modules ensuring correct data flow and save test report as INTEGRATION_TEST in the TESTING folder.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with Windows 10 or above and Visual Studio 2019Printing papers
Integration testing toolkit (Postman, Selenium)
Printer
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with Windows 10 or above and Visual Studio 20191 Pc per Candidate
2Integration testing toolkit (Postman, Selenium)1 set per Candidate
3Printer1 shared per 5 Candidates
4Printing papers30 Sheets per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Setup and Prepare Testing Environment
Created a folder named TESTING on the desktop
(Award 2 marks or zero)
2
Loaded the integrated modules into the testing environment
(Award 3 marks for correctly loading all three modules)
3
Configured test cases for user authentication, payment processing, and notification modules
(Award 4 marks for at least 3 test cases per module correctly configured)
4
Sub-Total9
TASK 2: Execute Integration Tests
Performed integration tests verifying data flow between user authentication and payment modules
(Award 5 marks for correct test execution and validation)
5
Performed integration tests verifying data flow between payment processing and notification modules
(Award 5 marks for correct test execution and validation)
5
Logged and documented all test results including errors and successes
(Award 4 marks for complete and accurate documentation)
4
Sub-Total14
TASK 3: Save and Print Test Report
Saved the integration test report as INTEGRATION_TEST in the TESTING folder
(Award 3 marks for correct file name and location)
3
Printed the saved test report
(Award 1 mark for printing the correct document)
1
Sub-Total4
PRODUCT CHECKLIST
Test report includes a summary of test cases executed, results, identified defects, and recommendations
(Award 10 marks for a comprehensive and well-structured test report)
10
Test results demonstrate correct data flow and communication between integrated modules
(Award 8 marks for accurate test results confirming integration)
8
Sub-Total18
GRAND TOTAL45
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒Conduct Usability Assessment for Software InterfacePractical 3
🔒Demonstrate and explain the importance of system testingPractical 4
🔒Apply common system debugging techniques to identify and fix software faultsPractical 5
🔒System Debugging Procedure for Faulty Payroll ApplicationPractical 6
🔒Configure System Settings to Optimize Software Performance and UsabilityPractical 7
🔒Develop a Comprehensive System Testing Report for Inventory Management SystemPractical 8
🔒Practical Demonstration of Various System Testing TypesPractical 9
🔒Debug a Software System Using Tracing TechniquesPractical 10
🔒Debug a software system using breakpointsPractical 11
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 19 questions Start quiz ▾
0%
0 / 2
🔒

17 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • Identify the types of system testing needed based on the system requirements.
  • Perform system debugging carefully and effectively following the system requirements.
  • Carry out system testing accurately according to the test plan.
  • Develop a clear and complete system test report following workplace procedures.

Tick each one you can genuinely do.

So, are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.