Test et démarrage de l'IA: entretien avec Adam Carmi (Applitools)


Il existe une expression populaire «grattez vos propres démangeaisons»: si vous voulez créer un nouveau produit, faites-en un qui vous manque. Dans ce cas, vous comprenez mieux comment bien le faire.


Adam Carmi était parfaitement conscient du manque d'un outil de test visuel qui aiderait les gens à ne pas se casser les yeux à la recherche d'une mise en page voyagée. Et à la fin, il a créé un tel outil, adaptant l'IA à cela, et est devenu l'un des co-fondateurs d'Applitools. Cela ressemble à un travail de rêve: lorsque vous luttez avec la douleur que vous connaissez, vous sentez que vous changez le monde pour le mieux. Mais à quelles difficultés un informaticien est-il confronté lorsque le sort de toute une entreprise dépend de lui?


Et puisque l'outil Applitools lui-même doit également être testé, Adam a beaucoup appris sur le test de projets avec l'IA. Demain à Heisenbug, il expliquera comment procéder et son reportage sera diffusé en direct - pour que tout le monde puisse le regarder en direct. Entre-temps, nous lui avons posé des questions sur les deux sujets: comment se sent la création d'une entreprise et les choses liées aux tests et à l'IA.


Vie de démarrage


Evgeny Trifonov ( phillennium ): Vous avez été employé pendant de nombreuses années, puis vous avez décidé de créer une startup. Comment cela s'est-il produit et quelle a été l'impulsion?


Adam: Mon travail précédent était une entreprise de sécurité de l'information. J'y ai travaillé 8 ans. Je pense que vous pouvez imaginer le nombre d'interfaces utilisateur dans un produit de sécurité. Un grand nombre de journaux, graphiques, graphiques, requêtes et alertes. Et autour de tout cela, il y avait beaucoup d'interface utilisateur non évidente.


Tout était compliqué par le fait que cette interface utilisateur était traduite en 6 langues et fournie sous cinq marques différentes. Pour tout tester manuellement du début à la fin dans toutes les variantes, il a fallu environ une semaine. Il y avait 20 testeurs qui l'ont fait à chaque itération. Autrement dit, si une version nécessite plusieurs itérations, cela nécessite un cycle de version d'au moins 2-3 mois.


Par conséquent, pendant ces années où j'y travaillais, je manquais de solutions à ce problème. Bien sûr, nous étions engagés dans l'automatisation. Le sélénium était alors encore un produit jeune, nous l'avons utilisé, mais il ne couvrait pas l'interface utilisateur. J'ai constamment expliqué le problème aux fournisseurs de l'époque (HP, Microsoft et IBM) et j'ai demandé une solution. La réponse a toujours été une: c'est impossible. Pour vérifier que l'interface ressemble à ce qu'elle devrait (plutôt que de simplement «fonctionner comme il se doit»), des testeurs manuels seront toujours nécessaires.


En écoutant cette réponse pendant des années, j'ai décidé de m'engager dans un tel instrument pour mon équipe en tant que projet parallèle. J'écris du code depuis 10 ans, je l'aime vraiment, je peux le faire. Et donc, même quand je dirigeais une grande équipe, j'avais toujours des projets pour animaux de compagnie: j'écrivais des jeux pour mes enfants, puis je déconnais avec des choses intéressantes. Et je voulais vraiment résoudre ce problème. J'ai immédiatement vu à quel point c'était difficile, mais cela m'a seulement incité à travailler plus dur et à prendre une décision.


En environ un an de travail, j'ai réussi à jeter les bases. Et à ce moment-là, l'entreprise où je travaillais a été achetée par un autre. Et j'ai décidé de vaquer à mes occupations au lieu de passer à une autre.


En général, ma motivation était de travailler sur quelque chose qui m'intéressait au niveau technologique. Je n'avais aucune ambition de devenir un grand homme d'affaires. C'était juste une question de pouvoir travailler sur ce qui me fascinait.


