Localisation des erreurs dans les applications web

ร‰TAT DE Lโ€™ART

Il existe un certain nombre dโ€™outils servant ร  tester les applications web. Dans ce chapitre, nous classons les approches existantes en quatre grandes familles quโ€™on nomme successivement :

outils de tests, approches visuelles, approches dรฉclaratives et outils RWD. Nous allons les exposer en donnant un peu plus de dรฉtails sur quelques outils relatifs ร  chaque famille dโ€™approches. Enfin, nous citons leurs points faibles en montrant leurs limites dans certains cas.

OUTILS DE TEST

La dรฉtection de bugs dโ€™interface peut dโ€™abord รชtre abordรฉe comme un problรจme de test logiciel classique. Sous cet angle, il se veut une gรฉnรฉralisation des fonctionnalitรฉs offertes par des logiciels dโ€™analyse de sites web comme Google Analytics 1 ou Piwik 2. Ces outils suivent les requรชtes HTTP et fournissent un tableau de bord pour analyser des donnรฉes de base : pays dโ€™origine, durรฉe dโ€™une session, etc. Cependant, ces outils ne gรจrent gรฉnรฉralement pas Ajax, ne peuvent pas รชtre utilisรฉs comme outils de test (ils nโ€™รฉvaluent pas les conditions sur le contenude la page par exemple) et ne signalent rien sur le contenu de la page, sur les actions de lโ€™utilisateur ou les requรชtes Ajax.

Les logiciels de test en ligne tels que Capybara, Selenium WebDriver, Watij ou Sahi sont plus proches de nos objectifs. Ces outils fournissent diffรฉrents langages pour dรฉcrire les tests et รฉcrire des assertions sur lโ€™application. Les scripts WebDriver sont รฉcrits en Java ; Capybara a sa propre API 3 dans le langage Ruby; Watij utilise WebSpec, 4 qui est une API dรฉfinie par-dessus Java (3.5 donne un exemple de test webspec-watij) ; et Sahi utilise SahiScript, une extension de JavaScript. 5 Tous ces langages sont impรฉratifs (cโ€™est-ร -dire procรฉduraux) et visent ร  piloter une application en effectuant des actions.

La partie test se rรฉduit ร  lโ€™insertion dโ€™instructions similaires ร  assert dans le code du script. A titre dโ€™exemple, la figure 3.1 donne un extrait de code Java pour Selenium WebDriver pour vรฉrifier que tous les รฉlรฉments satisfaisant un sรฉlecteur CSS sont ร  gauche.

CAPYBARA

Capybara est un framework dโ€™automatisation Web utilisรฉ pour crรฉer des tests fonctionnels qui simulent lโ€™interaction des utilisateurs ร  une application. Il constitue une bibliothรจque conรงue pour รชtre utilisรฉe sur un pilote Web sous-jacent (underlying web driver) tels que selenium-web driver, rack test driver ou capybara-webkit. Il fournit un DSL (Domain Specific Language) servant ร  dรฉcrire les actions exรฉcutรฉes par ces pilotes Web [30] Une fois la page est chargรฉe via le DSL et le pilote Web sous-jacent, Capybara essayera de localiser lโ€™รฉlรฉment pertinent dans le DOM (Document Object Model) et exรฉcutera une action, du genre : clics de boutons, de liens, etc. Son DSL dรฉployรฉ pour exprimer les actions ร  exรฉcuter est trรจs intuitif. la figure 3.2 montre quelques unes de ses commandes de base. Dans le but de trouver un รฉlรฉment[30], Capybara, par lโ€™intermรฉdiaire du DSL, cherchera dans le DOM, les attributs suivants :
โ€” Champ de texte (fill_in) : id, name, รฉlรฉment dโ€™รฉtiquette associรฉ (label).
โ€” Cliquez sur un lien/bouton (click_link/ click_button) : id, titre, texte dans la balise, valeur.
โ€” Case ร  cocher/bouton radio/liste dรฉroulante (check/ uncheck/ choose/ select) : id, nom, รฉlรฉment dโ€™รฉtiquette associรฉ (label).
โ€” Tรฉlรฉcharger le fichier (attach_file) : id, nom.

WATIJ

