Information Communication Technology  ·  Level 6
Computer Software
Chapter 2: Test computer software functionality
📚 3 Topics
⚑ What you will be able to do

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

  • Perform software testing accurately by following the user manual step-by-step.
  • Identify and carry out corrective measures based on user requirements.
  • Confirm that computer software functions correctly by following workplace procedures.

Mastering these skills ensures you can deliver reliable software that meets user needs and keeps systems running smoothly in the real world.

Testing computer software is a critical activity for ICT Technicians in Kenya, ensuring that applications function correctly before deployment. It involves systematic evaluation to identify defects, verify compliance with requirements, and confirm usability in real-world scenarios. Proper software testing prevents costly failures in sectors such as banking, healthcare, and government services, where software errors can disrupt operations or compromise data integrity. This chapter guides ICT Technicians through the principles, techniques, tools, and procedures essential to effective software testing.

2.1 Software testing

Software testing is the process of verifying that a computer program operates as intended, identifying bugs or errors before software reaches end users. ICT Technicians play a pivotal role in supporting institutions such as hospitals, schools, SACCOs and county government offices by ensuring software reliability, which underpins service delivery and operational efficiency. Testing is not a one-time event but a continuous activity integrated into the software development lifecycle to maintain quality standards.

2.1.1 Importance of software testing

Testing protects users, organisations and data from the consequences of faulty software. A defect found by a technician in a test room costs far less to correct than the same defect discovered by customers on a live system. The main benefits of testing are described below.

Ensuring functional accuracy

Testing verifies that software performs all specified functions correctly. Example: in a SACCO loan management system, testing confirms that interest calculations and approval workflows operate flawlessly, preventing financial errors.

Enhancing security and compliance

Testing identifies vulnerabilities that could expose systems to breaches or data loss. In public sector offices, rigorous testing helps show that systems protect citizen information in line with data protection requirements.

Reducing maintenance costs

Early detection of defects through testing minimises costly post-deployment fixes. A bank that tests its transaction system thoroughly avoids system downtimes that disrupt customer transactions and cause financial losses.

Improving user experience

Testing guarantees that software interfaces are intuitive and responsive. This is vital in customer-facing applications such as mobile banking apps, where a slow or confusing screen quickly drives users away.

Supporting reliable integration

Testing confirms that new software integrates smoothly with existing systems. For instance, connecting a hospital patient management system to a central health database requires precise testing to ensure data consistency.

2.1.2 Computer software testing techniques

Various testing techniques evaluate software functionality from different perspectives. ICT Technicians must select appropriate methods based on project scope, complexity and resource availability. Some techniques depend on how much the tester knows about the code, while others depend on the stage of development at which the software is tested.

Black box testing

This technique focuses on verifying software outputs against inputs without knowledge of the internal code structure. It is effective for validating user interface behaviour in a school management system, where the tester enters marks and checks that the report forms display the correct totals and grades.

White box testing

White box testing examines the internal logic and code pathways of software. It is essential for mission-critical applications such as tax collection software, where code reliability directly affects revenue collection. The tester follows each decision branch and loop to confirm that every path produces the correct result.

Unit testing

Unit testing isolates and tests individual components or modules. Developers in an insurance firm use unit tests to ensure that each function within claim processing software, such as the one that calculates a payout, operates correctly before integration.

Integration testing

Integration testing assesses combined modules to verify their interactions. County government offices deploying a new financial management system rely on integration testing to ensure seamless data flow between the budgeting and procurement modules.

System testing

System testing evaluates the complete and integrated software product to verify compliance with specified requirements. For example, a hotel reservation system undergoes system testing to check that booking, payment and notification functions work together.

Acceptance testing

Acceptance testing is carried out with the client or end users to confirm that the software meets their needs and is ready for use. Example: receptionists at a hotel run a day of real bookings on the new system and sign off only when they are satisfied.

Regression testing

Regression testing repeats earlier tests after a change or repair to confirm that existing functions still work. Example: after a fix to the loan interest calculation in a SACCO system, the technician re-runs the deposit and withdrawal tests to ensure nothing else has broken.

2.1.3 Computer software testing tools

Testing tools automate and facilitate various testing activities, improving efficiency and accuracy. Automated tools can repeat the same test hundreds of times without fatigue, which is valuable when software changes often. The four tools below are widely used for functional testing.

