Archives par étiquette : test

Tester, tout un art

Bien le bonjour. Aujourd’hui, nous allons aborder la partie tests d’une application. Je pensais attaquer directement sur des exemples de tests appliqués à Pibou mais nous allons d’abords discuter  de façon plus générale.

Pourquoi tester ?

L’utilité des tests est un grand sujet de débat. Pour ma part ils servent pour plusieurs choses :

Le design

La réalisation de tests aide à structurer son code. Ceci pour plusieurs raisons :

  • Les tests nécessitent une réflexion sur la façon de découpler son code.
  • Les tests mettent en pratique votre pensée et les concepts que vous voulez implémenter. C’est du « code d’intention », votre design va évoluer au fur et à mesure que vous allez le mettre en pratique dans le contexte d’utilisation.
  • Dans une logique de TDD (voir chapitre suivant), ils vont peu à peu changer votre façon d’aborder le développement.

La validation des fonctionnalités

Les tests sont à la fois l’expression des besoins fonctionnels et celle du comportement de votre code.
Il va permettre de valider ce qu’attend l’utilisateur mais également fixer le comportement, c’est une forme de spécification via des cas d’utilisations.

Le filet de sécurité

Les tests sont également là pour s’assurer de la non régression. Cette sécurité améliore les conditions de développement pour la maintenance, l’évolution et le refactoring du code. Combien de fois avez vous évité une refonte car vous n’étiez pas sûr de ne pas ‘casser’ quelque chose ? 😉

La documentation

Contrairement à une documentation « classique »  (type javadoc, wiki, doc, etc..), votre code se doit d’être à jour pour fonctionner.
L’écriture des tests nous indique comment le code doit se comporter mais également l’approche des personnes qui l’ont écrit. Les cas d’utilisation et les limites.

L’apprentissage

Si vous découvrez une nouvelle API ou un nouveau framework, l’utilisation de tests pour comprendre et découvrir est une excellente approche. Non seulement les tests mettront en évidence le comportement mais ils permettront également de fixer ce que vous attendez. Si le framework ou l’API évoluent, ces tests vous montrerons les changements qui impactent votre utilisation.

Un petit mot sur le TDD

Le Test Driven Development est une approche qui prône pour l’écriture des tests avant le code de production mais pas que. On peut le résumer par un cycle de développement tel que:

  1. Ecrire un test pour valider une fonctionnalité ciblé du code
  2. Faire échouer le test
  3. Ecrire le code de production qui répond à ce test
  4. Faire réussir le test
  5. Refactorer son code chaque fois que nécessaire à partir d’une suite de tests valide
Il s’agit de cycles courts qui doivent cibler des parties spécifiques du code. C’est un développement itératif et incrémental où chaque étape est une  évolution stable du code en fonction des besoins.

Les types de tests

  • Il y a les tests unitaires qui sont des tests en isolation. Il servent à tester spécifiquement des parties du code ‘de façon unitaire’.
  • Les tests d’intégration testent le comportement plus global de l’application. Il vérifient  les liens entre les différentes parties du code.
  • On parle parfois de test d’intégration pour les tests d’interface graphique. Il s’agit dans la plupart des cas de framework qui permettent de simuler des actions utilisateurs (click, changement de pages, remplissage de formulaires)
  • Il y a les tests fonctionnels qui sont la vérification du besoin métier. Ces tests sont plus souvent écrit dans un langage proche du métier et peuvent correspondre à des scénarios d’utilisation.
  • Les tests de performances poussent le code dans ses retranchements (mémoire, rapidité, scalabilité, charge).

Les limites

La rédaction de tests est un fabuleux outils de design, un filet de sécurité et une documentation. Mais pour que ça marche, il faut prendre soin du code de test autant que du code de production. Il doit rester le plus clair possible, à jour et doit évoluer en même temps que le code de production.

Il faut parfois se méfier de l’envie de tester systématiquement chaque méthode, il vaut mieux tester des fonctionnalités. Il faut également garder une cohérence dans le code, le test est là pour mettre en avant les problèmes potentiels, il ne doit pas en créer. Les tests doivent être facilement utilisables et relativement rapides pour tous les développeurs au risque d’être délaissés et donc inutiles.

Références

CodeSchool – Rails Testing for Zombies

Aujourd’hui je vais vous parler d’un site qui propose des cours en ligne CodeSchool.

Le service

La structure

L’accroche « Learn by doing » résume bien l’esprit. Les cours sont découpés en chapitres, pour chacun il y a :

  • Une vidéo de présentation des points abordés
  • Une série d’exercices pour appliquer directement les notions du chapitre

