Featured Webinar: AI-Enhanced API Testing: A No-Code Approach to Testing | Watch Now
Software System Testing
System testing tests the system as a whole. Once all the components are integrated, the entire system is tested rigorously to verify it meets the specified functional, safety, security, and other nonfunctional requirements.
Specialized testing teams perform this type of testing in safety-critical software. System testing falls within the scope of black box testing. As such, it shouldn’t require any knowledge of the inner design of the code or logic.
An important distinction with system level testing is the system is tested in an environment that is close to the production environment where the application will be deployed. At this stage, specific safety functions are validated, and system wide security testing is run.
Automotive System Testing at the Service Level
Individual systems within an automobile may not be considered part of a service. However, connectivity into larger systems means they should be. For example, in an automobile, the role of the engine control unit (ECU) alone is to ensure proper combustion and emissions in the engine, but the car is tracking fuel economy, using the ECU, and reporting it to a central server over a wireless connection.
This mileage data is then used to plan routes and estimate operating costs. Suddenly, the ECU is a critical leaf node in a business decision making process.
Instead of viewing system quality in terms of meeting individual device requirements, the scope is broadened to consider the quality of the services provided. Testing at the service level ensures nonfunctional requirements are met. For example, performance and reliability are difficult to assess at the device level or during software unit testing. Service based testing can simulate the operational environment of a device to provide realistic loads. In the HVAC example, the new temperature sensor can be tested with varying request rates to see if it meets performance requirements.
Security is a significant concern in automotive systems. Cyber attacks most likely originate from the network itself by attacking the exposed APIs. Service based testing can create simulated environments for robust security testing, either through fuzzing (random and erroneous data inputs) or denial-of-service attacks. A new temperature sensor in the HVAC example might operate correctly with expected requests, but crash when overloaded. An attacker might be able to exploit this to overload the system and cause an outage.
Virtual Test Environment and Service Level Testing
A real test lab requires the closest physical manifestation of the environment in which an automobile is planned to work. Even in the most sophisticated lab, it’s difficult to scale to a realistic environment. A virtual lab fixes this problem.
Virtual labs evolve past the need for hard-to-find (or non-existent) hardware dependencies. They use sophisticated service virtualization with other key test automation tools.
Service Virtualization
Simulates all the dependencies needed by the device under test to perform full system testing. This includes all connections and protocols used by the device with realistic responses to communication. For example, service virtualization can simulate an enterprise server backend that an automobile communicates with. Similarly, virtualization can simulate a dependent system, like traffic or weather data, in a realistic manner.
Service and API Testing
Provide a way to drive the system under test in a manner that ensures the services it provides (and APIs provided) are performing flawlessly. These tests can be manipulated via the automation platform to perform performance and security tests as needed.
Test Lab Management and Analytics
Provide the overarching control of the virtual labs. Once virtualized, the entire lab setup can be replicated as needed and test runs can be automated and repeated. Analytics provide the necessary summary of activities and outcomes.
Runtime Monitoring
Detects errors in real time on the system under test and captures important trace information.
Elevate your software testing with Parasoft solutions.
Explore the Chapters
- Introduction »
- 1. Overview »
- 2. Static Analysis »
- 3. MISRA »
- 4. AUTOSAR C++ 14 »
- 5. SEI/CERT »
- 6. CWE »
- 7. Unit Testing »
- 8. Regression Testing »
- 9. Software Integration Testing »
- 10. Software System Testing »
- 11. Structural Code Coverage »
- 12. Requirements Traceability Matrix »
- 13. Tool Qualification »
- 14. Reporting & Analytics »