Building Open Source Test Automation Frameworks. Watir based automation case study.

+1

No comments posted yet

Comments

Slide 1

ВСстовыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π½Π° основС open-source инструмСнтов. Watir АлСксандр Π˜Ρ…Π΅Π»ΠΈΡ, EPAM Systems

Slide 2

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ВСстовый Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ – ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π² этом словС... Автоматизация тСстирования ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ open-source срСдств Watir – автоматизация тСстирования web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ruby ОписаниС практичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π° Π±Π°Π·Π΅ watir, ruby, rails, mysql

Slide 3

ВСстовыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π¦Π΅Π»ΠΈ ΠΈ Ρ‚ΠΈΠΏΡ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ВрСбования ΠΊ срСдству ΠΊΠ°ΠΊ качСствСнныС характСристики ВрСбования ΠΊ срСдству ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ возмоТностСй

Slide 4

ВСстовый Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ – ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π² этом словС... ВСстовый Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ – инфраструктура, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ тСстирования. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ: Единая концСпция создания ΠΈ управлСния Π°Π²Ρ‚ΠΎ-тСстами Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅ написаниС тСст кСйсов ЦСлостная систСма Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, источников Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² МаксимальноС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ усилия Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ тСстов Π’ΠΈΠΏΡ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²: Для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°/ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (domain-specific) ΠžΠ±Ρ‰Π΅ΠΉ направлСнности (для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ использования)

Slide 5

Π’Ρ‹Π±ΠΎΡ€ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° – это Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ комплСкса: Анализ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΊ срСдству тСстирования Анализ прилоТСния(-ΠΉ) – кандидата для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ характСристики Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Набор возмоТностСй Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π’Ρ‹Π±ΠΎΡ€ срСдств Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π”ΠΈΠ·Π°ΠΉΠ½ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΎΡ‚Π»Π°Π΄ΠΊΠ°, докумСнтация ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

Slide 6

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ тСстового Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Β  Π―Π·Ρ‹ΠΊ(-ΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Бвязка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ОписаниС тСстов (дСйствия, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ) РСализация Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅ Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ интСрфСйса (Interface Drivers) ВзаимодСйствиС ΠΈ синхронизация с тСстируСмой систСмой Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ„Ρ€Π΅ΠΉΠΌΠΎΡ€ΠΊΠ° (Test Harness) Запуск тСстовых Π½Π°Π±ΠΎΡ€ΠΎΠ² Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ прохоТдСния тСстов Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹

Slide 7

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: Π―Π·Ρ‹ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ БистСмныС языки программирования (C, C++, Java, C#) ΠœΠΎΡ‰Π½Ρ‹Π΅ ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹Π΅ языки (Perl, Tcl, Python, VBScript, JavaScript, Ruby) ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π―Π·Ρ‹ΠΊΠΈ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… (HTML, XML, CSV, Excel, YAML) ΠΠ°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, отсутствиС прСдставлСния Π»ΠΎΠ³ΠΈΠΊΠΈ Vendorscript – БобствСнный язык ΠΎΡ‚ производитСля инструмСнта ΠžΠ±Ρ‹Ρ‡Π½ΠΎ достаточно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с языками ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ использования, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык инструмСнта -Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ изучСния

Slide 8

ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅: ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ настройки Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ тСстовыС Π΄Π°Π½Π½Ρ‹Π΅ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ тСстов ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² интСрфСйса тСстируСмой систСмы Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тСстовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: Π’ Ρ‚Π΅Π»Π΅ скриптов Π’ инфраструктурС тСстового Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… Π’ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… источниках Π΄Π°Π½Π½Ρ‹Ρ… (Ρ„Π°ΠΉΠ»Ρ‹, Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…) Π’ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… модулях Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², verification points) ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅

Slide 9

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Web ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ВзаимодСйствия посрСдством ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ HTTP Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Web Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с web Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ (IE, FF, Opera, Safari, ΠΈ Ρ‚.Π΄.) Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Java GUI ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Java GUI прилоТСниями Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Windows GUI ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с интСрфСйсами Windows ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Win32, MFC Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ интСрфСйсов Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π”Ρ€ΡƒΠ³ΠΎΠ΅ (Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΈ интСрфСйсы) ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ интСрфСйса

Slide 10

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ тСстов ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ тСстовых Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Modularity-driven testing: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ дСкомпозиция тСстового ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тСстированиСм ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΊΠΎΠ΄Π°, Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ тСстов Data-Driven testing: парамСтризация ΠΈ тСстированиС, управляСмоС Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Keyword-Driven test design: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тСстированиСм ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ИспользованиС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… инструкций для описания тСст кСйсов Model-based testing: тСстированиС Π½Π° основС ΠΌΠΎΠ΄Π΅Π»ΠΈ АбстрактныС тСст кСйсы Π½Π° основС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ аспСкты тСстируСмой систСмы Hybrid testing: ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

Slide 11

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° (Harness) ΠΈ ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ (Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ) Β SEARCH – Π°Π½Π°Π³Ρ€Π°ΠΌΠΌΠ°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡ΠΈ тСстового Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°: Setup Execution Analysis (pass/fail) Reporting Cleanup Help (докумСнтация, Π»ΠΎΠ³ΠΈ, ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹, Ρ‚ΠΏ) ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ: Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ запуск тСстов ΠΈ тСстовых Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… прохоТдСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ тСста (pass/fail)

Slide 12

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ характСристики Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠŸΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ для примСнСния ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠŸΠΎΠ»Π½ΠΎΡ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ покрываСмости тСст кСйсов ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΠ΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ синхронизация с интСрфСйсом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° тСстирования ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ восстановлСниС окруТСния Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ВрСмя- ΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ тСстированиСм

Slide 13

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ характСристики Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π’Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π’Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ тСстов ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ тСстируСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π’Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Π˜Π·ΡƒΡ‡Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΈ удобство использования Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠŸΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Slide 14

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ характСристики Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° установки ΠΠ΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π—Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π”ΠΎΠ±Ρ€ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² управлСния ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ

Slide 15

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ВСстовыС Π΄Π°Π½Π½Ρ‹Π΅ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½Π΅ тСстового ΠΊΠΎΠ΄Π° Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ тСстовых Π΄Π°Π½Π½Ρ‹Ρ… ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode (UTF-8, UTF-16) ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ° Π“ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ интСрфСйса ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов интСрфСйса, поиск ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами ΠΈ ΠΏΠΎ мноТСствСнным критСриям, ΡΡ€Π΅Π΄Π½Π΅Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΉ поиск ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов ΠšΠ°Ρ€Ρ‚Π° / Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° для быстрой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (object spy) Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи дСйствий Π½Π°Π΄ тСстируСмой систСмой (Test Recorder, Record & Playback)

Slide 16

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ВСстовый Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°Π±ΠΎΡ€Π° тСстов ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ критСриям ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΈ рСгулярных запусков (Scheduling) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… условий для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ тСста ΠΈ для тСстового Π½Π°Π±ΠΎΡ€Π° БистСма ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций ΠΈ восстановлСния тСстового окруТСния (Error Handling and Recovery System) ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстов ΠΈ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Data-Driven) ВСстовый Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΈ ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ запуска ΠΈ управлСния ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… НСтрудоСмкоС ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ мощности ΠΏΡƒΡ‚Π΅ΠΌ добавлСния ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ нСзависимых ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²

Slide 17

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ВСстовый Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΈ ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ тСстовых ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Буммарная информация ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ тСстов (ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… тСстов, ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ошибок ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ) Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΈ Π»ΠΎΠ³ΠΎΠ² для тСстового Π½Π°Π±ΠΎΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: pass/fail/warning) Доступ ΠΊ истории ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… запусков, Π²Π΅Π΄Π΅Π½ΠΈΠ΅ статистики для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСзапуска Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ сгруппированных сцСнариСв Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ экспорта ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈ статистики УвСдомлСния ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… прохоТдСния тСстов (email, SMS, IM)

Slide 18

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ВСстовый Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΈ ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠœΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° Π°Π½Π°Π»ΠΈΠ· ошибок Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΎΠ³ΠΈ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ шаги для повторСния ошибки Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ состояния прилоТСния (ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹, HTML исходник web-страницы, Ρ‚ΠΏ) Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ окруТСния ΠΈ тСста Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ошибок ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ истории извСстных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

