We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Continuous Regression Testing for Safer and Faster Refactoring in C++ - Pejman Ghorbanzade - CppCon
Discover how to ensure safer and faster refactoring in C++ through continuous regression testing, leveraging mechanisms like Tucca and snapshot testing, and integrating tests with CI plugins and actual hardware.
- Continuous regression testing is essential for safe and fast refactoring in C++ to reduce the risk of breaking changes.
- Mechanisms such as Tucca and snapshot testing can help identify regression errors, but snapshot testing has limitations, including storing output in a single file and difficulty in dealing with non-deterministic behavior.
- Infrastructure like Tucca provides a way to capture data points, serialize them, and submit them to a server for comparison.
- Continuous improvement requires long-term commitment and care from software teams.
- Regulatory compliance requires a safety case framework that defines the safety culture.
- Embedded software testing is challenging due to its complexity and difficulty in satisfying requirements.
- Simulation testing is important for verifying software behavior before deploying it to real-world environments.
- Continuous integration and testing can help reduce risks in software development.
- Partial template specialization and custom test frameworks can provide extension points for testing complex software systems.
- Test frameworks can be integrated with CI plugins and can be used to run tests on actual hardware, not just simulation.
- The cost of running tests can be noticeable, but modern cloud compute resources reduce the cost of running higher-level tests.
- Continuous testing and integration can help improve developer productivity and software quality.
- The real world is messy and complex, and software systems must be designed to be flexible and adaptable to changing constraints.
- Testing is cultural, and an organization’s testing habits reflect its team culture.
- Regressions are changes in software behavior that are not expected, and regression testing is important for identifying and preventing regressions.
- Hardware-in-the-loop testing is a way to test software on actual hardware, which can be more effective than simulation testing.
- The broken windows theory suggests that if we ignore minor issues, they can lead to more significant problems.
- Continuous testing and integration require mechanisms like Tucca to help identify regression errors and provide feedback on code changes.
- Embedded software development often requires custom code and specialized testing frameworks.