Eugene: Lorsque les informaticiens ont trouvé des entreprises, ce ne sont souvent pas les problèmes technologiques qui posent problème, mais le côté commercial. Vous aviez de l'expérience dans des postes de direction - en quoi cela vous a-t-il aidé? Recommandez-vous de l'obtenir avant de créer votre entreprise?


Adam: Pour commencer, je tiens à noter qu'il ne faut pas confondre l'expérience de gestion avec les affaires. Ce sont des choses très différentes.


Être un technicien est une compétence distincte. Vous attirez des personnes talentueuses, les incitez à travailler dur, assurez-vous qu'elles restent dans votre équipe pendant de nombreuses années et que le travail les captive. Je crois que cela est en grande partie dû au fait d'être un bon ingénieur et non lié aux affaires.


Il y a des gens qui croient: puisque je crée une startup, alors je serai PDG. Je sais moi-même tout, personne n'est mon conseiller. Beaucoup de gens pensent et échouent. Même ceux qui sont devenus de très bons PDG. Vous pouvez faire n'importe quelle erreur de cette façon.


Ma position était complètement différente. J'ai immédiatement déclaré que je ne savais pas comment devenir PDG. Par conséquent, j'ai dit: trouvons quelqu'un qui sait déjà quoi faire et qui a une expérience pertinente dans ce domaine. Et laissez-le devenir PDG, et je serai responsable du volet technique.


Cela ne garantit pas du tout que dans ce cas, tout se passe, mais au moins je ne perds pas de temps à faire des erreurs qui peuvent être complètement évitées si une personne expérimentée s'en occupe.


Avant que l'entreprise dans laquelle je travaillais depuis 8 ans ne soit engloutie, notre PDG est venu m'en parler, nous avons commencé à réfléchir à des projets pour l'avenir, et je lui ai dit sur quoi je travaillais déjà à l'époque. Il s'est immédiatement intéressé, a enquêté correctement sur la situation, a décidé de me rejoindre et depuis, nous travaillons tous les deux chez Applitools.


Je le répète, je crois qu'un ingénieur n'est pas la meilleure option pour une startup. Les chances ne sont pas de votre côté. Cela vaut la peine de trouver quelqu'un qui sait ce qu'il fait. Cela augmentera les chances de succès, même si cela ne garantit rien.


Eugene: J'ai compris. Et dans cette situation, lorsque des tâches commerciales complexes étaient confiées à une autre personne, quelle est la chose la plus transpirante pour vous?


Adam: Ça m'a fait transpirer ... Je ne veux pas entrer dans les détails des difficultés spécifiques à Applitools. Je pense ceci: c'est formidable que les entrepreneurs en herbe soient très naïfs. Bien sûr, c'est un cliché que tout le monde répète, mais tant que vous ne le faites pas vous-même, vous ne pouvez même pas imaginer la pression, l'incertitude, les hauts et les bas psychologiques que vous traversez avec l'entreprise. Le même jour, il peut sembler que vous allez conquérir le monde et que vous devrez licencier tout le monde. Il faut du temps pour s'adapter à cela et commencer à voir les choses en perspective. C'est très difficile.


Eh bien, il y a les difficultés habituelles - pour que le produit fonctionne correctement, pour gérer le composant d'ingénierie, en travaillant dur.


Mikhail Druzhinin ( xomyakus ): Il semble que le développement soit une partie simple. Elle est au moins prévisible.


Adam: Exactement.


Au cours de la première partie de la vie d'une startup, lorsqu'il n'est pas clair s'il survivra, il n'est pas facile de se retrouver dans une situation où vous constatez que vous n'avez plus d'argent. Vous grimpez déjà dans vos économies personnelles pour payer les salaires des employés. Ceux que vous avez convaincus auparavant avec l'aide de votre charisme de quitter leur place et de travailler pour vous pour un salaire inférieur simplement parce qu'ils croient en vous.


Mais même lorsque vous avez quitté le mode survie, vous avez un excellent produit et les clients, si vous avez levé des fonds, vous avez des investisseurs qui attendront le profit de leurs investissements. Maintenant, il y a une pression constante pour croître et se développer à un rythme très élevé, et cela nécessite une approche créative et beaucoup de travail, car il faut faire face à cette croissance.


Disons que vos ventes se sont élevées à X millions par an et que vous vous réjouissez du succès. Mais l'année prochaine, vous devrez vendre deux fois plus, comment faire?


Michael: Vous avez dit à propos de la créativité, qu'est-ce que cela signifie exactement?


Adam: Habituellement, vous pensez: j'ai fait un excellent produit, maintenant le monde entier l'utilisera.


La réalité est que le monde est en réalité très occupé. Le monde n'a aucune idée de votre existence. Le monde a toujours 10 choses différentes à faire, et vous ne pouvez pas contrôler où vous serez dans cette liste. Et vous n'avez pas beaucoup d'argent pour vous connaître. L'argent est le budget pour la publicité, les conférences, les webinaires, les ventes personnelles. Tout cela ne coûte qu'une tonne d'argent.


Et la créativité ici signifie penser au-delà des stéréotypes et utiliser des approches qui nécessitent peu d'argent et de ressources. Applitools peut le faire, cela nous permet de prendre une nouvelle hauteur chaque année. Mais à chaque fois, nous devons aller au-delà.


Michael: Exactement, vous devez penser plus largement. Je remarque que de nombreux développeurs et testeurs pensent très simplement, ils ne voient qu'une seule solution au problème. Il faut cinq mois et beaucoup de ressources pour les tests. Ensuite, on leur dit: vous savez, il ne reste plus qu'un mois, puis nous mourrons tous. C'est là que la créativité commence!


Adam: Oui, bien sûr. Il y a aussi la créativité, qui concerne le produit lui-même: vous devez toujours vous tenir au courant, faire certaines choses plus rapidement et plus efficacement. Cela va sans dire.



Eugene: Revenons au sujet de la croissance: combien de personnes travaillent aujourd'hui dans Applitools, et à quelle vitesse ce nombre augmente-t-il?


Adam: 110 personnes travaillent aujourd'hui. Et au début de 2018, nous étions environ 20. La croissance a été rapide, cinq fois en quelques années.


Eugene: Impressionnant, oui. Mais a-t-il été difficile à un tel rythme de croissance, lorsque de nombreuses nouvelles personnes arrivent, de maintenir la culture de l'entreprise?


Adam: Excellente question. De ma propre expérience, j'ai réalisé à quel point une culture d'entreprise bien définie est importante. Il semble que je puisse maintenant faire un rapport complet sur ce sujet.


Pour commencer, le concept de culture d'entreprise en Israël n'est pas très développé. Si quelqu'un essaie de le faire, la réaction des gens est «oh, c'est des conneries d'entreprise».


Et pour nous, c'est devenu un point de départ. Qu'est-ce que j'ai décidé de faire avec Applitools en tant que responsable R&D? En repensant à mon expérience dans d'autres entreprises, je voulais mener une expérience: en général, je ne serais pas autorisé à baisser la barre lors du recrutement, il suffit de prendre d'excellents spécialistes et c'est tout. Aucun compromis. C'était très difficile.


Bien sûr, les premiers employés sont ceux que vous connaissez personnellement et que vous avez convaincu d'aller chez vous. Mais après cela, il devient très difficile de grandir. Parfois, il nous faut 6 à 8 mois pour trouver le bon employé.


Mais au fil du temps, cela devient plus facile, car votre équipe a déjà beaucoup de spécialistes solides, et ils connaissent d'autres gars talentueux. Et quand ces gars talentueux commencent à chercher du travail, ils voient les noms des employés de votre entreprise - et il y a de solides conférenciers de conférences internationales, bien connus dans la communauté locale. Et puis cela devient facile: ils sont plus intéressés à aller vers vous que dans une grande entreprise.


Cela nous a permis de créer un processus de développement unique, ce qui est même difficile à appeler un processus. Chacun de nos développeurs est responsable de tout ce qui se passe. Nous n'avons pas de sprints, de versions planifiées, nous n'avons même pas besoin que l'équipe produit fournisse une spécification complète.


Il suffit d'avoir une idée et vous êtes responsable de sa mise en œuvre. Vous recherchez vous-même les informations dont vous avez besoin, vous cherchez vous-même des personnes pour vous aider. Si vous ne savez pas comment faire quelque chose, vous êtes responsable d’apprendre à le faire.


Nous avons donc réussi à créer quelque chose de spécial. Et lorsque nous avons attiré de nombreux investissements et que nous savions que nous allions croître, j'étais très préoccupé par cela. Comment préserver notre singularité, et ne pas la détruire lors de la croissance, lorsque l'équipe d'ingénierie triple?


La décision a été de fixer ce processus et de définir clairement la culture.


J'ai commencé par embaucher un très bon RH qui a travaillé pour Dropbox. En fait, elle a réuni toute l'équipe Dropbox, et maintenant il est considéré comme l'un des meilleurs endroits pour travailler au monde. Elle est très expérimentée. Nous nous sommes juste assis et avons commencé à écrire une ébauche de notre nouvelle culture.


Nous avons présenté nos réalisations aux Timlids, qui ont complètement rejeté tout cela. Et ils sont devenus très en colère. Et puis le dialogue a commencé. Au cours de discussions avec un grand nombre de retours, nous avons pu formuler ce que signifie travailler dans notre entreprise. Nous avons obtenu une liste de valeurs avec lesquelles tous les chefs d'équipe étaient d'accord.


Cela a pris plusieurs mois, mais au final, lorsque nous avons présenté le résultat à toute l'équipe, les gens l'ont immédiatement compris. Ils ont immédiatement senti que les mots exprimaient exactement pourquoi travailler dans notre entreprise était si excitant. Cette fois, nous avons eu un excellent retour.


Maintenant, nous sauvegardons religieusement ces valeurs et veillons à ce qu'il n'y ait aucun conflit avec elles lors de l'expansion de l'État. Il nous aide à prendre des décisions et à maintenir l'atmosphère, et j'espère qu'à l'avenir, il continuera à aider.


Eugene: Un autre détail intéressant sur Applitools: votre siège social est dans la Silicon Valley, mais la R&D est en Israël. Pouvez-vous dire pourquoi?


Adam: Tout d'abord, lorsque vous démarrez une entreprise, vous travaillez d'abord à domicile, dans un café près de chez vous ou en voyage.


Mon entreprise a été fondée et a grandi en Israël, car il y a beaucoup d'informatique. Et juste à cause de notre activité en Israël, nous avons réussi à nous propager au reste du monde. Lorsqu'une grande entreprise a une équipe en Israël et qu'elle utilise une sorte d'outil dans cette équipe, par conséquent, d'autres équipes de cette entreprise (aux États-Unis, en Grande-Bretagne, ailleurs) voient cela. Et si vous utilisez cet outil, votre produit a soudainement des clients étrangers, bien que vous n'ayez pas été engagé dans la commercialisation ou la vente à l'étranger.


Mais à partir d'un certain point, vous voulez être plus proche de vos clients. Et en tant qu'entreprise qui attire les investissements, vous voulez être plus proche des investisseurs qui ont le montant approprié. Les fonds israéliens travaillent principalement avec les startups dans les premiers stades, il est donc plus difficile d'en obtenir de grandes quantités. Ou leur investissement est moins utile, car ils n'ont pas de liens tels que les fonds de capital-risque des États-Unis. Être proche de ces personnes et entretenir des relations avec elles est utile. Après tout, je veux être dans une situation où les investisseurs veulent investir en vous et se tourner vers vous (et vous acceptez d'accepter de l'argent ou non), et non pas de courir après eux.


Je veux aussi être plus proche du client, et nous avons déjà des dizaines de responsables commerciaux. Dans quelle région des États-Unis les entreprises peuvent-elles travailler le plus activement avec nous? Notre bureau pour ces employés est situé là-bas, et c'est aussi le siège social situé à côté des investisseurs.


