Project 2 - V&V SW Analysis II
Static Code Review Analysis
Static code review analysis is the process of examining source code without executing it to detect potential issues such as errors, vulnerabilities, and deviations from coding standards. It helps maintain high code quality, ensuring that the software is reliable, secure, and efficient.
Purpose of Static Code Review:
- Error Detection: Identifying coding mistakes that can lead to logical errors or system failures.
- Code Quality: Ensuring consistent coding practices that enhance readability and maintainability.
- Security Assurance: Detecting vulnerabilities like buffer overflows, unvalidated inputs, or insecure data handling.
Methods:
- Standard Compliance: Verifying adherence to coding standards (like MISRA C for automotive or CERT C for secure coding).
- Manual Review: Team members or peers review the code to find errors, focusing on logic, structure, and adherence to requirements.
Benefits:
- Automated Tools: Software tools like LDRA, PC-Lint, SonarQube, and Cppcheck automatically analyze the code for potential issues, code smells, and standard violations.
- Early Issue Detection: Reduces the cost and effort of fixing defects later in development.
- Enhanced Code Quality: Promotes best coding practices and consistency.
- Security Improvement: Identifies vulnerabilities before they can be exploited.
Integration Testing
- Knowledge Sharing: Facilitates knowledge transfer among team members during peer reviews.
Integration testing focuses on verifying the interaction between integrated modules or components of a software system. It is performed after unit testing and before system testing to check the communication and data flow between modules.
Objectives:
- Functional Verification: Ensures that integrated components work together correctly.
- Interface Testing: Checks data exchange and communication between modules.
Approaches to Integration Testing:
- Error Detection: Identifies issues like data mismatches, incorrect parameter passing, and protocol violations.
- Big Bang Integration Testing: All modules are combined simultaneously, and the system is tested as a whole. While quick, it is challenging to isolate defects.
- Incremental Integration Testing: Gradually integrates and tests modules. It can be further divided into:
- Top-Down Integration: Testing from higher-level components to lower-level ones, often using stubs.
- Bottom-Up Integration: Testing lower-level components first, with the use of drivers to simulate higher-level components.
Advantages:
- Hybrid (Sandwich) Integration: Combines top-down and bottom-up approaches for balanced testing.
- Effective Issue Identification: Detects interface issues that unit testing might miss.
- Gradual Testing: Easier to isolate defects during incremental integration.
- Early Feedback: Issues can be addressed before full system integration.
Please Find the attached PDF consisting the reports and procedure of the project