Using model checking to do test generation for RTEMS
Chris Johns
chrisj at rtems.org
Wed Sep 2 23:38:14 UTC 2020
On 1/9/20 2:30 am, Andrew Butterfield wrote:
> Dear all,
>
> I am involved the in the ESA sponsored project RTEMS-SMP, to add
> tools and data for software qualification. Our focus is on the use
> of formal techniques to assist in software verification.
Excellent :)
> We have a developed a prototype for an approach that uses the SPIN
> model-checker (spinroot.com) to produce formal models of RTEMS API
> behaviour, from which API tests can be generated. The formal models
> form one way of specifying the desired behaviour for these APIs.
Spin looks nice. Its maturity and wide host support looks great.
> We have developed a prototype demonstrator of this technique and are
> now seeking feedback from the community. It is expected that a
> suitably revised and updated version of this would become part of the
> proposed RTEMS qualification tool-chain.
>
> The demonstrator can be found at:
> https://github.com/andrewbutterfield/manual-spin2tests
The repo looks great. The approach looks suitable for our project.
> Feedback on all aspects of this from a range of different perspectives
> would be very welcome.
Will the results of your efforts be merged into the rtems-central repo?
Is there any relationship between the spec files Sebastian is creating for the
APIs and your work? If not how would they be kept in sync or at a minimum how
would we know they do not match?
How is the log from the test output used to validate the model?
I would like to see this work performed on a tier-1 architecture [1]. At this
point in time SPARC (and LEON) is not tier-1 because there are no test results
from hardware posted to build @ rtems.org. This leaves the ESA pre-qual project
with some choices. You could select a suitable target like a beagleboneblack and
post hardware test results or encourage other members of the pre-qual project to
run the testsuite on a LEON and post the results. We could then move SPARC and
LEON to tier-1, something I personally would love to see.
Thanks
Chris
[1]
https://docs.rtems.org/branches/master/user/hardware/tiers.html
https://git.rtems.org/rtems-tools/tree/config/rtems-bsps-tiers.ini
More information about the users
mailing list