Name Specification Use
TestComplete Commercial automation tool for desktop, web and mobile applications Automates user interface tests using recorded or scripted steps
Selenium Open-source, supports multiple programming languages and browsers Automates web application testing
Appium Open-source mobile automation framework for Android and iOS Automates tests of native, hybrid and mobile web apps
Postman API testing platform Tests RESTful APIs for backend services

Other testing tools: JUnit, LoadRunner and Bugzilla

Besides the four functional testing tools covered below, technicians use tools for unit testing, performance testing and defect tracking.

Name Specification Use
JUnit Java-based unit testing framework Performs unit testing of Java code
LoadRunner Performance testing software Simulates user load to test system scalability
Bugzilla Web-based bug tracking tool Tracks and manages reported defects
  • JUnit: Assists developers of a university student management system by validating Java modules rigorously, for example a function that computes a student's total marks.
  • LoadRunner: Helps county government ICT teams simulate many users accessing a tax portal at the same time, to see whether it slows down or fails.
  • Bugzilla: Organises and prioritises bug reports, ensuring efficient defect resolution in a cooperative society's software.

2.1.3.1 TestComplete

TestComplete is a commercial automated testing tool that tests desktop, web and mobile applications through their user interfaces. A technician can record actions such as clicking and typing, then replay them whenever the software changes. Example: a technician records the steps of entering a patient record in a clinic's desktop application and replays them after every software update.

Key features:

  • Record and playback: User actions are captured and turned into a test that can be replayed without manual effort.
  • Scripting languages: Tests can be edited or written in languages such as JavaScript and Python, which gives flexibility for complex checks.
  • Object recognition: The tool identifies buttons, text boxes and menus by their properties, so tests continue to work if a control moves on the screen.
  • Keyword-driven testing: Tests are built from readable actions, allowing team members with limited programming skills to contribute.
  • Test reports: Results are logged with pass or fail status and screenshots, which helps in defect reporting.

2.1.3.2 Selenium

Selenium is an open-source suite for automating web browsers. Its WebDriver component sends commands to a browser to open pages, fill in forms and click buttons, then compares what appears with what is expected. Example: a technician automates the checkout process of an online shop to confirm that a basket of goods totals the correct amount in Ksh.

Key features:

  • Open source: It is free to use, which suits schools and small businesses with limited budgets.
  • Multiple languages: Tests can be written in languages such as Java, Python, C# and JavaScript.
  • Cross-browser testing: The same test can run in browsers such as Chrome, Firefox and Edge to confirm consistent behaviour.
  • Selenium Grid: Tests can run on several machines at once, which shortens testing time.
  • Web only: It tests browser-based applications and does not test desktop programs directly.

2.1.3.3 Appium

Appium is an open-source framework for automating tests on mobile applications running on Android and iOS. It uses the same WebDriver approach as Selenium, so testers can reuse their knowledge of that tool. Example: a technician tests a mobile banking app by automating login, balance enquiry and fund transfer on a real phone and on an emulator.

Key features:

  • Native, hybrid and mobile web apps: It can test apps built for the phone, apps that embed web content, and websites opened in a mobile browser.
  • No changes to the app: The application under test does not have to be modified or recompiled for testing.
  • Cross-platform: One set of test scripts can be largely reused across Android and iOS.
  • Language choice: Tests can be written in common languages such as Java and Python.
  • Real devices and emulators: Tests run on physical phones or on virtual devices, allowing a range of screen sizes to be checked.

2.1.3.4 Postman

Postman is a platform for building, sending and testing API requests. APIs are the connections that let a mobile app or website exchange data with a backend database, so errors there affect every user. Example: a technician sends a request to the loan balance endpoint of a SACCO system and checks that the response returns the correct member balance.

Key features:

  • Request builder: The tester selects the method (GET, POST, PUT, DELETE), enters the address and adds data, without writing code.
  • Response checking: Status codes, response time and returned data in formats such as JSON can be inspected.
  • Test scripts: Short JavaScript checks can be written to confirm automatically that responses are correct.
  • Collections: Related requests are grouped and saved so they can be shared with the team and re-run.
  • Environments and variables: The same collection can be run against a test server and a live server by changing stored values.

2.1.4 Performing computer software testing

