SOFTWARE AND SYSTEMS DEVELOPMENT 8.4 TESTING STAGE
WHAT IS SYSTEM TESTING
Test is the process of checking everything with your finished product works as expected. With both physical products and software, rigorous and methodical testing needs to be done. There are various methods and stages of testing that are covered in this section.
SOFTWARE TESTING AND DEBUGGING
One of the first stages of testing when developing software is debugging, checking if each aspect of your program works as expected, checking the links, navigation, buttons, user entry boxes and data validation are all working. A test table is a good method of methodically testing each element of your program, a test table could include columns such as.
Success Criteria Number - linking back to your original plan.
Action to test
Test data - how will you test it
Test type - what type of data or action are you using
Expected outcome - what should happen if the program is working correct
Actual Outcome - what did happen in the test
Action needed - do any changes need to be made
TEST TABLE
The example below shows the type of data that could go in each column.
FREE TO DOWNLOAD: TEST TABLE TEMPLATE
QUALITY CONTROL
In this critical phase in the Software Development Life Cycle (SDLC) the developed software is systematically evaluated to identify defects, ensure functionality, and verify that it meets the specified requirements. The primary goal of the testing stage is to ensure the software's quality, reliability, and performance before it is deployed and used by end-users.
The testing stage typically involves the following activities:
Test Planning: In this phase, the test strategy is defined, and a test plan is developed. The test plan outlines the testing scope, objectives, resources, schedule, deliverables, and the types of tests to be conducted.
Test Case Development: Test cases are created based on the requirements and design documents. Test cases consist of test inputs, expected outputs, and the criteria for determining if a test has passed or failed.
Test Environment Setup: A testing environment is set up to simulate the real-world conditions in which the software will be used. This environment includes hardware, software, network configurations, and any other necessary tools.
Test Execution: Test cases are executed against the software under test. Testers follow the test plan and use the test cases to verify if the software behaves as expected, documenting any discrepancies or defects discovered.
Defect Reporting and Tracking: When defects are identified, they are reported to the development team and tracked through a bug tracking system. The development team then works to fix these defects, and the updated software is retested to ensure the issues have been resolved.
Test Closure: Once all tests have been executed, and defects have been addressed, the testing phase is concluded. A test closure report is generated, summarizing the test results, defects, and any other relevant information.
Various types of testing can be employed during the testing stage, including:
Unit Testing: Testing individual components or modules in isolation to ensure they function correctly.
Integration Testing: Testing the interaction between different components or modules to ensure they work together as expected.
System Testing: Testing the complete system as a whole to validate its functionality, performance, and reliability.
User Acceptance Testing (UAT): Testing the software with real users to ensure it meets their needs and expectations.
The testing stage plays a crucial role in ensuring the quality and reliability of the software before deployment. By identifying and addressing defects early in the development process, testing helps minimize the risk of issues arising after the software has been deployed, ultimately leading to improved user satisfaction and reduced maintenance costs.
1: Which of the following is the primary objective of the testing stage in the SDLC? a) Gathering user requirements b) Designing the software architecture c) Identifying and fixing defects in the software d) Deploying the software to end-users
2: Which type of testing is performed by developers to verify the functionality of individual code components? a) Unit testing b) Integration testing c) System testing d) Acceptance testing
3: What type of testing focuses on combining individual code components to ensure they work together correctly? a) Unit testing b) Integration testing c) System testing d) Acceptance testing
4: Which type of testing is conducted to validate that the entire software application meets the specified requirements and functions correctly? a) Unit testing b) Integration testing c) System testing d) Acceptance testing
5: Which type of testing is performed by end-users or clients to ensure that the software meets their needs and expectations? a) Unit testing b) Integration testing c) System testing d) Acceptance testing
6: Which of the following testing techniques involves manually testing the software without following a predefined set of test cases? a) Black-box testing b) White-box testing c) Gray-box testing d) Exploratory testing
7: Which testing technique is based on the tester's knowledge of the underlying code and focuses on testing the internal structure of the software? a) Black-box testing b) White-box testing c) Gray-box testing d) Exploratory testing
8: Which testing technique involves testing the software's functionality without knowledge of the internal code structure? a) Black-box testing b) White-box testing c) Gray-box testing d) Exploratory testing
9: Regression testing is primarily performed to: a) Test new features in the software b) Verify that previously tested functionality still works correctly after changes or updates c) Validate the software's performance under load d) Ensure the software meets usability requirements
10: Which type of testing is used to identify vulnerabilities and weaknesses in the software's security? a) Compatibility testing b) Performance testing c) Security testing d) Usability testing