Slide 19

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠΎΡ€ΠΊΠ° ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² тСстирования) ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий прилоТСния (version control) Π’Π½Π΅ΡˆΠ½ΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ тСстов, Π΄Π°Π½Π½Ρ‹Ρ…, вСдСния ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈ Ρ‚ΠΏ – для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ тСстируСмой систСмы, для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… тСстов Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ докумСнтация, Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΡ… стандартов кодирования

Slide 20

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠΎΡ€ΠΊΠ° ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ измСрСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ статистики Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов ΠžΡ‚ΠΊΠ»ΠΈΠΊ тСстируСмой систСмы Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ инструмСнтами Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ управлСния тСстированиСм (Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ покрятия тСст кСйсов ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… тСстов, ΠΎΡ†Π΅Π½ΠΊΠ° эффСктивности Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°) Bug tracking систСма (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² прямо ΠΈΠ· ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² с автоматичСским Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π΅ΠΉ, ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ΠΎΠ², шагов для повторСния, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ окруТСния)

Slide 21

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ риски open-source срСдств ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π² open-source ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΏΡ€ΠΈ создании Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π² open-source Автоматизация тСстирования ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ open-source срСдств

Slide 22

ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ качСство Одна Π³ΠΎΠ»ΠΎΠ²Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π° Π΄Π²Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ВСсный ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, быстрая рСакция Π½Π° основныС Π½ΡƒΠΆΠ΄Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ БообщСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠŸΠΎΠΌΠΎΡ‰ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° инструмСнтов ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ΄ позволяСт ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, измСнСния ΠΈΠ»ΠΈ исправлСния ОбилиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для Π²Ρ‹Π±ΠΎΡ€Π° срСдств ΠΈ ΠΈΡ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ стандарты ΠΈ интСрфСйсы, Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° open-source срСдств

Slide 23

Риски open-source срСдств: бСсплатный сыр Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΌΡ‹ΡˆΠ΅Π»ΠΎΠ²ΠΊΠ΅β€¦

Slide 24

НСльзя Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ косвСнныС Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Π²Ρ‹Π±ΠΎΡ€ срСдств, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, обновлСния, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ Ρ‚ΠΏ НСобходимо Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ (качСство ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ) срСдства Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² производствС ΠŸΡ€ΠΎΡ†Π΅ΡΡ обновлСния вСрсий срСдства ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… open-source срСдств Π½Π΅ всСгда Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ цСлостности ΠΊΠΎΠ΄Π°, появлСнию ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² НСхватка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Риски open-source срСдств

Slide 25

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ идСя, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ увидят эффСктивноС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π΄ΠΎ опубликования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π“Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹ΠΉ, стратСгичСски мыслящий Π»ΠΈΠ΄Π΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²: Linux, Apache, MySQL, Selenium, Watir… ;) Π£ΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹

Slide 26

Рост популярности, качСства, надСТности ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ open-source срСдств Π² Ρ†Π΅Π»ΠΎΠΌ Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство доступных open-source срСдств для тСстирования Π‘Π°ΠΌΠΈ срСдства – бСсплатны Π‘Π²ΠΎΠ±ΠΎΠ΄Π° Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², отсутствиС ограничСнности Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… возмоТностСй ΠΊΠ°ΠΊ Π² коммСрчСских инструмСнтах НСт привязки ΠΊ языку Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ скриптов ΠΎΡ‚ производитСля Π“ΠΈΠ±ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Agile) ΠΈ open-source срСдства тСстирования Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎ связаны Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ со срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠžΠ±Ρ‰ΠΈΠΉ язык программирования И Ρ‚Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ - Π³ΠΈΠ±ΠΊΠΈΠ΅ ;) ВСстовыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠŸΠΎΡ‡Π΅ΠΌΡƒ open-source? ΠŸΠΎΡ‡Π΅ΠΌΡƒ сСйчас?

Slide 27

ВСстовыС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠŸΠΎΡ‡Π΅ΠΌΡƒ open-source? ΠŸΠΎΡ‡Π΅ΠΌΡƒ сСйчас? ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

Slide 28