Executing software testing requires a structured approach to ensure comprehensive coverage and meaningful results. ICT Technicians follow systematic steps adapted to project requirements and stakeholder expectations.

  1. Requirement analysis: Review software specifications and user expectations to define test objectives. For example, analysing the requirements of a hospital's patient record system ensures that tests cover all critical functions.

  2. Test planning: Develop a detailed test plan outlining scope, resources, schedule and methods. County government ICT units document plans to coordinate testing activities across departments.

  3. Test design: Create test cases and scenarios based on the requirements. Example: a SACCO loan form that accepts amounts from Ksh 10,000 to Ksh 500,000 is tested with Ksh 9,999, Ksh 10,000, Ksh 500,000 and Ksh 500,001, together with error handling for letters typed in the amount field.

  4. Test environment setup: Prepare hardware, software and network configurations that mirror production settings. Educational institutions set up test servers replicating their live environments so that results are accurate.

  5. Test execution: Run test cases and record outcomes, noting deviations and failures. SACCOs use automated scripts to execute repetitive tests on loan application systems efficiently.

  6. Defect reporting and tracking: Document identified defects with detailed information and track resolution progress. Insurance companies employ bug tracking systems to manage software issues systematically.

  7. Test closure: Evaluate testing completeness, prepare summary reports and obtain stakeholder approval. After thorough testing, a county health department approves new software for deployment.

A simple test case record used in steps 3 to 5 may look like this:

Test case Input Expected result Actual result Status
TC01 Loan amount Ksh 10,000 Application accepted Application accepted Pass
TC02 Loan amount Ksh 9,999 Error message shown Application accepted Fail
TC03 Loan amount Ksh 500,001 Error message shown Error message shown Pass

Practice Questions

  1. Explain five reasons why software testing is crucial for ICT Technicians working in Kenyan public institutions. (10 marks)

  2. Compare and contrast black box testing and white box testing, highlighting their relevance in software development projects. (10 marks)

  3. Identify five software testing tools and describe their specific uses in the Kenyan ICT sector. (10 marks)

  4. Outline the seven steps involved in performing computer software testing and explain the significance of each step. (14 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
🔒2.2 Corrective measures

In the role of an ICT Technician in Kenya, ensuring software operates correctly after deployment is critical for maintaining system reliability and user satisfaction. When software malfunctions or errors emerge during testing or actual use, corrective measures…

🔒2.3 Testing of computer software functionality

Testing computer software functionality is a critical task for ICT Technicians in Kenya, ensuring that software applications perform as intended before deployment. Given the increasing reliance on software in sectors such as banking, healthcare, education, and…

Chapter Summary

This chapter explored the critical process of software testing, emphasizing its importance in ensuring the reliability and performance of computer software. Various testing techniques were examined, highlighting methods to assess software functionality effectively. The chapter also introduced key software testing tools such as Test Complete, Selenium, Appium, and Postman, explaining their roles in automating and simplifying the testing process. Guidance on how to perform software testing was provided to equip learners with practical skills. Moving to corrective measures, different types were discussed alongside tools designed to facilitate error correction and software improvement. The chapter concluded with procedures for implementing corrective actions and detailed the testing of software functionality to verify that the software meets its intended requirements. Overall, the content provided a comprehensive understanding of maintaining software quality through systematic testing and correction.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. What is the primary purpose of software testing in ICT systems? (2 marks)
  2. Identify and briefly describe three common software testing techniques used by ICT technicians. (6 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 why software testing is critical before deploying an application in a Kenyan hospital information system such as the one used in Kenyatta National Hospital. (4 marks)
  2. Differentiate between functional and non-functional testing in computer software. Provide an example of each relevant to banking software in Kenya. (4 marks)
🔒18 more in this section.

Chapter Practical Activities

Practical 1: Perform software testing on a computer application

Information Communication Technology · Level 6
Computer Software
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 software testing on the inventory management application version 3.2.1 installed on a computer with Windows 10 OS.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Working computer with Windows 10 operating systemSoftware testing checklist template
Inventory management application installer
Internet connectivity
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Working computer with Windows 10 operating system1 Pc per Candidate
2Inventory management application installer1 Pc per Candidate
3Internet connectivityShared
4Software testing checklist template1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Preparation and Installation
Observed Computer Laboratory rules and used appropriate PPE
(Award 1 mark or zero)
1
Verified computer meets software minimum requirements (CPU, RAM, disk space)
(Award 2 marks or zero)
2
Installed the inventory management application correctly
(Award 3 marks or zero)
3
Launched the application successfully without errors
(Award 2 marks or zero)
2
Sub-Total8
TASK 2: Functional Testing
Performed login test with valid and invalid credentials
(Award 3 marks or zero)
3
Tested adding new inventory item with valid data
(Award 3 marks or zero)
3
Tested updating existing inventory item details
(Award 3 marks or zero)
3
Tested deleting an inventory item
(Award 3 marks or zero)
3
Tested search functionality for inventory items
(Award 3 marks or zero)
3
Sub-Total15
TASK 3: Performance and Usability Testing
Tested application response time during typical operations
(Award 3 marks or zero)
3
Tested error messages and validation prompts for incorrect inputs
(Award 3 marks or zero)
3
Tested user interface for accessibility and ease of navigation
(Award 3 marks or zero)
3
Documented all test results in the software testing checklist template
(Award 3 marks or zero)
3
Sub-Total12
PRODUCT CHECKLIST
Completed software testing checklist with accurate test results and observations
(Award 5 marks or zero)
5
Sub-Total5
GRAND TOTAL40
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Demonstrate the Importance of Software Testing

Information Communication Technology · Level 6
Computer Software
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Prepare a software testing report demonstrating the importance of software testing using the provided sample application and testing tools, including at least three examples of detected defects and their effects.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Working computer with Windows operating systemSample computer software application for testing
Internet connectivity
Software testing tools (e.g., Selenium, JUnit installer)
Microsoft Word or equivalent word processing software
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Working computer with Windows operating system1 Pc per Candidate
2Internet connectivityShared
3Software testing tools (e.g., Selenium, JUnit installer)1 Pc per Candidate
4Sample computer software application for testing1 Pc per Candidate
5Microsoft Word or equivalent word processing software1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Set up and prepare for software testing
Observed Computer Laboratory rules and appropriate wear
(Award 1 mark or zero)
1
Launched the provided sample software application successfully
(Award 2 marks or zero)
2
Installed and configured at least one software testing tool correctly
(Award 3 marks or zero)
3
Prepared test cases covering at least three different software functionalities
(Award 3 marks or zero)
3
Sub-Total9
TASK 2: Execute software tests and document results
Executed the test cases and recorded outcomes accurately
(Award 4 marks or zero)
4
Identified at least three different defects or bugs in the software
(Award 4 marks or zero)
4
Demonstrated the effects of defects through examples or screenshots
(Award 3 marks or zero)
3
Prepared a clear and concise software testing report in Word format
(Award 3 marks or zero)
3
Sub-Total14
TASK 3: Explain the importance of software testing
Provided at least three reasons explaining why software testing is critical before deployment
(Award 3 marks or zero)
3
Linked the reasons to examples from the testing performed
(Award 3 marks or zero)
3
Saved the report as 'SOFTWARE_TESTING_REPORT' in a folder named 'TEST_RESULTS'
(Award 2 marks or zero)
2
Sub-Total8
PRODUCT CHECKLIST
Report includes clear test cases, defect descriptions, and explanations of importance
(Award up to 9 marks based on completeness and clarity)
9
Sub-Total9
GRAND TOTAL40
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

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

Create a free account
🔒Apply software testing techniques on a sample applicationPractical 3
🔒Automated Software Testing Using Test CompletePractical 4
🔒Automated Web Application Testing Using SeleniumPractical 5
🔒Configure Appium and perform automated testing on a mobile applicationPractical 6
🔒API Testing Using Postman for Web Service ValidationPractical 7
🔒Perform software functionality testing on a payroll applicationPractical 8
🔒Identify and apply corrective measures in software testingPractical 9
🔒Explain types of corrective measures in software testingPractical 10
🔒Use software corrective tools to debug and fix a given software applicationPractical 11
🔒Plan and Execute a Complete Software Testing Cycle for a Desktop ApplicationPractical 12
🔒Compare and Select Appropriate Software Testing Tools for a Mobile Web ApplicationPractical 13
🔒Document Software Testing Results and Corrective ActionsPractical 14
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:

  • Perform software testing accurately by following the user manual step-by-step.
  • Identify and carry out corrective measures based on user requirements.
  • Confirm that computer software functions correctly by 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.