By the end of this chapter, you will be able to:
Mastering these skills ensures that software works smoothly and meets user needs, which is essential for success in any computer-related trade.
Software testing is a critical discipline within ICT technician roles in Kenya, ensuring that computer software meets the required standards of quality, reliability, and functionality before deployment. In environments ranging from county government offices to retail businesses, effective software testing prevents costly failures and enhances user satisfaction. This chapter explores the principles, techniques, tools, and practical steps involved in testing computer software, empowering ICT technicians to deliver robust software solutions that support Kenya’s digital transformation initiatives.
Software testing involves systematically evaluating a software application to identify defects, verify that it functions as intended, and ensure it meets user requirements. For ICT technicians, rigorous testing is essential to safeguard data integrity and operational continuity. Testing mitigates risks associated with software failures, which can disrupt services and undermine stakeholder trust.
The role of software testing extends beyond defect identification to encompass quality assurance and user experience enhancement. Testing validates that software behaves correctly under various conditions, which is vital where software supports critical business operations.
Reliable software minimises unexpected crashes or errors, which is crucial for systems such as payroll or stock control, where downtime can halt daily work. Testing simulates real-world scenarios to confirm software stability.
Testing uncovers vulnerabilities that could be exploited by cyber threats. For example, an online payment application is tested for weak password handling and unprotected data so that client financial details are not exposed.
Testing confirms that software complies with specifications and regulatory standards, such as data protection requirements that apply to personal information held in a system.
Identifying defects early reduces costly post-deployment fixes. For instance, a retail business that thoroughly tests its point-of-sale software avoids expensive downtime and customer dissatisfaction.
User acceptance testing ensures the software meets user expectations, which enhances adoption rates and productivity. For example, staff who try a new invoicing application before release can point out confusing screens that the developers can correct.
Testing techniques provide structured approaches to assess different software aspects, enabling ICT technicians to apply appropriate methods depending on project scope and complexity.
In this technique, testers evaluate software functionality without knowledge of the internal code structure. It focuses on input-output behaviour, which is useful when validating the user interface of an application such as a stock control system: enter a quantity, press save, and check the result.
White box testing requires understanding the internal logic and code paths. It helps identify hidden errors in algorithms or data handling, for example a wrong rounding rule inside the calculation module of a payroll application.
Regression testing ensures that new code changes do not adversely affect existing functionalities. This is particularly important when updating an inventory system with a new reporting feature, so that stock entry and sales screens keep working as before.
This technique assesses software responsiveness and stability under load. For example, testing an e-commerce platform during simulated high traffic protects against crashes during peak sales. Tools such as JMeter can simulate many concurrent users for this purpose.
Usability testing evaluates how easily end users can navigate and operate the software. For example, a technician observes whether a first-time user can complete a transaction in a mobile money application without help, which shows whether the screens are clear and effective.
Effective software testing relies on tools that automate, facilitate, or enhance the testing processes, enabling ICT technicians to work efficiently and produce reliable results. The tools below cover automated testing of desktop, web, mobile and API-based software.
| Name | Specification | Use |
|---|---|---|
| TestComplete | Commercial automated UI testing tool for desktop, web and mobile applications; supports scripting and keyword-driven tests | Automates functional and regression tests of application interfaces |
| Selenium | Open-source, supports multiple browsers and programming languages | Automates web application testing |
| Appium | Open-source mobile automation framework for Android and iOS applications | Automates testing of native, hybrid and mobile web apps |
| Postman | API testing tool, supports automation and scripting | Tests RESTful APIs used in modern applications |
TestComplete is a commercial automated testing tool that checks the user interface of desktop, web and mobile applications. It can record the actions of a tester and replay them as a script, so the same check can be repeated after every software update. For example, an ICT technician can record the steps of posting a customer payment in a desktop accounting application and replay them each time the application is upgraded.
Key features:
Selenium is an open-source tool that automates web browsers and is widely used to test web applications. It reduces repetitive manual testing for systems such as an online ordering website. Testers write scripts that open a page, enter data, click buttons and compare the result with the expected outcome.
Key features:
Appium is an open-source framework for automating tests on mobile applications running on Android and iOS. It is useful where services are delivered through phones, for example a mobile money or mobile payment application. Appium tests the application as it is installed, so the code of the app does not need to be changed for testing.
Key features:
Postman is a tool for building, sending and checking requests to an application programming interface (API). It is indispensable for testing APIs, which are common in integrated systems where one application exchanges data with another. A technician can send a request to a customer registration service and confirm that the response contains the correct data and status code.
Key features:
Executing software testing involves a structured sequence of activities that ICT technicians must follow to ensure thorough evaluation and documentation.
Requirement analysis: Understand software specifications and testing objectives to define what needs validation. For instance, analyse the functional requirements of a stock management system to prepare relevant test cases.
Test planning: Outline the scope, approach, resources, schedule, and deliverables of testing. This includes selecting appropriate testing techniques and tools suited to the software type and user environment.
Test case development: Design detailed test cases that specify inputs, expected results, and execution conditions. Well-crafted test cases cover positive and negative scenarios, such as entering invalid data into an online order form.
Test environment setup: Prepare hardware, software, network configurations, and data required for testing. This may involve creating a replica of the client's production environment in the firm's test lab to accurately simulate user conditions.
Test execution: Perform the tests according to the plan, recording actual outcomes and any deviations. Automated tools may be used alongside manual testing to increase coverage and efficiency.
Defect reporting and tracking: Document identified defects with detailed descriptions and severity levels. Use a defect tracking tool such as JIRA to assign issues to developers and monitor resolution progress.
Test closure: Evaluate test completeness, prepare test summary reports, and archive test artefacts. This phase confirms that testing objectives have been met and provides insights for future projects.
Example: A software firm upgrading a client's inventory management software followed these steps to ensure the new features worked correctly without disrupting existing functions, thereby maintaining the client's trust and operational continuity.
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 reliable and efficient computer software. Various software testing techniques were discussed, highlighting their roles in verifying different aspects of software functionality. The chapter also introduced popular software testing tools such as Test Complete, Selenium, Appium, and Postman, explaining their specific applications in testing environments. Practical steps for performing software testing were outlined to guide systematic evaluation of software performance. In addressing issues identified through testing, the chapter covered different types of corrective measures that can be applied to fix software defects. It further examined software corrective tools that assist in implementing these fixes effectively. Finally, the chapter detailed the comprehensive approach required for testing computer software functionality, ensuring that all components operate as intended before deployment.
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| Test computer with Windows 10 OS | Sample customer registration software installer |
| Pen and notebook | Test cases document |
| User manual |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Test computer with Windows 10 OS | 1 Pc per Candidate |
| 2 | Sample customer registration software installer | 1 Pc per Candidate |
| 3 | Test cases document for customer registration software | 1 Pc per Candidate |
| 4 | User manual for customer registration software | 1 Pc per Candidate |
| 5 | Pen and notebook for documentation | 1 Pc per Candidate |
| 6 | PPE: Antistatic wrist strap | 1 Pc per Candidate |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| TASK 1: Preparation and Software Installation | |||
| Wore antistatic wrist strap before handling computer (Award 2 marks for correct PPE use or zero) | 2 | ||
| Checked system meets minimum requirements as per user manual (Award 1 mark each for CPU, RAM, disk space verification) | 3 | ||
| Installed sample customer registration software successfully (Award 2 marks for running installer, 3 marks for successful installation) | 5 | ||
| Opened software and navigated to main registration form (Award 2 marks for accessing main form) | 2 | ||
| Reviewed test cases document and planned manual tests (Award 3 marks for thorough review and planning) | 3 | ||
| Sub-Total | 15 | ||
| TASK 2: Manual Software Testing Execution | |||
| Performed form field validation tests (e.g. empty fields, invalid input) (Award 1 mark each for 5 correct validation tests) | 5 | ||
| Tested data saving function with valid data entry (Award 3 marks for successful data save test) | 3 | ||
| Simulated error conditions and verified software error messages (Award 1 mark each for 4 error handling tests) | 4 | ||
| Documented all test results clearly in notebook (Award 3 marks for clear, complete documentation) | 3 | ||
| Generated a simple test report summarizing test outcomes (Award 4 marks for correct test report format and content) | 4 | ||
| Sub-Total | 19 | ||
| TASK 3: Explanation of Software Testing Importance | |||
| Explained purpose of software testing orally or in writing (Award 3 marks for clear explanation of software testing objectives) | 3 | ||
| Described importance of software testing in quality assurance (Award 3 marks for describing benefits such as error detection, user satisfaction) | 3 | ||
| Identified types of software testing relevant to the task (Award 2 marks for identifying manual and functional testing) | 2 | ||
| Discussed consequences of inadequate testing (Award 3 marks for identifying risks like software failure, data loss) | 3 | ||
| Sub-Total | 11 | ||
| PRODUCT CHECKLIST | |||
| Test report includes test cases executed with pass/fail status (Award 5 marks for completeness and accuracy) | 5 | ||
| Documentation of challenges encountered during testing and solutions provided (Award 5 marks for clear description of challenges and resolutions) | 5 | ||
| Software functions tested correctly according to test cases (Award 3 marks for correctly performing tests and verifying software behavior) | 3 | ||
| Sub-Total | 13 | ||
| GRAND TOTAL | 58 | ||
Type: Individual
| Tools & Equipment | Materials |
|---|---|
| Desktop computer with Windows 10 OS installed | Test case documentation template |
| Installation media (USB flash drive) | Pen or pencil |
| S/N | Item | Quantity |
|---|---|---|
| 1 | Desktop computer with Windows 10 OS installed | 1 Pc per Candidate |
| 2 | Installation media (USB flash drive) containing the desktop application setup files | 1 Pc per Candidate |
| 3 | Test case documentation template (printed or digital) | 1 Pc per Candidate |
| 4 | Pen or pencil | 1 Pc per Candidate |
| Items to be Evaluated | Marks Available | Marks Obtained | Comments |
|---|---|---|---|
| TASK 1: Preparation and Setup | |||
| Candidate wears appropriate PPE if required (e.g., anti-static wrist strap) (Award 2 marks for correct PPE use or zero) | 2 | ||
| Candidate verifies system meets minimum software requirements (Award 1 mark each for checking CPU, RAM, disk space) | 3 | ||
| Candidate accesses installation media and prepares test environment (Award 1 mark each for locating media, connecting USB, opening setup folder) | 3 | ||
| Sub-Total | 8 | ||
| TASK 2: Installation and Configuration | |||
| Candidate installs the desktop application successfully (Award 4 marks for successful installation without errors) | 4 | ||
| Candidate configures basic application settings as per given instructions (Award 1 mark each for setting language, default save location, and user preferences) | 3 | ||
| Sub-Total | 7 | ||
| TASK 3: Software Testing Execution | |||
| Candidate performs black box testing on at least three key functions (Award 2 marks per function tested with valid inputs and outputs) | 6 | ||
| Candidate performs white box testing by reviewing application logic or code snippet (Award 5 marks for correctly identifying logic paths and testing conditions) | 5 | ||
| Candidate performs functional testing including boundary and error cases (Award 2 marks per functional test case documented and executed) | 6 | ||
| Sub-Total | 17 | ||
| TASK 4: Documentation and Reporting | |||
| Candidate documents test cases and results clearly in the test report (Award 5 marks for complete and accurate test documentation) | 5 | ||
| Candidate identifies and records any defects or challenges encountered (Award 4 marks for clear description of issues and suggested solutions) | 4 | ||
| Candidate submits a well-structured test report (Award 3 marks for professional formatting and completeness) | 3 | ||
| Sub-Total | 12 | ||
| PRODUCT CHECKLIST | |||
| Test report completeness and accuracy including test cases and results (Award 8 marks for fully meeting documentation standards with no errors) | 8 | ||
| Correct application of black box, white box, and functional testing techniques (Award 10 marks for correctly applied and demonstrated testing techniques) | 10 | ||
| Sub-Total | 18 | ||
| GRAND TOTAL | 62 | ||
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.