Π’Ρ‹Π±ΠΎΡ€ языка, подходящСго для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π’Ρ‹Π±ΠΎΡ€ ΠΈΠ»ΠΈ созданиС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° интСрфСйса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° тСстирования, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° интСрфСйса Π’Ρ‹Π±ΠΎΡ€ ΠΈ/ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° тСстов, Π΅Π³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ тСстовых ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ…; Π²Ρ‹Π±ΠΎΡ€ ΠΈ/ΠΈΠ»ΠΈ рСализация ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² РСализация Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ, интСграция ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, интСграция с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ срСдствами ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π² open-source

Slide 29

НСобходимо ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Β«Π°Π½Π°Ρ‚ΠΎΠΌΠΈΡŽΒ» тСстовых срСдств ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ интСрфСйсов Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π² open-source ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Open-source срСдства Π΄Π°ΡŽΡ‚ свободу ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ

Slide 30

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ стандартизированныС интСрфСйсы ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π±Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Π΅Π±Π΅ интСрфСйсы прилоТСния Главная Ρ†Π΅Π»ΡŒ – тСстированиС! Π’Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послСдниС вСрсии open-source срСдств ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ срСдства быстро Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ Часто ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС вСрсии Π Π°Π±ΠΎΡ‚Π°ΠΉ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π½Π°Π΄ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ прилоТСния ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ интСрфСйсами (Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ) ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π² open-source Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Slide 31

ΠžΡ‚Π½ΠΎΡΠΈΡΡŒ ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ ΠΈ тСстовому ΠΊΠΎΠ΄Ρƒ ΠΊΠ°ΠΊ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΈ простая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π‘Π½Π°Ρ‡Π°Π»Π° простой ΠΊΠΎΠ΄ οƒ  тСстированиС οƒ  ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ РСгулярныС Ρ€Π΅Π²ΡŒΡŽ ΠΊΠΎΠ΄Π°, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, DRY Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ кодирования ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий (branching) для Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий (releases) тСстируСмой систСмы ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π² open-source Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Slide 32

ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ Π½Π°Π²Ρ‹ΠΊΠΎΠ² для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (Software Design Engineer in Test) Навыки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ кодирования Навыки Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π° Навыки тСстирования ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π² open-source ΠŸΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ обязанностСй: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ядра Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ автоматичСских тСстов

Slide 33

Web Application Testing In Ruby ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Watir ΠΏΠ΅Ρ€Π΅Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ open-source срСдствами ΠžΠ±Π·ΠΎΡ€ основных общСдоступных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° Π±Π°Π·Π΅ Watir Watir – автоматизация тСстирования web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ruby

Slide 34

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ динамичСский open-source язык программирования высокого уровня с Π½Π°Ρ†Π΅Π»ΠΎΠΌ Π½Π° простоту ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π­Π»Π΅Π³Π°Π½Ρ‚Π½Ρ‹ΠΉ ΠΈ СстСствСнный синтаксис для быстрого ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ программирования: Β«ΠΊΠ°ΠΊ Π΄ΡƒΠΌΠ°ΡŽ – Ρ‚Π°ΠΊ ΠΈ ΠΏΠΈΡˆΡƒΒ» Π―Π·Ρ‹ΠΊ программирования с Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сбалансированным Π½Π°Π±ΠΎΡ€ΠΎΠΌ возмоТностСй ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, reflection ΠžΠ±Π»Π°Π΄Π°Π΅Ρ‚ высокой ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ (ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ) АвтоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Бтрогая динамичСская типизация Π΄Π°Π½Π½Ρ‹Ρ… ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-нСзависимая ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ДинамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ … Ruby – язык, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π» Π±Ρ‹ сам Будда…

Slide 35

ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΈ удобная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (ruby gem) для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ web Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Watir – автоматизация тСстирования web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ruby

Slide 36

Watir – Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Internet Explorer Web-сСрвСр Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Ruby & Watir : Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ интСрфСйса Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ для IE посрСдством OLE/COM ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Watir управляСт Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ (IE) Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ – Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с настоящими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ DOM web-страницы

Slide 37

Document Object Model ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль элСмСнтов web-страницы

Slide 38

