Bonjour,
Svp ne me donnez pas le lien sur Wikipédia car je l'ai déjà lu!
Par ex si je veux faire un test unitaire sur Notepad, comment vais-je procéder?
Bonjour,
Svp ne me donnez pas le lien sur Wikipédia car je l'ai déjà lu!
Par ex si je veux faire un test unitaire sur Notepad, comment vais-je procéder?
Sur quel techno travailles tu ?
Selon la techno tu vas avoir des méthodes te permettant de faciliter l'écriture des tests et des outils pour les automatiser.
Dans l'absolu un test unitaire est un test te permettant de valider les différents cas d'une fonction.
Imaginons une méthode qui te permet de valider une date, ton test devrais avoir par exemple un cas de date valide et plusieurs cas qui devrait échoué (je donne mon exemple en c#, mais ça doit être relativement simple à comprendre, enfin j'espère ).
Les tests sont écrit de façon à être intégrer dans NUnit un outil de test unitaire du monde .net
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 // l'attribut TestFixture permet de dire que la classe contient des tests [TestFixture] public class TestNombres { [Test] public void TestDateSyntax() { // CheckDate est la méthode qu'on doit tester Assert.IsTrue(Date.CheckDate ("10/10/2008")); // Assert est une méthode de debug dans C# Assert.IsFalse(Date.CheckDate ("100/10/2008")); Assert.IsFalse(Date.CheckDate ("10:10:2009")); Assert.IsFalse(Date.CheckDate ("10/2008")); } }
Maintenant qu'on a écrit le test avec notre EDI, on peut utiliser notre outil Nunit pour automatiser le test et le résultat devrait être vrai pour que ta méthode soit valider. Par la suite tu peux utiliser des outils qui lors de la génération des livrables exécute les tests et rend un rapport ...
Si tu es dans le monde .net tu peux voir ce tutorial :
http://jab.developpez.com/tutoriels/dotnet/nunit/
Si tu es dans le monde Java il y a Junit et il y a un tuto dans DVP.
Pour le reste il faut poser la question dans le forum adéquat ;-)
Je travaille en C++ avec Visual C++!
Donc le test unitaire c'est pour les développeurs? J'avais posé la question: Par ex si je veux faire un test unitaire sur Notepad, comment vais-je procéder? , c'est donc faux
Les tests unitaires (le développement et l'exécution) sont uniquement destinés aux développeurs. Par contre, les rapports de couverture et d'exécution des tests unitaires peuvent être présenté à un client, car ces rapports donnent une estimation de la stabilité d'une application.
Un test unitaire est destiné à tester une fonctionnalité élémentaire d'une application (typiquement une méthode dans une classe). Faire autre chose, ce n'est plus du test unitaire, c'est du test d'intégration, du test de validation, de la recette fonctionnelle, etc.
Ceci dit, les frameworks de test unitaire (xUnit) tel que JUnit pour Java, unittest pour Python, etc. permettent de faire autre chose que du test untaire.
Oh oui, d'ailleurs une méthodo très intéressante recommande d'écrire le test unitaire avant d'écrire le code, c'est Test Driven Developpement (tu trouveras beaucoup de lecture à ce sujet si ça t'intéresse ;-) ), y a une autre mine d'or d'infos c'est http://www.testdriven.com/modules/news/
Pour c++ il me semble que y a cppUnit qui fonctionne comme Junit et Nunit (edit: je confirme avec en plus des exemples ;-) http://gamesfromwithin.com/?p=29 ).
Je pense que le mieux pour démystifier les tests unitaires et de suivre un petit tuto pour les mettre en pratique ;-)
Bof, j'avais une vision erronée du test comme si on donnait les exécutables de l'application pour que le testeur le teste, or c'est le test fonctionnel (GUI) non?
Si vous m'expliquez un peu le fonctionnement des frameworks de test unitaire? Surtout avec mon application C++! Les tutos d'ici sont pour Java (JUnit) un environnement et langage dont je me suis complètement rouillé
Avec une petite recherche de 3 sec j'ai trouvé un tuto de DVP sur cppUnit ;-)
http://matthieu-brucher.developpez.c...s/cpp/cppUnit/
tu as les phases de tests:
souvent on rencontre en gros (et aussi selon la méthodo selon laquelle on se rapproche le plus):
- unitaire : tu test un composant, une classe ... (le plus souvent à la charge du développement) (donc si tu test un composant du GUI tu peux très bien te retrouver avec un GUI dans ton objet du test)
-intégration : test l'assemblage des composants (souvent à la charge des equipes d'intégrations et / ou du développement) : teste les interfaces des composants (donc selon la stratégie d'intégration tu peux également te retrouver avec un GUI dans l'objet du test)
- système (c'est le premier niveau avec un système dans son entier : donc intégré) souvent effectué par les testeurs (mais test sous le lead de la maitrise d'oeuvre)
- acceptance (meme objet du test que pour les tests système sauf que le lead est la maitrise d'ouvrage)
et ensuite à tous les niveaux de ces phases de tests, tu va avoir la nature (ou le type de test)
test fonctionnel : valider une règle métier (par exemple)
mais aussi les différents tests non fonctionnel par exemple la performance
(tu peux très bien faire un test de perf sur une Méthode précise en Unit test, que de faire un test de perf sur l'ensemble en system test)
tu peux aussi avoir tests de robustesse , d'ergonomie, de sécurité ....
et encore transversallement à ces phases de tests et types de tests tu va avoir le but du test (à quoi il sert) :
- test d'affirmation : tu as un nouveau dev, des points à controler : exigences (tu vérifie que ces exigences sont délivrées par le produit ou non)
- test de confirmation : suite à un test d'affirmation échoué, qq1 a corrigé l'objet du test pour répondre au test en échec, tu relance donc ton test pour controler que la modification est bien réalisée
- test de non-regression : suite à modification / correction (qui doivent avoir eu leurs tests d'affirmation ou de confirmation) tu valides qu'il n'y a pas d'effet de bord sur d'autres exigences de l'objet du test
Je me permets de remonter ce sujet parce qu'on me propose une mission d'homologateur sur des systèmes de monétique dans une banque.
Je ne suis pas un grand fan de développement, c'est pour ça que le métier de testeur/homologateur peut m'intéresser mais en vous lisant, je commence à croire que c'est un dérivé du métier de développeur...
Finalement, pour résumer, ce travail consiste à lire le code des développeurs et à coder pour tester le code des autres?
Si on n'est pas un bon développeur, on peut être un bon testeur?
Merci d'avance pour vos réponses.
tout dépend du niveau de test que tu pratique
- Au niveau unitaire: tu teste chaque class/methodes de ton application. pour pouvoir le faire tu dois avoir la possibilité d'appeler toutes les fonctions internes du soft de façon indépendante. (en général tu as un accès aux sources)
- Au niveau test fonctionnel: tu teste ton appli de l'extérieur. Tu utilise les api pour valider qu'elles font ce qui est prévu (en général un produit packagé sans les sources suffit).
- Au niveau intégration: tu teste que ton applis fonctionnent correctement lorsqu'elle travaille avec d'autres (typiquement tu as ton application qui doit interagir avec un autre et tu vérifie que cette interaction fonctionne correctement)
...
En théorie si les spec et la conception détaillées sont bien faites et à jour tu n'as pas besoin du code source pour tester.Finalement, pour résumer, ce travail consiste à lire le code des développeurs et à coder pour tester le code des autres?
certains préfèrent développer, d'autres préfèrent trouver les merdes laissée par les autres, c'est une question de gout.Si on n'est pas un bon développeur, on peut être un bon testeur?
les deux sont assez indispensable si tu veux faire un produit stable.
le plus important pour les test est de définir la stratégie de test ton projet va adopter, et de mettre en place un plant de test associé. avec ces elément tu définit qui test quoi, comment avec quels outils dans quel but, quels sont les cas de test .....
http://fr.wikipedia.org/wiki/Test_(informatique)
www.univ-angers.fr/docs/etudquassi/ST05_09.pdf
google + test + logiciel + stratégie
Merci jabbounet pour ta réponse
Je vais me documenter sur les différents types de test.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager