2010-08-17 14 views
2

Je suis en train d'écrire un client de chat (style msn messenger) et j'ai quelques problèmes pour écrire les tests d'acceptation de la fonction d'envoi/réception. Pensez par exemple à l'histoire de l'utilisateur "Un utilisateur peut envoyer un message à un autre utilisateur".Test d'acceptation pour un client de discussion

1- Dois-je tester si le client sw interagit correctement avec le serveur? Dans ce cas, comment devrais-je représenter cette interaction?

2- Dois-je tester si le deuxième client reçoit réellement le message? Dans ce cas, je devrais compter sur le serveur pour prouver que mon logiciel fonctionne bien. Ce genre d'hypothèse est-il correct dans un test d'acceptation? Je voudrais écrire mes tests avec concordion ou fitness mais toute aide est vraiment appréciée.

Merci

Répondre

1

Lorsque vous écrivez un test d'acceptation, qui devrait être écrit au plus haut niveau, comme si l'utilisateur utilisait le logiciel. C'est typiquement un test de boîte noire. Dans votre user story, "Un utilisateur peut envoyer un message à un autre utilisateur", vous démarrez 2 clients et le serveur de chat, envoyez le message d'un client et veillez à ce que l'autre le reçoive. L'histoire ne dit rien sur la façon dont le serveur devrait le gérer, c'est juste dire qu'un utilisateur peut envoyer un message à un autre utilisateur.

Par contre, vous voulez également tester les parties individuelles, c'est-à-dire que le client interagit correctement avec le serveur. Il s'agit davantage de tests d'intégration et de tests fonctionnels (et vous devriez également avoir des tests unitaires pour tester les composants individuellement).

+0

Je pense que cette méthode a plus d'un défaut. Si le serveur ou le client récepteur (il peut s'agir d'une autre implémentation) ne fonctionne pas correctement, mon test peut échouer mais mon implémentation client fonctionne toujours parfaitement. Cependant, je pense que cette solution pourrait éventuellement fonctionner. Selon vous, est-ce que fit fitnesse ou concordion vous permet de tester quelque chose comme ça? – TheSENDER

+0

Si le client ou le serveur échoue à un test d'acceptation et que le test teste la communication entre deux clients via le serveur, le test doit échouer. Je ne suis pas sûr de ce que vous entendez par «il peut s'agir d'une autre implémentation», sauf si vous fournissez une API client pour développer des clients. J'imagine que vous fourniriez au moins un client qui fonctionne, alors utilisez-le. Quant à Fitnesse/Concordion, je n'ai pas d'expérience avec Concordion, mais vous devriez pouvoir utiliser Fitnesse. http://strumtheworld.com/blog/2010/02/lessons-in-using-fitnesse-for-testing-networking-systems/ –