Document Object Model ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль элСмСнтов web-страницы

Slide 39

MSDN API для доступа ΠΈ управлСния IE DOM Ρ‡Π΅Ρ€Π΅Π· OLE/COM ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»

Slide 40

Watir 1.5.6 Π² дСйствии

Slide 41

Watir: Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Watir Windows 2000, XP, 2003 Server, Vista IE 5.5, 6, 7 FireWatir Windows, Mac, Linux Firefox 2, 3 SafariWatir OS X Safari Celerity ВСстированиС Π±Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (HTTP) Watir + Selenium RC ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Opera ΠΈ WebKit

Slide 42

Watir: ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Watij РСализация для Java WatiN РСализация для .Net WatirCraft ЦСль: кросс-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ΅ тСстированиС ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π° основС Watir

Slide 43

Watir 1.6.2 анонсирован 6 ноября 2008 ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Π°Ρ интСграция Watir ΠΈ FireWatir Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ кросс-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ совмСстимости FireWatir Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всС возмоТности Watir ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° поиска Π»ΡŽΠ±Ρ‹Ρ… элСмСнтов ΠΏΠΎ мноТСствСнным Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ Π² ΠΎΠ±Π΅ΠΈΡ… рСализациях (Watir & FireWatir) Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½ Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния тСстов Π² IE ΠœΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ исправлСния http://wiki.openqa.org/ ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ слСдуСт… ;)

Slide 44

Watir 1.6.2 Π² дСйствии

Slide 45

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Watir? Π§Π΅ΠΌ ΠΎΠ½ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… open-source срСдств Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ? ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ, эффСктивный ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс (API) для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° страницС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ JavaScript ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ЕстСствСнная ΠΈ удобная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SSL страниц, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ (HTTP/HTTPS – Same Origin Policy) Π Π°Π±ΠΎΡ‚Π° (ΠΏΠΎΠΊΠ° ограничСнная) с security alerts, modal dialogs ΠΈ popups Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ срСд – главная Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Watir Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠžΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΉ, Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ, ruby ΠΈ watir – ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства для построСния простых ΠΈ эффСктивных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π‘ Watir – всС быстро ΠΈ Π² ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ : Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅, установка, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈ рСализация Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… возмоТностСй

Slide 46

