De nombreux stéréotypes sont associés aux tests: ils le traitent comme un début rapide en informatique avec la perspective d'un salaire élevé, mais ils ne voient pas cela comme une profession sérieuse. Il semble que les tests soient une routine continue, où il n'y a pas de place pour la créativité et la réalisation de ses propres idées.

En collaboration avec le chef du département QA / QC de Redmadrobot et le conservateur de notre cours
Software Testing Marishunya_QA, nous avons déterminé quelles compétences un testeur doit posséder, où développer en test, avec quoi le roulement du personnel est réellement connecté et pourquoi même les bons programmeurs ne devraient pas prendre la responsabilité testeur.
Que fait le service des tests?
Beaucoup disent que le testeur devrait «casser le produit» - trouver une vulnérabilité qui rendrait impossible l'utilisation de l'application. C'est fondamentalement faux. Le testeur doit considérer le système de tous les côtés, réfléchir à la façon dont l'application peut se comporter dans diverses situations, vérifier la «protection contre le fou» - que se passera-t-il si vous entrez, par exemple, le numéro au lieu du nom de famille.
Si nous parlons d'applications mobiles, beaucoup de gens pensent que les tests se limitent à la rotation de l'écran, c'est-à-dire aux cas d'utilisation standard. Un ingénieur en cours de test pose la question: «Qu'est-ce qu'une nouvelle fonctionnalité peut affecter? Dans quelles situations un problème peut-il se produire? » Prenez une boutique en ligne: un programmeur implémente une fonction de réduction pour un code promotionnel. S'il commence à se vérifier, il ira dans le panier, par exemple, via le menu principal - il sera convaincu que tout fonctionne et ne pensera pas que cela peut être fait de trois autres manières, pour lesquelles vous devez également enregistrer un appel de fonction. Le testeur doit suivre le chemin de tous les utilisateurs, écrire des cas de test pour plusieurs scénarios, puis y revenir. Par conséquent, le département de test accompagne le produit tout au long de son développement et est au centre du cycle de vie du logiciel en forme de V.

Le testeur doit connaître les exigences commerciales et les nuances techniques, car il teste à la fois les spécifications et les cas d'utilisation; il doit également définir ses notes avec les autres membres de l'équipe afin de planifier correctement la livraison, parfois donner un coup de pied au développeur, car à la fin du sprint, le chef de projet viendra au département QA / QC pour demander si l'application est testée.
Le testeur peut affecter tous les rôles du projet et doit être en mesure de prouver à chaque participant pourquoi il est nécessaire de fermer un bogue particulier ou de retarder complètement la publication. Un spécialiste compétent et expérimenté qui participe dès le début au développement de l'application, même au stade de la coordination des travaux, peut réduire le temps de stabilisation du produit, et donc réduire le prix d'une erreur. Si les testeurs, même au stade de la révision, remarquent une erreur dans le texte, le coût de l'erreur correspond à l'heure de travail de l'analyste pour ajouter quelques lignes. Lorsque les erreurs sont déjà détectées au stade de l'assemblage, vous devez demander à l'analyste de réécrire, refaire le développeur et revérifier les testeurs - c'est le jour de travail et de transfert de la version, ou même l'exception des fonctionnalités de l'assemblage de version
QA et QC: quelle est la différence?
En Russie, les concepts d'assurance qualité (assurance qualité) et de contrôle qualité (contrôle qualité) sont confus. Souvent, vous pouvez voir une représentation schématique où QC est situé à l'intérieur du contrôle qualité, et le test lui-même est à l'intérieur du QC.

Il est beaucoup plus correct de décrire cela:

En fait, QA et QC sont deux choses différentes et elles fonctionnent parallèlement l'une à l'autre. En gros, vous pouvez enseigner des tests simples à presque n'importe qui: asseyez-vous à la table, donnez l'assemblage bêta de l'application et dites: "Vérifiez comment cela fonctionne." QC est un ingénieur qui connaît les approches, voit le produit en direct, développe une stratégie de test et connaît les principes de base, c'est-à-dire qu'il contrôle la qualité du produit lui-même. QC travaille directement avec les développeurs, compile une base de cas et organise les tests.
L'AQ est une personne qui fournit la qualité non pas au niveau du produit fabriqué, mais l'ensemble de l'entreprise dans son ensemble, c'est-à-dire est responsable des processus et fournit les conditions pour le bon fonctionnement de QC, coordonne les départements pour un certain nombre de produits et établit des plans de test. Responsabilité QA commence par des négociations avec les clients, travaille avec les départements concernés et crée des interactions, se poursuit dans le processus de développement et se termine déjà lors de la présentation du produit. Elle affecte non seulement les aspects techniques, mais aussi juridiques. Dans l'entreprise, tous les départements eux-mêmes peuvent bien fonctionner: les ventes sont vendues, les programmeurs codent, les chefs de projet contrôlent les processus. Cependant, pour que le mécanisme fonctionne sans dérapage, l'interaction entre les départements était claire et le résultat était un produit de première classe, une assurance qualité était nécessaire - c'est l'assurance qualité.
Comment devenir testeur?
À l'heure actuelle, il n'y a pas de départements ou de domaines spéciaux dans le domaine des tests dans les universités russes; par conséquent, il n'y a pas d'exigences pédagogiques pour les candidats, bien qu'avoir une spécialité technique ou cybernétique soit un gros plus.
Le plus souvent dans les postes vacants pour un testeur, vous pouvez répondre aux exigences suivantes:

