QuviQ testing tools…

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 help you generate your test cases automatically and cover every corner case for you.

  • Thousands of tests automatically generated from a property that ought to hold for your software,
  • Controlled random generation, testing within your borders of interest,
  • Failing test cases are automatically simplified.

QuickCheck can be applied on different test levels: system testing, integration testing and unit testing.

A perpertual floating licence starts from 7200 euro. When ordering in combination with our expert help creating QuickCheck models and training your engineers, licences are substantially discounted. Contact sales to discuss your needs and expectations.

QuickCheck for Erlang and Elixir

QuickCheck for Erlang and Elixir

For the Erlang and Elixir community, QuickCheck offers specific support for finding race-conditions by generating repeatable random schedules. QuickCheck supports mocking of Erlang functions in the precense of random test cases and mix tasks make it smoothly integrate in Elixir’s workflow.

QuickCheck for C and C++

QuickCheck for C and C++

For C and C++ programmers we have a smooth integration of QuickCheck. You write your properties or QuickCheck models in Erlang, a high-level functional language that suits specifications well. You test against a C API, provided in a C header file. All marshalling and unmarshalling is automatically taken care of; QuickCheck links with your C library and calls your C API.

The demo below shows how this works for simple examples in which we use unit testing. In projects with Ericsson and Volvo we have demonstrated that this scales well to system testing with millions of lines of C code.

QuickCheck Automotive

QuickCheck Automotive

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.

QuickCheck Automotive is enhanced with libraries that understand the AUTOSAR standard, which have been used to develop models for much of the AUTOSAR Basic Software. We can offer up-to-date models for COM, CAN, and LIN, for AUTOSAR standard versions 4.0.2 and 4.0.3 …and we can develop new models on demand. Our models not only clarify the meaning of the standard documents themselves, in a precise and testable way, but they have proven highly effective at revealing faults even in “production ready” implementations.

Simulink

We offer QuickCheck integration with Simulink. QuickCheck data generators are simulink blocks that can be added to your existing Simulink models. The property to specify is that your requirements are met. The requirements are what you have to add, from that, sequences of signals are generated that try whether your requirements really hold.If a requirement does not hold, we shrink the test vectors to a minumum to simplify debugging.

QuickCheck for Web Services

Web Services

Testing web services with QuickCheck is a good fit. We have good support for JSON, SOAP, Web Driver and other web technology. Writing QuickCheck models in Elixir makes adoption by Ruby programmers easier and our off-the-shelf models for standard protocols may be attractive to engineers doing advanced TLS, TCP/IP or other development.

QuickCheck for other languages and APIs

We have tested a varierty of software written in Java, C#, Python or other languages. Connecting our framework to any of these languages is not hard. What we do require, though, is that the specification language either is Erlang or Elixir. This is not an absolute requirement, we have shown that we can port our QuickCheck version to other languages as well, for example Apple’s Swift for iOS. But, we believe the advantages that a functional language offers in writing specifications are more valuable than other benefits in using the same language for implementation and specification.