Les vidéos et les slides des présentations sont téléchargeables. Vous n’aurez besoin que de votre navigateur pour réaliser les exercices, nul besoin d’environnement de développement.

La philosophie

L’esprit est résolument fun et bon enfant. Les exercices permettent de gagner des points, un peu comme un jeu vidéo. Ces points sont utilisables pour débloquer des aides lorsqu’un exercice vous bloque. L’obtention de badges augmente la sensation de progression dans les niveaux du cours. Vous pouvez partager vos succès sur twitter.

La politique commerciale

J’ai commencé l’utilisation de CodeSchool avec un cours gratuit http://www.codeschool.com/courses/rails-for-zombies. Puis un cours payant: http://www.codeschool.com/courses/rails-best-practices pour environ 40$. Lorsque vous finissez un cours, vous avez des réductions pour des livres, d’autres sites d’e-learning et les cours suivants. Vous avez deux approches pour acheter :

  • Acheter les cours à l’unité (aux alentours des 50$)
  • Avoir un abonnement mensuel (25$/mois) qui vous donne un accès illimité aux cours et screencasts. (Détails : http://www.codeschool.com/enroll)

Rails Testing for Zombies

La forme

Graphiquement très agréable, on repère facilement où on en est dans le chapitre. La structure des cours est efficace et permet une bonne assimilation des sujets présentés. Par rapport au premier cours (rails for zombie), les messages sont plus explicites et les exercices plus clairs.

Le contenu

Ce cours aborde rapidement mais efficacement le Test Driven Development puis les différentes sortes de tests. Les exercices proposent d’utiliser les outils de base puis de compléter ou de remplacer par des frameworks comme :

Le cours est suffisant pour mettre en place une bonne politique de tests. Les exercices sont progressifs et on valide les étapes avec plaisir.

Ce que j’ai aimé

  • La liberté totale, aucune contrainte d’environnement, un simple navigateur est suffisant
  • Le coté jeu vidéo
  • La qualité du contenu
  • Les progrès réalisés depuis le premier cours testé
  • Le compte en accès illimité
  • La vidéo de clôture et les références

Ce que j’ai moins aimé

  • Les messages d’erreur parfois tronqués
  • Le système de points pourrait être mieux exploité (reward, débloquer des niveaux bonus)
  • J’aurai aimé un point sur rspec et un peu plus d’informations sur l’intégration continue
  • Ca se fini trop rapidement, on en veut encore 😉

Le mot de la fin

CodeSchool est vraiment un outil d’e-learning intéressant et bien ficelé. Il évolue bien et propose des tarifs qui me semblent honnêtes. L’article sur les tests sur Pibou est fortement inspiré de ce cours.

N’hésitez pas à tester CodeSchool ou à partager vos bon plans d’e-learning.

@bientôt

Ma première facture FreeMobile

Et voila, la première facture est tombée! Et toujours aucun problème à l’horizon. Bon, payer juste pour 10 jours c’est pas top mais c’est un faible coup pour la liberté.

On m’a posé pas mal de questions auxquelles je vais tenter de répondre :

  • Comment est l’interface client ?

Simple, sans fioriture : Accueil, Mes commandes (sim/téléphone), Gérer mon compte (consommation/options) et Téléphones pour les mobiles disponibles à l’achat.

  • En parlant téléphone, ils ont quoi dans leur interface ?

Pour l’instant, ceux de la capture ci-dessus.

  • Tu as eu des problèmes de batterie à cause du changement de réseau Free/Orange

Honnêtement, je ne me rend pas compte. J’ai une utilisation qui de toute façon nécessite de la batterie et je recharge mon téléphone régulièrement donc…. Ca ne change rien pour moi.

  • Tu as eu des coupures ou des problèmes d’appel ?

Non, aucun.

  • Tu as eu des problèmes de débit, d’envoi de sms ou de mms ?

Alors le débit, aucun soucis mais j’ai seulement consommé quelques dizaine de Mo. Les sms pas de soucis et les mms je ne m’en sers pas.

  • Est-ce que tu as changé ta consommation de téléphone ?

Non, peut être juste plus de sms et je ne regarde plus l’heure à laquelle j’appelle ou le temps que j’y passe. Mais fondamentalement c’est juste de la tranquillité psychologique, pas de surconsommation juste pour le plaisir d’être illimité.

  • Ils n’ont pas d’offre pour les tablettes ?

Ce n’est pas vraiment utile, les téléphones sont débloqués et il n’y a pas de restriction d’utilisation en modem. Il suffit de vous servir de votre téléphone pour partager la connexion et c’est autorisé chez Free 😉

  • Mais sinon, est-ce que …

Tout va bien.

  • Mais …

TOUT est ok. C’est un opérateur « presque » comme les autres. 😉

@Bientôt

Article connexe

FreeMobile, le forfait volubile!

 

Freemobile le forfait volubile!

Dans mon immense mansuétude, j’ai décidé de tester le forfait illimité Freemobile rien que pour vous!! Bon ok, pour mon compte bancaire aussi. 😉

Oh mon dieu qu’as-tu fait malheureux ?

  • Avec un forfait aussi bas, c’est forcément une arnaque
  • Tu n’as pas de téléphone neuf avec ton abonnement
  • Le réseau ne marchera pas là où tu habites/Orange va limiter le débit des utilisateurs Free
  • La puce est envoyé après les 7 jours de rétractation
  • Le Service de Free est pourri c’est bien connu

En fait, je crois que j’ai tout compris (ou presque)

On va traiter les problèmes dans l’ordre.

Le forfait low cost qui fait peur

Prenons les faits :
Mon forfait précédent : 38€ pour 2h de com et internet illimité 1Go avec SMS/MMS illimités soir & WE (engagement de 24 mois + htc hero).
Maintenant mon nouveau forfait: 15€90 pour un illimité 24/24 en appel fixe + mobile tout opérateur, SMS/MMS et internet 3Go
On me dit dans l’oreillette que « l’utilisation en bon père de famille » est trop vague. Terme qui ne semble pas poser de problème chez les autres opérateurs.
Vous n’avez pas de période d’engagement et le portage de numéro ne génère aucun frais.
Quant au service, je peux vous assurer que j’utilise mon forfait sans problème depuis que j’ai reçu ma puce.

Le téléphone neuf à part

Oui, Free a décidé de ne pas intégrer les téléphones neufs dans son forfait, et c’est tant mieux.
Combien payez-vous votre téléphone sur votre abonnement? Non parce-que personnellement je n’en sais rien. 😉
Si vous calculez votre forfait sur une période de 24 mois vous allez vous rendre compte que l’achat d’un téléphone neuf avec un paiement échelonné vous reviendra surement moins cher.

Le réseau Free

Free à une couverture (contestée) de 27% si je ne m’abuse. Pour le reste, c’est le réseau orange qui est loué pour une somme rondelette. Ce ne sont pas les premiers à le faire, mais avec des accords aussi gros, si (il est question d’un milliard d’euros sur 6 ans). L’engagement d’Orange est contractuel, il ne pourra pas impunément limiter le débit ou détériorer la qualité des communications.
Je n’ai que quelques jours d’utilisation, mais je n’ai jamais eu de problème lors de mes appels  (même plusieurs heures d’affilées).

La vilaine pupuce qui se fait désirer

J’ai reçu ma carte sim au bout de 8 jours ce qui a eu deux conséquences fâcheuses :

  • 26H d’interruption de service entre mon ancien et mon nouvel abonnement
  • L’impossibilité d’utiliser la clause de rétractation

Cependant, il n’y a pas d’engagement et le préavis de rupture est de 10 jours.

Le Service

Alors là, j’avoue, je ne m’attends pas à des miracles. Personnellement, je n’appelle mon service client que pour négocier un nouveau téléphone ou une ristourne sur mon forfait. Je n’ai plus besoin ni de l’un ni de l’autre.
Mais s’il y a coupure de service? Et bien, ma vie ne dépend pas de ma connexion au téléphone portable.

Ah, j’oubliais, je ne connais pas de personne particulièrement contente de son service client mobile….

En pratique

Faites un tour sur leur FAQ
Mon expérience :

  • 10 min pour récupérer mon ROI
  • 1 jour pour s’abonner à FreeMobile (bug de la clé RIB)
  • 8 jours pour recevoir la carte sim
  • environ 1H pour que la ligne fonctionne après activation
  • 10 min de configuration (téléchargement sur l’android market)
  • 0€ de dépensé pour le moment 🙂

Le mot de la fin

Dans le monde du développement informatique, si quelqu’un propose un service plus intéressant à moindre coup, on ne pleure pas on s’améliore.
Chacun de nous a le choix : qualité du réseau, garantie du service, prix ou sentiment de sécurité. Vous êtes seul maître de vos abonnements et de votre portefeuille.

Je vous encourage vivement à lire les CGV et prendre votre calculatrice.
N’hésitez pas à me poser des questions, je tacherais d’y répondre au mieux. 🙂