Watir: Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ срСдства ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструмСнты ВСстовый Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Test::Unit, RSpec DOM-инспСктор Firebug, IE Dev Toolbar Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Eclipse + RubyDevelopmentTools ΠΏΠ»Π°Π³ΠΈΠ½ Π—Π°ΠΏΠΈΡΡŒ дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ WatirMaker, WatirRecoder++, CubicTest Π’Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² Log4r HTTP-инспСктор HTTP Fiddler ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠ²ΠΎΡ€ΠΊΠ° Π½Π° Π±Π°Π·Π΅ Watir WET (http://wet.qantom.org/)

Slide 47

ΠžΠ±Ρ‰Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ возмоТности ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ интСрСсных ΠΈΠ΄Π΅ΠΉ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ рСализация Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π° Π±Π°Π·Π΅ watir/ruby/rails/mysql

Slide 48

ΠžΠ±Ρ‰ΠΈΠ΅ трСбования ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ: Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (http/https, Ajax) Π‘ΠΎΠ»Π΅Π΅ 40 Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ иСроглифичСскиС, постоянноС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π»ΠΎΠΊΠ°Π»Π΅ΠΉ КаТдая локаль ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ настройки, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Ρ‚, Ρ†Π΅Π½, ΠΈ Ρ‚Π΄ ЧастыС выпуски Π½ΠΎΠ²Ρ‹Ρ… вСрсий (releases), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ тСстирования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠ², рСгрСссионноС тСстированиС Π½Π° всСх локалях Expedia EMEA, Hotels.com EMEA ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈ автоматизация

Slide 49

Π‘Π΅Ρ€Π²Π΅Ρ€ АрхитСктура Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π° основС Watir Π‘Π” Код Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠšΠ»ΠΈΠ΅Π½Ρ‚ K Код Π―Π΄Ρ€ΠΎ ΠšΠ»ΠΈΠ΅Π½Ρ‚ 1 … Web-интСрфСйс Консоль Watir Browser

Slide 50

БСрвСрная Ρ‡Π°ΡΡ‚ΡŒ: ВСрсии 1.*: Apache/PHP + MySQL ВСрсии 2.*: Mongrel/ruby-on-rails + MySQL ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π² Production ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ (трСбования бСзопасности): MS IIS/ruby-on-rails + MS SQL Server ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ (ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ добавлСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²): Ruby, Watir, Sponte gem (ядро Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°), Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ CистСмы управлСния вСрсиями: CVS, MS Perforce АрхитСктура Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π° основС Watir

Slide 51

БобствСнный Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ тСстов, Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ запуск, распрСдСлСнноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° многочислСнных ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, свободная ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Гибкая Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ для Π½ΠΎΠ²Ρ‹Ρ… тСстовых ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ (сСрвСров), Π»ΠΎΠΊΠ°Π»Π΅ΠΉ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ вСрсий Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания data-driven сцСнариСв ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тСстовых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная структура ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² тСстировании, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ модСль UI прилоТСния, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π±Π΅Π· рСпозитория ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ тСстов Π½Π° основС повСдСния тСстируСмой систСмы, тСст кСйсы Π½Π° DSL (domain specific language) Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс, ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°

Slide 52

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Watir ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Гибкая синхронизация с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (слоТныС страницы, Ajax Π²Ρ‹Π·ΠΎΠ²Ρ‹, тСстированиС с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ JavaScript Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅) РСализация Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… интСрфСйсов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с внСшними источниками Π΄Π°Π½Π½Ρ‹Ρ… (XLS, XML, Excel XML, MySQL, MS SQL Server), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Unicode ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ…, Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ…, тСстовых Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π·Π½Ρ‹Ρ… Π»ΠΎΠΊΠ°Π»Π΅ΠΉ ВСстированиС Ρ‡Π΅Ρ€Π΅Π· HTTP ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»: рСкурсивныС тСсты Π½Π° Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ broken-links Π Π°Π±ΠΎΡ‚Π° с настройками Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ соСдинСния (cookies, cache, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ JavaScript, установка HTTP headers) ВСстированиС: тСхничСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Slide 53

Sponte: Запуск тСстового Π½Π°Π±ΠΎΡ€Π°

Slide 54

Sponte: Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… сцСнария

Slide 56

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Bernard Miles, QA Manager and Architect, Expedia Limited, UK Stanislaw Wozniak, Test Automation Engineer, Expedia Limited, UK Sponte Lead Developer Tamas Zombori, Test Automation Engineer, Epam Systems Inc, Hungary Hcom Team Test Automation Engineer

Slide 57

Бпасибо Π·Π° Π’Π°ΡˆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π£ Вас Π΅ΡΡ‚ΡŒ вопросы ΠΊΠΎ ΠΌΠ½Π΅? Если ΠΌΡ‹ дошли Π΄ΠΎ этого слайда – Π·Π½Π°Ρ‡ΠΈΡ‚ я улоТился. Π£Ρ€Π°! Π― ΠΎΡ‡Π΅Π½ΡŒ надСюсь, Ρ‡Ρ‚ΠΎ Ρƒ Вас Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ появятся Π² дальнСйшСм вопросы ΠΈ ΠΈΠ΄Π΅ΠΈ для обсуТдСния.

Slide 58

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Π°Ρ информация <epam> Π˜Ρ…Π΅Π»ΠΈΡ АлСксандр EPAM Systems ΡƒΠ». Π’. Π₯ΠΎΡ€ΡƒΠΆΠ΅ΠΉ, 29 220123 Минск, Π‘Π΅Π»Π°Ρ€ΡƒΡΡŒ Ρ‚Π΅Π»: +375-17-2101662 факс: +375-17-2101168 ΠΏΠΎΡ‡Ρ‚Π°: aliaksandr_ikhelis@epam.com Π±Π»ΠΎΠ³: http://muld4.blogspot.com </epam> |

Summary: Presentation on open source testing frameworks at SQA Days 2008 conference by Aliaksandr Ikhelis.

Tags: test automation sqa days watir conference framework

URL: