By the end of this chapter, you will be able to:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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 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 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 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 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 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.
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 |
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 |
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:
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:
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:
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:
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.
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.
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.
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.
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.
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.
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.
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 |
Explain five reasons why software testing is crucial for ICT Technicians working in Kenyan public institutions. (10 marks)
Compare and contrast black box testing and white box testing, highlighting their relevance in software development projects. (10 marks)
Identify five software testing tools and describe their specific uses in the Kenyan ICT sector. (10 marks)
Outline the seven steps involved in performing computer software testing and explain the significance of each step. (14 marks)
Create a free account to open more of this chapter.
Free: practical guides, quick cards, workplace scenarios and more.
Create a free accountThis 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.
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| Working computer with Windows 10 operating system | Software testing checklist template |
| Inventory management application installer | |
| Internet connectivity |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Working computer with Windows 10 operating system | 1 Pc per Candidate |
| 2 | Inventory management application installer | 1 Pc per Candidate |
| 3 | Internet connectivity | Shared |
| 4 | Software testing checklist template | 1 Pc per Candidate |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| 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-Total | 8 | ||
| 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-Total | 15 | ||
| 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-Total | 12 | ||
| PRODUCT CHECKLIST | |||
| Completed software testing checklist with accurate test results and observations (Award 5 marks or zero) | 5 | ||
| Sub-Total | 5 | ||
| GRAND TOTAL | 40 | ||
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| Working computer with Windows operating system | Sample computer software application for testing |
| Internet connectivity | |
| Software testing tools (e.g., Selenium, JUnit installer) | |
| Microsoft Word or equivalent word processing software |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Working computer with Windows operating system | 1 Pc per Candidate |
| 2 | Internet connectivity | Shared |
| 3 | Software testing tools (e.g., Selenium, JUnit installer) | 1 Pc per Candidate |
| 4 | Sample computer software application for testing | 1 Pc per Candidate |
| 5 | Microsoft Word or equivalent word processing software | 1 Pc per Candidate |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| 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-Total | 9 | ||
| 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-Total | 14 | ||
| 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-Total | 8 | ||
| 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-Total | 9 | ||
| GRAND TOTAL | 40 | ||
At the start of this chapter we promised you would be able to:
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.