ClAssignateur-Projet9
Projet fait dans le cadre du cours GLO-4002, Équipe 9
Fait par:
- Michaël Blanchet (111 078 159)
- Pierre-Marc Levasseur (111 080 897)
- Simon B. Robert (111 068 713)
- Pascal Labbé (111 087 177)
- Sébastien Reader (999 165 021)
- Pier-Alex Côté-Sarrazin (111 045 255)
- Margot Beugniot (111 110 352)
Statut des user stories:
- User story 1: terminée
- User story 2: terminée
- User story 3: terminée
- User story 4: terminée
- User story 5: terminée
- User story 6: terminée
- User story 7: terminée
- User story 8: terminée
- User story 9: terminée
- User story 10: terminée
- User story 11: implémentation de la classe HibernateDemandeEntrepot incomplète.
Tests d'acceptation:
- Les tests d'acceptation sont dans le module testsAcceptationUtilisateur.
- Tous les tests d'acceptation demandés ont été fait.
- Les scénarios pour la fonctionnalité Notifier les utilisateurs sont dans le fichier ScenariosBDD-Notification.md.
- Puisque nous n'avons pas réussi à configurer maven pour qu'il nous permette d'appeler les tests unitaires, certains tests d'acceptation sont semblables à des tests unitaires que nous avons déjà écrit.
Tests de performance et de concurrence:
- Les tests de performances ont été fait dans jMeter. Le fichier .jmx que nous avons utilisé est dans le dossier ClAssignateur-Projet9/doc.
- Les résultats de ces tests nous démontrent que notre système peut supporter un grand nombre de requêtes concurentes (20 threads qui font 2 requêtes par seconde) avec un taux d'erreur négligeable après la première requête.
- En expérimentant, nous avons découvert que le taux d'erreurs est initialement élevé (+-15%) lors des premières vagues de requêtes, mais il descend rapidement vers un taux d'erreur presque nul après quelques secondes.
- Pour arriver à ce résultat, nous avons dû synchroniser l'accès aux demandes (la classe ConteneurDemandes) avec le mot clé synchronized de java.
- Ces tests nous démontrent aussi que notre système est capable de supporter 40 requêtes par séconde avec un temps de réponse < 100 ms.
Tests de flot:
- Les tests de flot sont dans le module ClAssignateur-TestDeFlot.
- Puisque l'annulation n'était pas dans l'interface REST, nous avons fait ces tests à travers nos services dans un fichier de test qui utilise jUnit avec le contexte de développement.
- Nous avons testé les deux scénarios suivants:
- Faire une réservation, vérifier le statut et la salle pendant que la réservation est en attente, annuler la réservation.
- Faire une réservation, vérifier le statut et la salle après le traitement de la réservation, annuler la réservation.
Tests de la base de données:
- Nous avons plusieurs tests pour tester l'implémentation de Hibernate, mais nous n'avons pas réussie à la compléter et à la faire fonctionner.
- Donc, nous n'utilisons pas cette implémentation dans nos contextes de développement et de production.
Définition de terminé
- Le code est uniforme; il respecte le format défini dans la convention de code ci-dessous.
- Le code respecte le format du formateur choisi ensemble
- La grande majorité du code (au minimum 90% de code coverage) a été testé.
- L’ensemble des tests roule avec succès avec « maven integration test » en ligne de commande.
- Le code ne contient pas de « warning ».
- Le code ne contient pas de code inutilisé ou code mort.
- Le code ne contient pas de commentaires inutiles.
- Tout le code a été « poussé » dans le répertoire git.
- Une revue de code a été faite par quelqu’un d’autre que son auteur.
- Les fonctionnalités sont complètement intégrées au système.
- Le déploiement a été un succès.
Convention de code
- Le code est réalisé en français à l’exception de get et set.
- Les noms de classes commencent par une majuscule. ex: FileDemande
- Les noms de méthodes et de variables commencent par une minuscule. ex: uneVariable
- Les noms de méthodes commencent par un verbe conjugué. ex: estEnConflit() 4bis.Une exception peut être faite pour les tests.
- Les noms de variable sont des noms communs ou des groupes nominaux. ex: demandeEnTraitement ou demandeTraitée
Scénarios BDD pour remise 3
Les scénarios BDD des tests qui n'avait pas à être automatisés sont dans le wiki du projet. Tous les scénarios devant être automatisés sont dans des fichiers "*.story" dans le module ClAssignateur-TestsAcceptationUtilisateur du projet.