Et la R&D, qui commence en Israël, y reste. Il y a d'excellents spécialistes ici, et en même temps, garder une équipe d'ingénieurs ici est beaucoup moins cher que dans la Silicon Valley, et la concurrence pour les talents n'est pas si élevée. Pour toutes ces raisons, je suis ravi de rester ici en Israël, à la tête du bureau israélien. C'est bon pour moi et pour l'entreprise. Et mes deux partenaires sont à San Francisco depuis près de quatre ans maintenant.


Michael: Et en plus de la barre haute que vous avez mentionnée lors de l'embauche, utilisez-vous d'autres astuces pour empêcher le niveau de qualité de chuter avec une croissance rapide?


Adam: Je peux vous dire ce que je fais maintenant (peut-être que cela changera à l'avenir).


Je crois fermement qu'un bon développeur fait des logiciels qui fonctionnent vraiment. Il ne crée pas un tel logiciel avec lequel il a déjà terminé, mais d'autres doivent encore le tester. C'est son travail de faire en sorte que cela fonctionne vraiment. Je me fiche de comment il le fait. Peu importe qu'il teste tout manuellement à chaque fois ou automatise les tests. Je m'en fiche vraiment. Mais c'est son travail et sa tâche.


En général, les gars qui écrivent les algorithmes et le backend sont plus satisfaits de cet état de fait. Mais le front-end n'est pas très content, car tester l'interface utilisateur est beaucoup plus difficile que l'API avec des tests unitaires.


Il y a un problème avec tout cela. Bien sûr, vous avez probablement un développeur qui comprend qu'il doit tester tout ce qu'il écrit. Il sait que c'est son travail et l'a accepté. Mais quand vous demandez: «Tout est-il bien testé?» Et il répond «Oui», c'est une réponse très subjective. Il a fait quelque chose, mais c'est peut-être 50% de ce qui était supposé, et il s'est écrit dans un cahier «après la libération, il faudra y revenir».


Et même un examen du code ne nous donnera pas une image complète de ce qui se passe, car l'employé qui a effectué l'examen du code était également occupé. Il dit qu'il y a eu des tests et il en a examiné certains - tout va bien, passons.


C'est pourquoi j'ai un directeur qualité (pas QA).


Il a sa propre équipe. Son objectif dans l'entreprise est de s'assurer que tout est testé et que les développeurs couvrent vraiment tout. Autrement dit, tout ce qui concerne la qualité doit être testé. Le directeur qualité a beaucoup d'autorité et de liberté. S'il me dit que quelque chose n'est pas suffisamment couvert, nous n'entreprendrons rien tant que nous ne l'aurons pas compris.


Son équipe aide également l'équipe de développement à combler les lacunes. Parfois, des problèmes sont découverts rétrospectivement lorsque l'équipe correspondante est occupée avec certaines fonctionnalités et qu'elle n'a pas le temps de changer - l'équipe du directeur qualité peut alors assumer ces tâches.


Et pourtant, cette équipe est responsable des tests de bout en bout, affectant différentes équipes et produits. C'est une zone difficile à bien couvrir par les équipes d'ingénierie: elles peuvent comprendre de quoi elles sont responsables, mais quand quelque chose affecte plusieurs équipes ou produits à la fois, il est difficile de s'attendre à ce que l'une d'entre elles s'en occupe et s'engage à répondre pour tout. Ça ne marche pas comme ça. Par conséquent, le directeur de la qualité est responsable de ces tests complexes. Il peut venir me dire «J'ai besoin de ressources d'ingénierie pour cela», car pour une partie du test, il peut ne pas en avoir.


C'est ainsi que cela fonctionne en général, bien qu'il y ait des aspects. Lorsque vous travaillez dans une entreprise de cinq personnes, cela n'a pas d'importance, mais lorsque vous avez un bureau dans une autre partie du monde et qu'il y a du support, beaucoup de communication se produit soudainement à chaque version. Si quelque chose ne fonctionne pas comme il se doit ou si quelque chose de nouveau apparaît, les clients commencent à poser des questions d'assistance. Et s’ils ne savent pas assez bien ce qui a changé, ils ne pourront pas bien répondre.


Une partie de l'effort a donc été consacrée à la création de la communication: des rapports très informatifs qui répondent à toutes les principales questions sur les changements, et me montrent également que tout a été testé. Si ce n'est pas tout, alors où sont les lacunes? Et pour de tels rapports généraux, l'équipe qualité est également responsable, s'assurant que tout le monde sait ce qui se passe. Cela donne à l'entreprise un sentiment de haute qualité - pas seulement en termes de tests et de couverture.


Michael: Vous créez un outil de test, mais comment testez-vous cet outil lui-même? Comment Applitools est utilisé pour tester Applitools?


Adam: Tous les tests visuels et les tests d'interface utilisateur fonctionnels dans Applitools sont effectués à l'aide d'Applitools. Bien sûr, il y a quelque chose qui est testé manuellement, et que cela n'a aucun sens de tester via l'interface utilisateur et est couvert par l'API. Mais avec la composante visuelle, nous avons une nourriture solide pour chiens.


Nous le publierons plusieurs fois par jour, mais nous ne pouvons pas le faire pour que l'utilisateur puisse voir les modifications. L'équipe de développement ne doit pas modifier l'interface utilisateur sans passer par le processus de notification de support approprié afin de savoir comment répondre aux questions.


Par conséquent, cela se produit généralement comme suit: si l'interface utilisateur change, ces modifications sont développées dans une branche distincte ou masquées par un indicateur, mais les modifications du backend sont versées plusieurs fois par jour. Nous avons des versions périodiques avec de grandes fonctionnalités visibles dans l'interface utilisateur. Nous avons également une feuille de route pour préparer les clients aux changements, nous développons une campagne de cartographie et rédige de la documentation pour tous les changements.


Et dans le cadre de ce processus - avant la grande version, en plus de l'autotest, nous testons un peu tout manuellement et nous recourons également activement aux tests de recherche. Dans la semaine précédant la sortie, nous donnons la version finale au support, ils apprennent à utiliser les changements. Quand ils essaient tout eux-mêmes, ils savent tout sur les changements.


C’est tout le soi-disant processus. Bien sûr, il y a certaines parties lorsque l'interface utilisateur est testée manuellement, bien que ce soit essentiellement un test automatique.


J'aime beaucoup (et les entreprises, je pense aussi) que nous utilisons activement notre propre produit. Chacune de nos équipes peut choisir n'importe quelle technologie, mais préfère toujours la nôtre. C'est également formidable de sentir que vous faites quelque chose que le monde entier utilise - des entreprises comme Apple, Netflix, Dropbox, IBM.


Tests et IA


Eugene: depuis qu'il s'agit de tests, passons à votre rapport. On l'appelle «AI et tests», et cela peut être interprété de différentes manières: à la fois comme «Testons quelque chose avec l'aide de l'IA» et comme «Testons l'IA elle-même». Voyons d'abord l'IA: de quoi parle-t-on?


: — , AI. - AI, ? , — , , .


, — , AI. 80% , AI.


: «I» , . ?


: .


« , , , ». , AI . , , . .


, . , .


, — . , . , . , , .


AI . AI — , , , .


: AI AI?


: . Applitools Applitools, , AI-. , - AI AI.


, , « ». , , « ».


— , . — , , , .


: , Applitools, AI - — , ?


: . AI «» . , AI . , — :


  • AI. C'est très important.
  • AI, , AI
  • AI , -

— «self-healing tests». , UI , «», .


AI? . : , .


: , , . - — , . . - , , — «». , UI , , .


: , , , AI.


, , AI. , ! .


, , , , . - , . , , . , .


: . , - , . « », . «, , , - ».


: . . , , . , . , , . , . , , . , ?


, . , . , : 100%, . . , .


: Heisenbug , . , , ?


: . , , . , . , , .


, . . , , , , . . . , - , . Pourquoi? .


: . ?


: . , .


, . , - , . , — , , , , .


, . . , , , . , , .


, . , , . .


Heisenbug, 5 . Heisenbug , . , Heisenbug , , ( , ).

Source: https://habr.com/ru/post/fr478672/


All Articles