La principale exigence d'un candidat est de penser en algorithmes et systèmes. Il est conseillé d'avoir une sorte de formation technique et de connaître la théorie. Qu'est-ce que le test, le QC, l'AQ et en quoi diffèrent-ils? Quels types de tests existe-t-il et comment les combiner? Qu'est-ce qu'une conception de test, un cas de test, un plan de test? Vous devez connaître au moins un langage de programmation orienté objet, les bases des bases de données, l'architecture client-serveur et travailler sous différents OS.
S'il s'agissait auparavant d'un problème, Internet regorge désormais de ressources spécialisées, comme un
forum sur les tests de logiciels . Si nous parlons de livres, alors la liste des références ci-dessous:
- «Tester les logiciels informatiques», Cem Kaner, Jack Falk, Hung Q. Nguyen
- «Processus de test clés. Planification, préparation, mise en œuvre, amélioration », Rex Black
- «Tests de logiciels. Cours de base », Svyatoslav Kulikov
Le marché a maintenant un gros problème avec le personnel, car en plus des compétences techniques techniques, il est important d'avoir un esprit interrogateur, de pouvoir transmettre votre point de vue et de le défendre à n'importe quel niveau. Il est également très important pour un testeur de plonger dans le domaine afin de discuter avec les analystes commerciaux sur un pied d'égalité et de leur expliquer pourquoi certaines de leurs idées ne fonctionneront pas correctement. Une bonne qualité pour un testeur est d'être «assez paresseux», car les gens paresseux ont tendance à optimiser les processus afin de ne pas perdre de temps et de temps supplémentaires sur eux à l'avenir.
«L'assurance et le contrôle de la qualité sont quelque chose de nouveau pour la Russie. Le problème est une mauvaise compréhension du but et des objectifs des tests en général. Ils créent un département, mais ils ne savent pas quoi en faire. Il n'y a pas de tâche clairement définie, c'est pourquoi il n'y a pas de motivation pour travailler pour le résultat. Il y a sept ans, j'ai commencé à travailler dans les tests en Ukraine et maintenant je fais face au même malentendu que j'ai rencontré à l'époque. En Russie, la majorité des clients sont le secteur public et la banque, avec leur bureaucratie lourde et maladroite. En Ukraine, ils ne représentaient qu'environ 20% du marché, tous les autres sont des entreprises privées qui peuvent compter leur argent. »
Marina Kulikova, responsable QA / QC, Redmadrobot
Comment être testeur?
Entrer dans la profession est simple, mais grandir et se développer est beaucoup plus difficile. Si nous comparons les testeurs avec les programmeurs, ces derniers vont «en profondeur» au cours de leur carrière. Le testeur est au centre du cycle de vie du produit, il a donc besoin de voir la situation dans son ensemble, d'intercepter parfois les fonctions d'un chef de projet et de s'engager dans l'analyse de produits, c'est-à-dire de se développer «en largeur». Le testeur acquiert de nombreuses compétences dans des domaines connexes, comprend souvent mal la portée de son domaine, regarde autour de lui et se tourne vers autre chose: la programmation, le propriétaire du produit ou l'analyse. En conséquence, les spécialistes des tests changent souvent de profession et les départements AQ / CQ souffrent d'une pénurie de personnel hautement qualifié.

Bien que les tests soient vraiment une industrie intéressante, la créativité n'est parfois pas moindre que dans le développement lui-même. Le testeur doit souvent travailler avec un manque de données d'entrée, dans des conditions de spécifications strictes ou d'exigences strictes du client, sans parler du fait que parfois vous devez entrer vous-même le code de vos propres mains. En grandissant à des postes de direction, vous devez beaucoup communiquer avec les autres départements et avec les clients, ce qui prouve votre point de vue du QA.
Vous pouvez en savoir plus sur les tests et acquérir une expérience pratique dans notre cours de
test de logiciels , où Marina Kulikova parlera des techniques de conception de tests et de la manière d'assurer la qualité de votre logiciel dans toutes les conditions.