The importance of Continuous Integration and Continuous Testing

Bill McCaffrey

April 13, 2016

Last month Tesla Motors CEO Elon Musk unveiled the $35,000 Tesla Model 3, calling it "a mass-market, affordable car" that can also drive "at least 215 miles" without recharging. The response has been overwhelming. To date, more than 325,000 potential buyers have plunked down $1,000 to reserve a Model 3 of their own. 

Despite production delays and reliability issues on both the Model S and Model X vehicles, the company is confident that production on the Model 3 will begin as planned in 2017. On a recent conference call for Tesla shareholders and the media, Musk noted that there had been “dramatic improvements in reliability." 

“Reflecting our philosophy of continuous improvement, we have not relaxed our pursuit of making the world’s most reliable cars. The cost of first-year repair claims on cars produced in 2015 was at about half the level of cars produced in 2014, and about one quarter the level of cars produced in 2012.” 

By design, Tesla vehicles are sophisticated computers on wheels. According to Musk, “Tesla is a software company as much as it is a hardware company. A huge part of what Tesla is, is a Silicon Valley software company. We view this the same as updating your phone or your laptop.” 

Tesla vehicles receive free software updates through a wireless link. The company’s design approach looks at a vehicle as an electronic device rather than a mechanical machine. Cars are simply platforms for applications that can change or enhance their functions. 

These software updates go much further than simply changing dashboard colors or icons on a screen. Instead, they have the ability to modify major elements of the car from acceleration to environmental controls to safety functions. This represents a significant departure from the traditional approach to automotive development. Rather than waiting until the next model year to roll out improvements, Tesla continuously improves its products with software updates. 

Continuous integration and continuous testing are at the forefront of software-led businesses. The goal is to develop code faster and more efficiently without compromising quality. It provides developers with fast and continuous feedback on the quality of the latest build or release candidate. Since testing is done continuously, risks are quickly exposed allowing development teams to prevent problems from progressing to the next stage of development. This greatly reduces the cost, time, and effort finding and correcting defects. 

In order to deliver high-quality software faster and reliably, testing must be correct, complete and repeatable. VectorCAST accelerates product development and deployment through continuous (test only what has changed) testing and continuous integration. The Functional and Unit, System and Integration Testing capabilities of VectorCAST help engineers prove that the software they are testing performs correctly according to its requirements, and Code Coverage Analysis ensures that testing is complete across all forms of testing. Change-based testing can be used to quickly identify code changes and run only the tests associated with those changes (vs. re-running all tests again), significantly reducing time from days to minutes. 

For more information on change-based testing, download our whitepaper today.