đ La programmation par contrats est impopulaire, malgrĂ© ses preuves dâefficacitĂ©. Pour la rendre sexy, des chercheurs ont envisagĂ© dâutiliser les contrats comme moyen de gĂ©nĂ©rer des tests avant le code, comme alternative Ă Behavior-Driven-Design. Ils ont Ă©videmment appelĂ© leur dĂ©couverte Contract Driven Design selon la coutume.
đ§ Des intercepteurs sont utilisĂ©s afin de vĂ©rifier que les prĂ©-conditions, les post-conditions et les invariants sont respectĂ©s sur le composant, dont seule lâinterface est visible. Le dĂ©pĂŽt git nâĂ©tant plus accessible, je nâai pas pu voir en dĂ©tail comment ces intercepteurs sont appelĂ©s par le moteur de tests, mais lâidĂ©e ressemble grosso modo au Property-Based Testing, apparu en 1997 dans la littĂ©rature et vers 2015 chez les praticiens.
đ€ PBT a lâavantage de ne pas encombrer le code avec les annotations contactuelles, qui doivent ĂȘtre maintenues et bloquent le refactoring. Ces annotations appartiennent plus naturellement au monde des tests quâau code. Le second inconvĂ©nient, pour qui veut concurrencer BDD, est lâopacitĂ© des contrats pour le client, alors que lâintĂ©rĂȘt de BDD est justement de pouvoir dialoguer avec lui sur un terrain commun. Enfin, lâexpĂ©rience contenue dans le papier est trĂšs faible, pour ne pas dire quâelle ne prouve rien.
SOURCE
Posthuma, Justus & Solms, Fritz & Watson, Bruce. (2022). The Impact of using a Contract-Driven, Test-Interceptor based Software Development Approach. 39-58. DOI:10.5121/csit.2022.120704.
Enzo Sandré
đ Lien public DOIs: 10.5121/csit.2022.120704