Watij ou Web Application Testing en Java est un projet de test, implรฉmentรฉ en Java, destinรฉ ร  automatiser les tests fonctionnels des applications Web au-dessus de IE (Internet Explorer). Il est basรฉ sur la conception de Watir [33] et possรจde une capacitรฉ de recherche dโ€™รฉlรฉments lui permettant de trouver, dโ€™accรฉder et de contrรดler facilement nโ€™importe quel รฉlรฉment HTML ร  travers le DOM en mobilisant lโ€™interface COM. Il prend en charge, dโ€™autre part, les expressions XPath pour trouver les รฉlรฉments HTML sur une page et gรจre les pop-up (fenรชtres contextuel du navigateur) en les interceptant et les rendant disponibles pour lโ€™interaction. Watij peut dรฉtecter la fin du chargement dโ€™une page en cours de chargement.Watij dispose dโ€™un ensemble relativement riche dโ€™API pour lโ€™รฉcriture de scripts de simulation. La connexion ร  un site Web exige ร  chaque fois, des informations tel que le nom de lโ€™utilisateur et le mot de passe (page de connexion (login) de Yahoo figure 3.4).

Les tรขches manuelles demandรฉes, dans ce cas, ร  lโ€™utilisateur sont les suivantes :
1. Afficher une fenรชtre de navigateur ;
2. Mettre lโ€™URL correcte pour ouvrir cette page ;
3. Attendre que la page se charge et se stabilise ;
4. Taper le nom dโ€™utilisateur dans le champ ID ;
5. Taper le mot de passe ;
6. Cliquer sur le bouton Connexion.

Le code appropriรฉ pour automatiser les tests fonctionnels de ces รฉtapes, en utilisant Watij, est donnรฉ dans la figure 3.3.

SAHI

Sahi est un outil open source dโ€™automatisation et de test dโ€™applications web. En tant quโ€™outil dโ€™automatisation, Sahi offre la possibilitรฉ dโ€™enregistrer et de lire des scripts. Il prend en charge Java et JavaScript. Mรชme si SahiScript ressemble ร  JavaScript, il nโ€™est pas exรฉcutรฉ comme le JavaScript normal dans le navigateur. Lโ€™idรฉe de base du fonctionnement de Sahi est dรฉcrite ci-dessous : les parties centrales de Sahi montrรฉs dans la figure 3.7 incluent le serveur proxy Sahi et le moteur JavaScript.

Les rรฉponses HTML qui transitent par le proxy sont modifiรฉes de telle sorte que JavaScript soit injectรฉ au dรฉbut et ร  la fin de la rรฉponse. Cela permettra au navigateur dโ€™enregistrer et de lire les scripts et de communiquer avec le proxy en cas de besoin. En plus de la gestion des demandes de pages du navigateur, Sahi gรจre รฉgalement les commandes personnalisรฉes liรฉes ร  lโ€™enregistrement, ร  la lecture, etc ; envoyรฉes par celui-ci.

Les fonctionnalitรฉs propres de Sahi, font de lui un bon support des fichiers de base de donnรฉes, supportant JavaScript, AJAX ainsi que les API simples, Outre ses fonctionnalitรฉs normales, ร  lโ€™รฉgard de la prise en charge de ยซ ant ยป(lโ€™outil logiciel). Du fait que ses API ne dรฉpendent pas beaucoup de la structure HTML, le contrรดleur Sahi (IDE) peut รชtre utilisรฉ dans diffรฉrents navigateurs. Sahi qui nโ€™utilise pas XPath, renferme des API tels que : _ near, _in, etc, lโ€™aidant ร  trouver un รฉlรฉment par rapport ร  un autre. ยซ SahiScript ยป est fondรฉ sur JavaScript.

Il est analysรฉ par Sahi et exรฉcutรฉ par le moteur JavaScript rhino. La figure 3.6 illustre un exemple de constructions (exemple dโ€™รฉcriture de conditions) dans Sahi. Elles sont identiques ร  JavaScript hormis le $ obligatoire utilisรฉ dans les variables.

