Wie wir die Yandex-Werbetechnologien testen und wie wir sie erlernen

    Mein Name ist Konstantin Vlasov und ich leite das Qualitätsmanagement des Bannersystems bei Yandex. Wie Sie sich vorstellen können, ist es keine leichte Aufgabe, ein sich schnell änderndes System in solchen Ausmaßen wie unsere Werbetechnologien mit allen Datenbanken, Komponentenreplikationen, Interaktionsprotokollen zwischen Subsystemen sowie mit relativ häufigen Releases zu testen. Gleichzeitig müssen Sie alles sehr sorgfältig testen, da jeder Fehler das Geschäft des Unternehmens ernsthaft schädigen kann. Dabei geht es nicht nur um Reputationskosten, sondern auch um den Verlust von echtem Geld. Heute möchte ich noch etwas genauer darauf eingehen, und für Interessierte werde ich anrufen, um zu lernen, wie man solch komplexe Systeme testet und dies alles in der Praxis versucht.

    Bild



    Wir beginnen natürlich mit der Geschichte, die wir testen. Es gibt zwei Werberichtungen in Yandex: Kontext- und Display-Werbung.

    Kontextwerbung ist Textwerbung, die Sie wahrscheinlich in Suchergebnissen und auf Websites gesehen haben, die Teil des Yandex-Werbenetzwerks sind. Bei Display-Werbung handelt es sich um Flash-, GIF- und Video-Werbung.

    Es scheint nichts kompliziertes zu sein: Anzeigen geschaltet, Geld von Werbekunden abgezogen und alles. Der Markt für Werbetechnologien ist jedoch so konzipiert, dass die Schaltung von zufälligen Anzeigen für die Nutzer keinen Gewinn bringt. Werbetreibende möchten den Nutzern Werbung zeigen, für die dies wirklich nützlich und interessant sein kann. Die Wirksamkeit einer Werbung hängt von ihrer Relevanz ab.

    Zunehmende Relevanz ist eine sehr schwierige Aufgabe, die eine große Menge an Informationen sowohl über das Verhalten des Benutzers selbst als auch über viele andere Kriterien erfordert. Daher umfasst unser Bannersystem Cluster für maschinelles Lernen, hochentwickelte Ranking-Algorithmen, große Datenbanken und ultraschnelle Webserver, die für die sofortige Datenübertragung erforderlich sind.

    Bild

    Zur Personalisierung der Display-Werbung verwenden wir die Crypt-Technologie. Hierbei handelt es sich um eine maschinelle Lernmethode, mit der Sie das Verhalten der einzelnen Benutzer im Yandex-Netzwerk analysieren und die soziodemografischen Merkmale der Benutzer ermitteln können: Alter, Geschlecht, Bildung, Einkommensniveau, Interessen - mehrere hundert Parameter, anhand derer Anzeigen geschaltet werden können, die für einen bestimmten Benutzer nützlich sein sollen . Bei der kontextbezogenen Werbung wird die Hauptrolle von der Suchanfrage, die der Benutzer gerade eingegeben hat, sowie dem Abfrageverlauf übernommen. Der Standort und die Anforderungszeit des Benutzers werden ebenfalls berücksichtigt.

    Wie ist die Auswahl der Anzeigen für die Anzeige in jedem Fall - das Thema einer separaten Geschichte. Eine Vorstellung von diesem Prozess kann gemacht werdenVorträge unseres Kollegen Michail Levin . Es ist nur zu beachten, dass die Vorlesung ein etwas vereinfachtes Modell zur Berechnung der Wahrscheinlichkeit einer bestimmten Anzeigenschaltung bietet. Neben der Klickrate (Click-through-Rate - CTR) - dem Verhältnis von Klicks zu Impressionen - sind viele Algorithmen am Ranking beteiligt, die eine Vielzahl von Faktoren und Koeffizienten berücksichtigen und bei deren Erstellung uns die maschinelle Lerntechnologie von Matrixnet unterstützt .

    Es ist wichtig zu verstehen, dass der gesamte Prozess der Erstellung von Anzeigenblöcken sehr schnell sein muss - buchstäblich einige Millisekunden. Natürlich werden alle Statistiken im Voraus berechnet. Alle diese Daten müssen jedoch schnell extrahiert und zwischen den Komponenten unseres Systems gesendet werden. Dazu verwenden wir den leistungsstarken Phantom -Webserver. Und all dies funktioniert unter einer Last, die grob mit der Last der Yandex-Hauptsuche verglichen werden kann.

    Testen


    Das zu testende System besteht aus einer Reihe von Webservices und vielen Skripten, verschiedenen Datenbanken und Schnittstellen. Aufgrund der Vielzahl der Komponenten konzentrieren wir uns daher auf die Testautomatisierung. Wir erstellen und pflegen selbst Frameworks zum Testen der Automatisierung. Die wichtigsten Entwicklungssprachen in unserem Team sind Python, Perl.

    Wir experimentieren ständig und führen neue Ansätze und Technologien ein: modellbasiertes Testen , paarweises Testen , kontinuierliche Integration , kontinuierliche Bereitstellung und andere. Ziel dieser Experimente ist es, unsere Effizienz durch die Optimierung von Prozessen und Werkzeugen zu steigern.



    Wenn Sie ein sich schnell änderndes System von einem solchen Umfang wie unsere Werbetechnologien mit allen Datenbanken, Komponentenreplikationen, Interaktionsprotokollen zwischen Subsystemen sowie mit relativ häufigen Releases testen, können Sie nicht auf eine komplexe Infrastruktur und Continuous Integration (CI) verzichten. Jetzt haben wir einen vollständigen CI-Zyklus mit Jenkins und OpenStack Cloud implementiert .

    Wir haben auch mehrere Plugins für Jenkins entwickelt und das universelle Tool zum Erstellen von benutzerdefinierten Testberichten verwendet. Allure wurde uns freundlicherweise von unseren Kollegen zur Verfügung gestellt.



    Das team


    Wir haben keine klassische Trennung in Testdesigner, die Testfälle und Automatisierung entwickeln. In unserer Arbeit stecken viele technische Entwicklungen, sodass Sie nicht nur in Bezug auf Tests, sondern auch in Bezug auf die Technologie wachsen können. Alles geschieht mit einem einzigen Zweck - dem Benutzer ein Qualitätsprodukt zur Verfügung zu stellen. Die Arbeit ist ziemlich stressig, deshalb versuchen wir, eine angenehme und unterhaltsame Umgebung am Arbeitsplatz zu schaffen. Jeder hat seine eigenen Vorlieben: Sport, Musik, Videospiele, Desktops usw.

    Bild

    Wir sind aktiv am Wachsen und Entwickeln und unser Team benötigt neue Mitarbeiter. Daher wurde die Idee geboren, eine Schule zum Testen des Bannersystems zu schaffen - zweimonatige Kurse, die die erforderlichen Kenntnisse und Fähigkeiten für die Arbeit in unserem Team vermitteln.

    Bild

    Die Ausbildung umfasst nicht nur den theoretischen Teil, sondern auch die Lösung von Aufgaben, die denen des Militärs ähneln. Vorträge und Workshops werden von Spezialisten aus unserem Team gehalten. Studenten, die im Lernprozess erfolgreich sind, werden gebeten, ein Praktikum bei Yandex zu absolvieren. Aber auch wenn Sie sich keine Ziele setzen, um einen Job bei Yandex zu bekommen, ist unsere Schule eine großartige Gelegenheit, zu lernen, wie man direkt von Leuten testet, die dieses Gebiet entwickeln. Unser Kurs kann in mehrere Themenbereiche unterteilt werden:

    • Software-Entwicklungs- und Testprozess;
    • Arbeit mit Versionskontrollsystemen;
    • Arbeit mit Datenbanken;
    • Anforderungsanalyse und Testdesign;
    • Verfassen von Testdokumentationen;
    • Entwicklung automatisierter Tests und Angemessenheit der Automatisierung;
    • Teamwork und effektive Interaktion.


    Kursprogramm


    Nähere Informationen finden Sie auf der Seite unserer Schule , auf der Sie auch die Zulassung beantragen können. Das Set wird am 21. Februar bis 19:00 Uhr dauern.

    Jetzt auch beliebt: