How GPSBabel is Quality Assured
GPSBabel runs on several versions of Windows, Mac, and Linux and even a few other systems. Each version supports over 150 file formats and over 200 GPS receivers in addition to the approximately 20 filters. For the most part we allow you to convert from anything on that list to anything on that list, running it through any of those filters. Imagine the combinations we deal with! We apply best-of-class engineering practices to help keep our collective sanity.
- Automated regression testing.
- Continuous Integration with Travis CI via GitHub for GPSBabel. For each submit or GitHub pull request, Travis CI builds our project and runs our automated tests, so we know immediately if we bozoed something that used to work. Travis builds for Linux using both G++ and Clang and runs our full test suite.
- Continuous Integration via Appveyor provides the same level of testing, but for multiple build types on Windows 10.
- testo. During development, we have over 100 separate tests that run GPSBabel in over 400 different invocations, comparing output against known reference files. This runs using instrumented environments to look for leaks or overwrites or other problems. Additionally, we run our KML and gPX output through validators against the formal schemas to ensure our outputs never write anything that shouldn't be accepted by other readers.
- Static analysis.
- For both Clang and G++, we use high warning levels to help identify issues. As different versions have different warnings, we don't have an absolutely clean bill of health on all platforms, but we regularly address issues as we notice them. The combinations used by developers tend to have zero warnings and stay there.
- We make regular scans of the code with cppcheck
- We've started experimenting with Coverity. As of this writing, it's still giving a high number of false positives, but we're working with the Coverity team to improve both our products.
- Dynamic analysis.
GPSBabel is free software. It is free to download and use, and it's free to modify for your use, as it's distributed under the GNU Public License.
Supporting the project
We get a constant stream of requests to support new hardware, adding support for new OSes, and such. It costs a lot of time and money to buy GPS receivers, programs, and computers for development. You can help fund the next generation (hey, someone funded what's there now...) by supporting the project with your time or your donation. If you have a way you'd like to see the money spent (i.e. improving Mac support, new GPS models, etc.) please mention that in your submission. We appreciate all the help we can get