De plus, tous les outils mentionnรฉs ci-dessus (ร  lโ€™exception de Sahi) nรฉcessitent un plugin spรฉcifique au navigateur pour fonctionner, et ne supportent donc quโ€™une poignรฉe de navigateurs, en gรฉnรฉral les ยซ Big Five ยป (Firefox, Safari, IE, Opera et Chrome). Cependant, la part de marchรฉ des navigateurs autres que ceux-ci รฉquivaut ร  20%, et sโ€™รฉlรจve ร  63% pour les appareils autres que les ordinateurs de bureau (tablettes, consoles et mobiles). 6. En dehors de Sahi, ces outils de test nโ€™atteignent pas plus des trois quarts du marchรฉ, et pour certains, seulement 25% pour les appareils autres que les ordinateurs de bureau. Par consรฉquent, lโ€™affirmation selon laquelle ยซ la plupart des utilisateurs ยป sont pris en charge par eux est ร  peu prรจs non fondรฉe.

APPROCHE VISUELLE

Pour dรฉceler les dรฉfauts dans la mise en page, lโ€™outil principal dรฉployรฉ par ce genre de techniques est gรฉnรฉralement la vision par ordinateur. Ces derniรจres consistent entre autres, en la dรฉlimitation des bordures des รฉlรฉments par la dรฉtection des contours et en la dรฉcouverte des changements par le calcul de la diffรฉrence entre deux captures dโ€™รฉcran dont les couleurs du texte des arriรจre-plans seront comparรฉes pour repรฉrer le texte illisible. Au lieu dโ€™agir sur des informations spรฉcifiques ร  la mise en page, telles que la taille et la position des รฉlรฉments, ces techniques sont basรฉes sur la comparaison des captures dโ€™รฉcran, pixel par pixel. Dans ce cas, les erreurs sous la forme dโ€™une capture dโ€™รฉcran sont signalรฉes et clairement marquรฉes.

WEBSEE

Certains travaux ont รฉgalement รฉtรฉ rรฉalisรฉs sur lโ€™utilisation des techniques dโ€™analyse dโ€™image pour identifier les problรจmes de mise en page [69]. WebSee [58] est en particulier, un outil implรฉmentรฉ en Java qui utilise plusieurs bibliothรจques tierces pour implรฉmenter certains des algorithmes spรฉcialisรฉs. Il applique des techniques du domaine de la vision par ordinateur pour analyser la reprรฉsentation visuelle des pages Web pour dรฉtecter automatiquement et localiser les รฉchecs de prรฉsentation. WebSee identifie les รฉchecs de prรฉsentation, puis dรฉtermine les รฉlรฉments dans la source HTML de la page qui pourraient รชtre responsables des รฉchecs observรฉs en comparant la reprรฉsentation visuelle de la page Web rendue sous test et son apparence dโ€™origine (oracle).

A cette fin, WebSee prend en entrรฉe le code HTML/CSS de la page ร  analyser et un oracle (une image) du rendu attendu de la page. Un ensemble de diffรฉrences entre la page rendue et lโ€™image de rรฉfรฉrence est calculรฉ, et ces diffรฉrences sont ensuite regroupรฉes en groupes susceptibles de reprรฉsenter diffรฉrents dรฉfauts sous-jacents dans la page. Une deuxiรจme phase de traitement tente dโ€™identifier les รฉlรฉments HTML correspondant aux pixels de diffรฉrence, qui sont ensuite ordonnรฉs par une mรฉtrique de prioritรฉ et envoyรฉs ร  lโ€™utilisateur. La figure 3.8 montre les diffรฉrentes phases de lโ€™approche : La premiรจre entrรฉe est la page web (P) qui devrait รชtre analysรฉ pour dรฉterminer les dรฉfaillances de prรฉsentation. La forme de P est une URL qui pointe vers soit un emplacement sur le rรฉseau ou dโ€™un systรจme de fichiers oรน tous les fichiers HTML, CSS, JavaScript, et les fichiers mรฉdias de P sont accessibles.

La deuxiรจme entrรฉe est lโ€™oracle (O) qui spรฉcifie les propriรฉtรฉs dโ€™exactitude visuels de P. La forme de O est une image qui peut รชtre soit une maquette ou une capture dโ€™รฉcran dโ€™une version correcte de P.

PHANTOMCSS

PhantomCSS [20] est un framework de test dโ€™interface graphique open source qui possรจde la capacitรฉ de situer les changements dโ€™une itรฉration ร  une autre par des algorithmes diffรฉrant sur deux images. Dโ€™autre part, il permet dโ€™exclure certaines parties de lโ€™interface graphique du test. Les pages Web susceptibles dโ€™afficher des donnรฉes non contrรดlรฉes par le dรฉveloppeur et des รฉlรฉments tels que des annonces Web, des donnรฉes utilisateur, des banniรจres animรฉes, des images et du texte, trouvent dans ces caractรฉristiques un instrument bรฉnรฉfique. Le dรฉveloppeur dans ce cas est obligรฉ de spรฉcifier manuellement les parties de lโ€™interface graphique non concernรฉes par les tests en nommant lโ€™รฉlรฉment en question, ou le spรฉcifiant ses coordonnรฉes x et y.

SIKULI

Un autre framework dโ€™automatisation est Sikuli [39], qui identifie et manipule les contrรดles de lโ€™interface graphique dans une page web en utilisant la recherche par image (sub-image searching). Les captures dโ€™รฉcran constituent la base de cette approche visuelle pour la recherche et lโ€™automatisation des interfaces utilisateurs. Elle permet aux utilisateurs :
โ€” de prendre une capture dโ€™รฉcran dโ€™un รฉlรฉment de lโ€™interface graphique (comme un bouton de la barre dโ€™outils, une icรดne ou une boรฎte de dialogue) ;
โ€” dโ€™interroger un systรจme dโ€™aide en faisant appel ร  la capture dโ€™รฉcran au lieu du nom de lโ€™รฉlรฉment;
โ€” de fournir รฉgalement une API de script visuel pour automatiser les interactions de lโ€™interface graphique, par lโ€™intermรฉdiaire des modรจles de capture dโ€™รฉcran pour diriger les รฉvรฉnements de la souris et du clavier.

Dans lโ€™exemple montrรฉ dans la figure 3.11, le bouton de fermeture doit effacer le contenu de la zone de texte ainsi que lui-mรชme. Supposons que lโ€™interface graphique soit dรฉjร  dans un รฉtat qui contient un ยซ 5 ยป, au dรฉbut nous trouvons la zone de texte bleue sur lโ€™รฉcran et stockons la rรฉgion correspondante qui a la plus grande similaritรฉ dans la zone bleue. Ensuite, aprรจs avoir cliquรฉ sur le bouton de fermeture, deux assert Not Exist sont utilisรฉs pour vรฉrifier la disparition dans la zone bleue [39].

APPLITOOLS

La segmentation pure de lโ€™image des pages Web et la comparaison visuelle pixel par pixel sont ร  lโ€™origine de lโ€™outil commercialisรฉ AppliTools Eyes [2], qui offre une interaction des scripts de test crรฉes par lโ€™utilisateur et son application. Dans cet outil, le serveur Web est chargรฉ de tรฉlรฉcharger les captures dโ€™รฉcran en appliquant un algorithme de diffรฉrence dโ€™image entre lui et une capture dโ€™รฉcran prรฉcรฉdente. La diffรฉrence entre les deux images est traduite par AppliTools par une dรฉtection des rรฉgressions dans une mise en page GUI. Ces changements dans une interface Web sont exploitรฉs par le dรฉveloppeur pour actualiser lโ€™image de base dans le cas oรน le changement รฉtait intentionnel.

Cependant, cette approche est orientรฉe vers la dรฉtection de bugs de type statique de chevauchement ou de dรฉbordement des รฉlรฉments dans un document, et actuellement ne supporte pas la vรฉrification de modรจles temporels ร  travers plusieurs instantanรฉs de la mรชme page. De plus, lโ€™approche gรฉnรจre beaucoup de faux positifs si la page rendue contient du texte lรฉgรจrement diffรฉrent de lโ€™image de rรฉfรฉrence. Cโ€™est le cas lorsque, par exemple, la fenรชtre du navigateur a des dimensions diffรฉrentes et que le texte sโ€™รฉcoule diffรฉremment (mais pas nรฉcessairement incorrectement) par rapport ร  lโ€™image. Pour rรฉsoudre ce problรจme, lโ€™utilisateur doit dรฉfinir manuellement, pour chaque oracle, ce que lโ€™on appelle des rรฉgions dynamiques qui devraient รชtre ignorรฉes par le systรจme lors de lโ€™analyse de la page.

APPROCHE Dร‰CLARATIVE

Les techniques dans cette derniรจre famille fonctionnent directement sur des informations sur la mise en page. Elles peuvent obtenir des informations sur les รฉlรฉments (position, largeur et hauteur) impliquรฉs dans lโ€™interface graphique, que ce soit par analyse dโ€™image ou par ยซ siphonnage ยป (scraping) de lโ€™interface graphique. Cโ€™est dโ€™ailleurs ce que ces techniques ont en commun. La maniรจre de relier les diffรฉrents รฉlรฉments de mise en page les uns aux autres ainsi que les valeurs de leurs paramรจtres de mise en page sont indiquรฉs par les entrรฉes de ces approches, qui ne sont pas tant un script que des documents dรฉclaratifs.

Les assertions opรฉrรฉes sur lโ€™interface graphique peuvent par exemple รชtre de la forme ยซ lโ€™รฉlรฉment 1 est-il situรฉ ร  gauche de lโ€™รฉlรฉment 2 ? ยป ou ยซ lโ€™รฉlรฉment 1 a-t-il une largeur infรฉrieure ร  lโ€™รฉlรฉment 2 ? ยป. Certaines de ces techniques ont des langages spรฉcialisรฉs dรฉcrivant des assertions comme celles-ci.

Les spรฉcifications dรฉclaratives des interfaces utilisateurs ont fait lโ€™objet de beaucoup de recherches dans le passรฉ. Les premiรจres tentatives incluent le systรจme MASTERMIND, qui utilise un langage de modรฉlisation basรฉ sur CORBA [67] ; dโ€™autres approches incluent le modรจle de mise en page dโ€™Auckland [57], Adobe Adam et Eve [66] et les modรจles de propriรฉtรฉs [57].

MASTERMIND

Dans MASTERMIND, le dรฉveloppeur de lโ€™interface utilisateur doit crรฉer des modรจles de tรขche (task model), dโ€™application (domaine) et de prรฉsentation. Le modรจle dโ€™application est spรฉcifiรฉ ร  lโ€™aide du langage de dรฉfinition dโ€™interface CORBA (IDL). Le modรจle de tรขche prรฉsente les tรขches de lโ€™utilisateur final dans une structure hiรฉrarchique et comporte les informations de commande nรฉcessaires pour contrรดler lโ€™interface utilisateur lors de lโ€™exรฉcution. Le modรจle de prรฉsentation dรฉcrit la disposition de lโ€™interface utilisateur, y compris les affichages statiques et dynamiques. Il permet la spรฉcification des mises ร  jour automatiques de prรฉsentation lorsque les donnรฉes dโ€™application ou le contexte de prรฉsentation changent. En outre, il intรจgre des principes de conception graphique afin de donner un soutien complet au concepteur de dialogue.

AUCKLAND LAYOUT MODEL (ALM)

Le modรจle de mise en page dโ€™Auckland (ALM) est une technique implรฉmentรฉ pour ยซ .NET ยป, Java et Haiku, permettant de spรฉcifier une mise en page 2D. Elle est utilisรฉe pour organiser les contrรดles dans une interface graphique. Le modรจle permet la spรฉcification de contraintes basรฉes sur lโ€™algรจbre linรฉaire. Il calcule une disposition optimale en utilisant la programmation linรฉaire.

Les รฉgalitรฉs et les inรฉgalitรฉs linรฉaires peuvent รชtre spรฉcifiรฉes sur les tabulations horizontales et verticales, qui sont des lignes virtuelles formant une grille dans laquelle tous les รฉlรฉments de lโ€™interface graphique sont alignรฉs .

Lโ€™exemple dans la figure 3.12 montre, la maniรจre de disposer trois boutons en mobilisant trois zones. Les boutons ont dรฉjร  รฉtรฉ ajoutรฉs ร  la fenรชtre, mais ils nโ€™ont pas รฉtรฉ arrangรฉs. Leur emplacement et leur taille sont dรฉterminรฉs par la spรฉcification ALM (figure 3.13). Quelque soit le redimensionnement de la fenรชtre, les deux colonnes auront toujours la mรชme largeur, et les deux lignes la mรชme hauteur en raison de la linรฉaritรฉ des deux contraintes.

ADOBE ADAM ET EVE

