Information Communication Technology  ·  Level 5
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.
  • Carry out corrective measures to fix issues based on user requirements.
  • Confirm that computer software functions properly by following workplace procedures.

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.

2.1 Software testing

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.

2.1.1 Importance of software testing

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.

Ensuring software reliability

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.

Enhancing security

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.

Verifying compliance with requirements

Testing confirms that software complies with specifications and regulatory standards, such as data protection requirements that apply to personal information held in a system.

Reducing maintenance costs

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.

Improving user satisfaction

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.

2.1.2 Computer software testing techniques

Testing techniques provide structured approaches to assess different software aspects, enabling ICT technicians to apply appropriate methods depending on project scope and complexity.

Black box testing

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

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

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.

Performance testing

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

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.

2.1.3 Computer software testing tools

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

2.1.3.1 TestComplete

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:

  • Record and replay: Captures mouse and keyboard actions and turns them into a test that can be run again without manual effort.
  • Keyword-driven testing: Lets testers build tests from visual keyword steps, so staff with limited programming skill can create tests.
  • Scripting support: Allows tests to be written or edited in scripting languages such as JavaScript or Python for more complex checks.
  • Object recognition: Identifies screen elements such as buttons, text boxes and grids, so tests keep working when the layout changes slightly.
  • Test reporting: Produces logs showing which steps passed or failed, with screenshots that help developers locate a defect.

2.1.3.2 Selenium

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:

  • Selenium WebDriver: Controls a browser directly through code, imitating how a real user interacts with a page.
  • Selenium IDE: A browser add-on that records and replays tests, suitable for quick checks by beginners.
  • Selenium Grid: Runs the same tests on several browsers and machines at the same time, saving testing time.
  • Multiple languages: Tests can be written in languages such as Java, Python, C# and JavaScript.
  • Cross-browser testing: Supports major browsers such as Chrome, Firefox and Edge, confirming that a web system behaves the same for all users.

2.1.3.3 Appium

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:

  • Cross-platform testing: The same test approach can be applied to Android and iOS applications, reducing the work of writing separate tests.
  • App types supported: Tests native apps, hybrid apps and mobile web pages opened in a phone browser.
  • WebDriver protocol: Uses the same communication standard as Selenium, so testers who know Selenium learn Appium quickly.
  • Language choice: Test scripts can be written in common languages such as Java, Python and JavaScript.
  • Devices and emulators: Tests can run on real phones or on emulators, allowing checks on different screen sizes and versions of the operating system.

2.1.3.4 Postman

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:

  • Request builder: Allows testers to send requests such as GET, POST, PUT and DELETE and view the response in a readable form.
  • Collections: Groups related requests together so that a full sequence, such as login, search and update, can be run in order.
  • Environments and variables: Stores values such as server addresses and tokens, so the same tests can run on test and live systems.
  • Automated test scripts: Lets testers write checks in JavaScript, for example confirming that a response arrives with the expected status and fields.
  • Collection runner: Runs a whole collection at once and reports passed and failed checks, supporting regression testing of APIs.

2.1.4 Performing computer software testing

Executing software testing involves a structured sequence of activities that ICT technicians must follow to ensure thorough evaluation and documentation.

  1. 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.

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

  3. 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.

  4. 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.

  5. 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.

  6. 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.

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

Practice Questions

  1. Explain five reasons why software testing is essential in the Kenyan ICT sector. (10 marks)
  2. Compare and contrast black box and white box testing techniques, highlighting their applications in public service software. (10 marks)
  3. Identify and describe the use of four software testing tools suitable for testing a web-based retail application. (12 marks)
  4. Outline the steps involved in performing computer software testing and explain the purpose of each step. (15 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

Corrective measures are essential steps taken to identify, isolate, and resolve software faults that affect the performance or functionality of computer applications and systems. In the Kenyan ICT sector, where many institutions depend on software for daily op…

🔒2.3 Testing of computer software functionality

Testing computer software functionality is a critical phase in the software development lifecycle, ensuring that a program performs as intended before it is deployed in real-world environments. For ICT technicians in Kenya, who often support diverse organizati…

Chapter Summary

This 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.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. Define software testing and explain its importance in software development. (4 marks)
  2. List and describe four common software testing techniques used by ICT technicians. (8 marks)
🔒28 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 a critical activity for ICT technicians working in Kenyan county government offices. (4 marks)
  2. Identify and describe four common software testing techniques used to verify computer software functionality. (4 marks)
🔒25 more in this section.

Chapter Practical Activities

Practical 1: Explain and perform basic manual software testing on a sample application

Information Communication Technology · Level 5
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 and document basic manual testing on the customer registration software version 1.0 with key test cases covering form validation, data saving, and error handling.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Test computer with Windows 10 OSSample customer registration software installer
Pen and notebookTest cases document
User manual
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Test computer with Windows 10 OS1 Pc per Candidate
2Sample customer registration software installer1 Pc per Candidate
3Test cases document for customer registration software1 Pc per Candidate
4User manual for customer registration software1 Pc per Candidate
5Pen and notebook for documentation1 Pc per Candidate
6PPE: Antistatic wrist strap1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
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-Total15
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-Total19
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-Total11
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-Total13
GRAND TOTAL58
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Apply software testing techniques on a given desktop application

Information Communication Technology · Level 5
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.  Apply black box, white box, and functional testing techniques on the supplied desktop application version 1.0 and document the test results in a test report.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Desktop computer with Windows 10 OS installedTest case documentation template
Installation media (USB flash drive)Pen or pencil
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Desktop computer with Windows 10 OS installed1 Pc per Candidate
2Installation media (USB flash drive) containing the desktop application setup files1 Pc per Candidate
3Test case documentation template (printed or digital)1 Pc per Candidate
4Pen or pencil1 Pc per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
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-Total8
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-Total7
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-Total17
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-Total12
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-Total18
GRAND TOTAL62
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

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

Create a free account
🔒Automated Software Testing Using Test Complete on Sample ApplicationPractical 3
🔒Automated Functional Testing of a Web Application Using SeleniumPractical 4
🔒Automated Mobile App Testing Using AppiumPractical 5
🔒API Testing Using Postman for a RESTful Web ServicePractical 6
🔒Functional Testing of Account Management Software v2.1Practical 7
🔒Identify and Apply Corrective Measures to Fix Software DefectsPractical 8
🔒Use Software Corrective Tools to Debug and Fix Errors in a Spreadsheet ApplicationPractical 9
🔒Perform Corrective Measures on Faulty Accounting Software v2.3Practical 10
🔒Plan and document software testing process for a new applicationPractical 11
🔒Set up an automated test environment integrating Test Complete, Selenium, and AppiumPractical 12
🔒Analyze software test results and report defects for a payroll system modulePractical 13
🔒Execute API testing and validate responses using PostmanPractical 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.
  • Carry out corrective measures to fix issues based on user requirements.
  • Confirm that computer software functions properly 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.