If software quality matters to you, QuickCheck can help you find bugs early. Developers specify properties of your embedded system and QuickCheck then automatically generates and executes test cases. Better testing, less effort:
You can never write a test for every possible bug–and if you try, you will soon encounter diminishing returns. Don’t fall into that trap, let QuickCheck generate your test cases and cover every corner case for you.
Modern cars contain many software components from a variety of vendors. For a car to function properly it is important that these components work together. The AUTOSAR standard has been established to ensure interoperability between automotive software components. QuickCheck for Automotive can quickly check if a software component adheres to the AUTOSAR specification.
Quviq found more than 200 faults in AUTOSAR Basic Software, including more than 100 inconsistencies in the standard itself.
Tired of writing and maintaining thousands of automated tests? Did you know that repeating tests finds only 15% of your bugs anyway? Let QuickCheck generate new tests for you daily, saving you effort and nailing your bugs earlier!
QuickCheck takes you quickly from specification to identified bug.
We help you in finding general properties that your software should fulfill. We then generate thousands of test cases for you based on those properties. Even better, if we find a bug, we automatically make the test case as small as possible. This makes debugging a lot easier.
At LambdaJam in Chicago, Joe Norton described how he used QuickCheck to track down a bug in the background compaction that is part of Google’s LevelDB database. The bug is quite amazing: it required a long sequence of API calls to provoke it, but even so QuickCheck could find a minimal failing test in a few minutes. Joe’s talk gives a nice overview of QuickCheck as well, and good advice on how to get started with property-based testing....Learn More
Race conditions are among the worst kind of problem to debug: they tend to appear only rarely and unrepeatably, often arise only in long running cases in production, and leave little evidence of what went wrong. Mnesia is a database written in Erlang that is used by for example in telecommunication equipment and financial transaction databases. Erlang is not immune to race conditions, despite its excellent support for concurrency. Race conditions can give rise to rare intermittent failures in software such as mnesia. Mnesia was known to fail “once every month or two” in production, and race conditions are one likely cause. We extended QuickCheck with features to generate concurrent unit tests to provoke race conditions, and shrink them to minimal examples. With less than 200 lines of QuickCheck code, we were able to generate concurrent tests of dets, the disk storage layer of mnesia, and provoke five separate race conditions in short order. The technique is easy to apply to any software specified by a QuickCheck state-machine. This not only means that we can find these kind of concurrency errors easily, it also means we can find them quicker, by already addressing them at the unit testing...Learn More
Volvo Cars chooses QuviQ QuickCheck to certify embedded basic software. Volvo Cars has a certification strategy for the “operating system” that provides basic services on the microprocessors in cars. Software supplied to Volvo will be certified compliant with the AUTOSAR 4.0 standard by SP, the Swedish standards agency, to ensure that implementations from different suppliers work well together. Certification is based on millions of tests generated by QuickCheck from models developed at Quviq. Even though these models are still under development, 95 issues have already been identified, many reflecting ambiguities in the standard itself. QuviQ is delighted to contribute to the safety and reliability of future Volvos in this...Learn More
Speaking in front of 300 delegates at the Stockholm Erlang User Conference in Stockholm, Graham Crowe from Ericsson described how QuickCheck has been used in the development of Ericsson’s new LTE (“4G”) radio base stations. Graham discovered QuickCheck while working with Ericsson’s 3G base station, at a time when a new test environment based on Erlang was just being introduced. He was impressed with Erlang’s concurrency–perfect for testing a highly concurrent product like a base station–and also with QuickCheck. When he joined the LTE project in early 2007, he built the Generic Test Environment for the project–for white box, black box, and load testing–with QuickCheck specifically in mind. Graham emphasized the importance of generating test cases from a specification, rather than limiting testing to particular scenarios, calling QuickCheck “the testing of the future”. We at Quviq are happy to be able to help Ericsson deliver quality for the new generation mobile networks! Graham’s slides can be...Learn More
In conjunction with the Erlang Factory in London, QuviQ released QuviQ QuickCheck Mini, a free version of QuviQ’s product with a selection of features comparable to other free versions such as Haskell QuickCheck. QuickCheck Mini makes QuviQ’s technology for simplifying failing test cases available to a wide audience, and it can be freely used for testing personal, open source, or commercial software. We are releasing it in the hope that it can help the Erlang community discover the benefits of property-based testing, and develop even better software as a result. QuickCheck Mini can be downloaded from QuviQ’s web site here; for a comparison of features with the full version look here. Try it out and have...Learn More