ASL (Adobe Source Libraries) est un projet au sein du Adobe Software Technology Lab (STLab). Cโ€™est un ensemble de bibliothรจques de composants logiciels, rendu disponible sous licence Open Source par Adobe Systems, permettant de dรฉfinir des algorithmes sous forme dรฉclarative. Les deux premiรจres bibliothรจques significatives dans ASL sont : la bibliothรจque de modรจle de propriรฉtรฉs (Adam) et la bibliothรจque de modรจle de mise en page (Eve) dont les composants permettent de modรฉliser lโ€™apparence et le comportement dโ€™une interface dans une application logicielle. Adam consiste en un solveur et un langage dรฉclaratif pour dรฉcrire les contraintes et les relations sur une collection de valeurs qui sont gรฉnรฉralement les paramรจtres dโ€™une commande dโ€™application (une fonction). Adam fournit la logique qui contrรดle le comportement dโ€™une interface Humaine (IH). Il est similaire dans son concept ร  une feuille de calcul ou ร  un gestionnaire de formulaires.

Les valeurs sont dรฉfinies et les valeurs dรฉpendantes sont recalculรฉes. Adam procure des fonctionnalitรฉs pour rรฉsoudre les valeurs interdรฉpendantes, mais il ne constitue pas un systรจme de contrainte gรฉnรฉral. Eve consiste en un solveur et un langage dรฉclaratif pour la construction dโ€™une IH. Le solveur de mise en page prend en compte une description riche des รฉlรฉments de 14 interfaces pour obtenir une disposition de haute qualitรฉ rivalisant avec ce qui peut รชtre rรฉalisรฉ avec le placement manuel.

Une seule description suffit pour plusieurs plateformes et langages OS. Eve a รฉtรฉ dรฉveloppรฉe pour fonctionner avec Adam ; il peut cependant aussi, รชtre utilisรฉe seule. Adam et Eve peuvent รชtre intรฉgrรฉes dans un certain nombre dโ€™environnements. Ils ont la facultรฉ de fonctionner ensemble, ou indรฉpendamment, mais, ils doivent รชtre combinรฉs avec dโ€™autres installations pour construire une application. Parmi les exemples typiques dโ€™interfaces utilisateur effectuant la synthรจse de paramรจtres de commande : la boรฎte de dialogue ยซ Enregistrer sous ยป dans le cas dโ€™enregistrement dโ€™un fichier image (figure 3.14). Elle se compose dโ€™un champ de texte pour entrer le nom du fichier, un menu de types de fichiers et des curseurs offrant deux possibilitรฉs pour configurer la compression lors de lโ€™enregistrement dans un format qui le prend en charge.

Les valeurs des curseurs sont liรฉes par une relation exprimant le compromis entre le taux de compression et la qualitรฉ de lโ€™image.

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

Table des matiรจres

Introduction
1 Notions gรฉnรฉrales sur le webย 
1.1 Le fonctionnement du web
1.2 Le langage HTML
1.3 Les Cascading StyleSheets (CSS)
1.4 JavaScript
1.5 Le fonctionnement interne des navigateurs web
2 Les bugs dโ€™interface dans les applications webย 
2.1 Types dโ€™applications web
2.2 Types de bugs dโ€™interface
3 ร‰tat de lโ€™artย 
3.1 Outils de test
3.2 Approche visuelle
3.3 Approche dรฉclarative
3.4 Outils RWD
3.5 Discussion sur les approches exisantes
4 Dรฉtection de bugs dโ€™interfaceย 
4.1 Un interprรฉteur pour les propriรฉtรฉs Cornipickle
4.2 Le langage Cornipickle .
4.3 Exprimer des propriรฉtรฉs avec Cornipickle
5 Dรฉtection avancรฉe : bugs comportementaux et RWDย 
5.1 Bugs comportementaux dans le Beep Store
5.2 Solutions actuelles
5.3 Solution proposรฉe
5.4 Expรฉriences et rรฉsultats
6 Vers un meilleur feedback pour lโ€™utilisateurย 
6.1 Gรฉnรฉration de contre-exemple : les tรฉmoins
6.2 Localisation des erreurs dans les applications web
6.3 Calcul de la rรฉparation
6.4 Exemples
7 Conclusion gรฉnรฉrale
Bibliographie

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *