Skip to main content

2019 | OriginalPaper | Buchkapitel

Tame Your Annotations with MetAcsl: Specifying, Testing and Proving High-Level Properties

verfasst von : Virgile Robles, Nikolai Kosmatov, Virgile Prevosto, Louis Rilling, Pascale Le Gall

Erschienen in: Tests and Proofs

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

A common way to specify software properties is to associate a contract to each function, allowing the use of various techniques to assess (e.g. to prove or to test) that the implementation is valid with respect to these contracts. However, in practice, high-level properties are not always easily expressible through function contracts. Furthermore, such properties may span across multiple functions, making the specification task tedious, and its assessment difficult and error-prone, especially on large code bases. To address these issues, we propose a new specification mechanism called meta-properties. Meta-properties are enhanced global invariants specified for a set of functions, capable of expressing predicates on values of variables as well as memory related conditions (such as separation) and read or write access constraints. This paper gives a detailed presentation of meta-properties and their support in a dedicated Frama-C plugin MetAcsl, and shows that they are automatically amenable to both deductive verification and testing. This is demonstrated by applying these techniques on two illustrative case studies.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
This feature relies on the Frama-C plugin Callgraph, which makes gross over-approximations of these sets in the presence of indirect calls (i.e. function pointers).
 
2
Technically, Post can only be used in assigns statements or contract post-conditions.
 
3
The case studies and their specifications are available at https://​huit.​re/​metatap.
 
4
We assume a total order for simplicity, but it would also work with a partial one.
 
6
For example, simplification saves 8 s on the deductive verification of the correct confidentiality implementation (for a total of 24 s).
 
7
The last row is not relevant for deductive verification, see Sect. 6.2.
 
8
E-ACSL add checks to ensure that no runtime error (segfaults, overflow, ...) will occur and stops the program upon violation.
 
Literatur
1.
Zurück zum Zitat Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: a software analysis perspective. Formal Aspects Comput. 27, 573–609 (2015)MathSciNetCrossRef Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: a software analysis perspective. Formal Aspects Comput. 27, 573–609 (2015)MathSciNetCrossRef
5.
Zurück zum Zitat Signoles, J., Kosmatov, N., Vorobyov, K.: E-ACSL, a runtime verification tool for safety and security of C programs (tool paper). In: International Workshop on Competitions, Usability, Benchmarks, Evaluation, and Standardisation for Runtime Verification Tools, pp. 164–173 (2017) Signoles, J., Kosmatov, N., Vorobyov, K.: E-ACSL, a runtime verification tool for safety and security of C programs (tool paper). In: International Workshop on Competitions, Usability, Benchmarks, Evaluation, and Standardisation for Runtime Verification Tools, pp. 164–173 (2017)
6.
Zurück zum Zitat Petiot, G., Kosmatov, N., Botella, B., Giorgetti, A., Julliand, J.: How testing helps to diagnose proof failures. Formal Aspects Comput. 30, 629–657 (2018)MathSciNetCrossRef Petiot, G., Kosmatov, N., Botella, B., Giorgetti, A., Julliand, J.: How testing helps to diagnose proof failures. Formal Aspects Comput. 30, 629–657 (2018)MathSciNetCrossRef
8.
Zurück zum Zitat Cheon, Y., Perumandla, A.: Specifying and checking method call sequences in JML. In: International Conference on Software Engineering Research and Practice, pp. 511–516 (2005) Cheon, Y., Perumandla, A.: Specifying and checking method call sequences in JML. In: International Conference on Software Engineering Research and Practice, pp. 511–516 (2005)
10.
Zurück zum Zitat Stouls, N., Groslambert, J.: Vérification de propriéts LTL sur des programmes C par génération d’annotations. Research Report (French) (2011) Stouls, N., Groslambert, J.: Vérification de propriéts LTL sur des programmes C par génération d’annotations. Research Report (French) (2011)
11.
Zurück zum Zitat de Oliveira, S., Prevosto, V., Bensalem, S.: CaFE: a model-checker collaboratif. In: Approches Formelles dans l’Assistance au Developpement Logiciel (2017) de Oliveira, S., Prevosto, V., Bensalem, S.: CaFE: a model-checker collaboratif. In: Approches Formelles dans l’Assistance au Developpement Logiciel (2017)
13.
Zurück zum Zitat Pavlova, M., Barthe, G., Burdy, L., Huisman, M., Lanet, J.L.: Enforcing high-level security properties for applets. In: Quisquater, J.J., Paradinas, P., Deswarte, Y., El Kalam, A.A. (eds.) Smart Card Research and Advanced Applications VI. IFIP International Federation for Information Processing, vol. 153, pp. 1–16. Springer, Boston (2004). https://doi.org/10.1007/1-4020-8147-2_1CrossRef Pavlova, M., Barthe, G., Burdy, L., Huisman, M., Lanet, J.L.: Enforcing high-level security properties for applets. In: Quisquater, J.J., Paradinas, P., Deswarte, Y., El Kalam, A.A. (eds.) Smart Card Research and Advanced Applications VI. IFIP International Federation for Information Processing, vol. 153, pp. 1–16. Springer, Boston (2004). https://​doi.​org/​10.​1007/​1-4020-8147-2_​1CrossRef
Metadaten
Titel
Tame Your Annotations with MetAcsl: Specifying, Testing and Proving High-Level Properties
verfasst von
Virgile Robles
Nikolai Kosmatov
Virgile Prevosto
Louis Rilling
Pascale Le Gall
Copyright-Jahr
2019
DOI
https://doi.org/10.1007/978-3-030-31157-5_11

Premium Partner