SlideShare a Scribd company logo
Специфика тестирования
проектов с открытым исходным
             кодом
    Алексей Лянгузов, Sun Microsystems SPB
План

•   Введение
•   Понятия
•   Особенности тестирования
•   Минимизация усилий на тестирование
•   Польза открытости ПО для тестирования
•   Вопросы
Введение
• Цели
   – Поделиться опытом тестирования открытого ПО
   – Найти особенности тестирования открытого ПО
   – Рассказать “Чего избегать” и “К чему стремиться”
   – Показать, что тестирование зависит от ...
   – Обсудить высказывание: “Все ошибки становятся
     заметны, если на них обращено достаточно
     много глаз”
   – Разоблачить мнение, что свободные программы
     тестируют только разработчики и сообщество.


Буду помечать особенности
                                   Спасибо интернету за картинки!
Далее...

•   Введение
•   Понятия
•   Особенности тестирования
•   Минимизация усилий на тестирование
•   Польза открытости ПО для тестирования
•   Вопросы
Свободное, бесплатное,
      открытое
Свободное, бесплатное,
      открытое
Свободное, бесплатное,
      открытое
Свободное, бесплатное,
      открытое
Собор vs Базар




    Два типа разработки описанных
Эриком Реймондом в одноименном эссе.

 http://lib.ru/LINUXGUIDE/bazar.txt_with-big-pictures.html
Наши продукты

ME Framework Project
                 https://cqme.dev.java.net/

JavaTest Harness Project
               https://jtharness.dev.java.net/

Signature Test Project
                https://sigtest.dev.java.net/
Рассматриваемая ситуация

свободная          коммерческая




     Двойная лицензия
Рассматриваемая ситуация

свободная          коммерческая




     Двойная лицензия


                                  Нет функциональных
                                  различий (ну почти)
Рассматриваемая ситуация

свободная           коммерческая




     Двойная лицензия


                                   Нет функциональных
                                   различий (ну почти)




     Разработка прозрачна
     (принцип базара)
Далее...

•   Введение
•   Понятия
•   Особенности тестирования
•   Минимизация усилий на тестирование
•   Польза открытости ПО для тестирования
•   Вопросы
Исходный код
1. Инспекция исходных текстов программы

2. Проверки, не зависящие от языка
программирования и используемых технологий

3. Проверки, зависящие от
языка программирования
и используемых технологий
Инспекция
Инспекция- Peer Review !
                                            Добавить код
                                             Добавить код
                                            вврепозиторий
                                               репозиторий
                                                    ДА
                                      НЕТ
                  Исправить код
                   Исправить код                ОК?
                                                 ОК?




                                       Отправить рецензенту
                                        Отправить рецензенту
Написать код
 Написать код   Сделать change log
                 Сделать change log                ии
                                      СС: email alias ––для всех!
                                       СС: email alias для всех!
Проверки не зависящие от
       языка программирования

   Плохие слова       Непечатные символы



    Одинаковые
                           Опечатки
   имена файлов



Нежелательные слова
                       Унификация EOL
  и имена компаний
Проверки не зависящие от
       языка программирования

   Плохие слова       Непечатные символы



    Одинаковые                         c
   имена файлов       /* I write super kode !!! */



Нежелательные слова
                        Унификация EOL
  и имена компаний
Проверки не зависящие от
       языка программирования
                   F
Нажмите клавишу SHIT   Непечатные символы



    Одинаковые                          c
   имена файлов        /* I write super kode !!! */



Нежелательные слова
                         Унификация EOL
  и имена компаний
Проверки не зависящие от
       языка программирования
                   F
Нажмите клавишу SHIT



    Одинаковые                          c
   имена файлов        /* I write super kode !!! */



Нежелательные слова
                         Унификация EOL
  и имена компаний
Проверки не зависящие от
       языка программирования
                   F
Нажмите клавишу SHIT



    Одинаковые                          c
   имена файлов        /* I write super kode !!! */



Нежелательные слова
  и имена компаний
Проверки не зависящие от
       языка программирования
                   F
Нажмите клавишу SHIT



                                        c
                       /* I write super kode !!! */



Нежелательные слова
  и имена компаний
Проверки не зависящие от
        языка программирования
                   F
Нажмите клавишу SHIT



                                         c
                        /* I write super kode !!! */


/* Этот код закрывает
уязвимость в коде
компании Noname */
Проверки зависящие от
      языка программирования

                            Check Style
Аудит исходного кода
                             FindBugs


XML           Валидация документов против
              DTD, XSD, RNG.

Продукт,           Проверка правильности
Репозиторий        расположения исходных
                   файлов и их целостность
Копирайты
               1. Копирайты должны быть
               2. Копирайты должны быть правильными


х Отсутствие копирайта в файле

х Использование коммерческого копирайта
вместо свободного копирайта

х Использование свободного копирайта вместо
коммерческого копирайта

х Удаление или изменение чужого копирайта
Внутренняя информация
           и инструменты
●
  Имена хостов или IP адреса
●
  Имена пользователей, пароли
●
  Сокращения и жаргон
●
  Вещи имеющие трейдмарки (например лого,
сплэш-скрин)
●
  Инструменты “для внутреннего пользования”
●
  Патентованые или “секретные” алгоритмы и
сертификаты.
           tary Con          fidential
    Proprie
Инфраструктура




Новый дефект трэкер
Инфраструктура




Новый дефект трэкер
                      Новые инструменты
Инфраструктура




       Новый дефект трэкер
                               Новые инструменты




Осторожно, тормозит!
Инфраструктура




       Новый дефект трэкер
                                     Новые инструменты




Осторожно, тормозит!
                             Плохо контролируема
Культура



Контрибьютеры
Культура



Контрибьютеры


                    Нет группы поддержки (support)
Культура



         Контрибьютеры


                                      Нет группы поддержки (support)




Общение с комьюнити – форум, e-mail
Культура



         Контрибьютеры


                                      Нет группы поддержки (support)




Общение с комьюнити – форум, e-mail
                                         У вашей фирмы есть секреты
Открытость тестирования
        Подготовка – Планирование – Инструменты –
       Результаты – Отчёты – Конфигурации - Данные
                                 Не касается модульных (unit) тестов!


                                                      QA
   Open Source
                                                                           Нужно ли вам это?


                                                                           Готовы ли вы к этому?


http://www.vocabahead.com/VocabularyVideos/Videos/TabId/59/VideoId/461/Default.aspx (unwieldy)
Построение продукта
              (build)


Разные операционки
Построение продукта
                      (build)


       Разные операционки




Разные ключи запуска
Построение продукта
                      (build)


       Разные операционки




                               3rd party soft




Разные ключи запуска
Построение продукта
                      (build)


       Разные операционки




                                                3rd party soft




Разные ключи запуска

                            Уникальное оборудование
Функциональное
                     тестирование
                 При двойном лицензировании
Дано:
1 лицензия → 1 продукт
1 продукт → количество тестов Vи (объём тестирования)
Vи = [v1, v2, … vn]

Надо:
2 продукта → Vдл?
Функциональное
                      тестирование
                    При двойном лицензировании
Ответ 1:
Vдл = 2 * Vи

Ответ 2:
Vдл = Va + Vb, где
Va = [v1, v3, v5, …] , Vb = [v2, v4, v6, …]

Ответ 3:
Vдл = ((Va1 + Vb1) + (Va2 + Vb2))/2, где
Va1 = Va для продукта 1, Va2 = Va для продукта 2
Vb1 = Vb для продукта 1, Vb2 = Vb для продукта 2
Функциональное
                   тестирование
                  При двойном лицензировании
Мой Ответ:
               Vдл = Vобщ + Vx + Vy

Где:

Vобщ = [v1, v2, v3 … vk] # некий общий набор тестов

Vx = [vk+1, vk+2 … vm] # тесты для продукта 1

Vy = [vm+1, vm+2 … vn] # тесты для продукта 2
Специфика тестирования
           при двойной лицензии

    Тестируйте разницу         Общее




 Специфика продукта 1              Специфика продукта 2
     (свободный)                      (коммерческий)

Имена продуктов
Номера версий
Форма поставки (zip vs. installer)
Наличие/отсутствие чего-нибудь (документация, примеры)
Специфика тестирования
       при двойной лицензии
Сдвигайте время релизов

                 t                       t
       T1 = T2              T1 ≠ T2


       Поверьте, готовить к выпуску
            два очень похожих,
            но разных продукта
              одновременно
    реально неудобно и ведет к ошибкам
Далее...

•   Введение
•   Понятия
•   Особенности тестирования
•   Минимизация усилий на тестирование
•   Польза открытости ПО для тестирования
•   Вопросы
Минимизация усилий на
                    тестирование
 Только свободный             Двойная лицензия и
 дистрибутив                  разные возможности

 Закрытость                   Открытость
 тестирования                 тестирования

 Закрытость                   Открытость
 разработки                   разработки
 Закрытость                   Открытость
 исходного кода               исходного
 и данных                     кода и данных




проще                                  сложнее
Далее...

•   Введение
•   Понятия
•   Особенности тестирования
•   Минимизация усилий на тестирование
•   Польза открытости ПО для тестирования
•   Вопросы
Польза открытости ПО
                для тестирования
     Тестирование             Сообщество
Находит пробелы и ошибки в            Находит ошибки
тестировании

Использует пользовательские   Предоставляет тестовые
данные, конфигурации                          данные

Предоставляет описание             Помогает проводить
тестов, сценарии и скрипты      тестирование на своем
                                        оборудовании
Приоритезирует и планирует    Предоставляет знание об
тестирование                   использовании продукта
Закон Линуса
                           Все ошибки становятся
                            заметны, если на них
                            обращено достаточно
                                 много глаз


                           Кто-то находит проблему.
                           А кто-то еще ее понимает.
                           И я часто замечаю, что
                           поиск требует
                           наибольшего навыка
                                              Линус Торвальдс

Given enough eyeballs, all bugs are shallow
Вопросы
Вопросы

• Сперва мои
Вопросы

• Сперва мои
  ─ Зачем   проверять исходники?
Вопросы

• Сперва мои
  ✔ Зачем проверять исходники?
  ─ Какие тесты невозможны?
Вопросы

• Сперва мои
  ✔   Зачем проверять исходники?
  ✔   Какие тесты невозможны?

• А теперь ваши !
Спасибо!

Alexey Lyanguzov
Software Quality Specialist
Sun Microsystems, St. Petersburg

More Related Content

What's hot

Тестирование в диджитал проектах
Тестирование в диджитал проектахТестирование в диджитал проектах
Тестирование в диджитал проектахАндрей Медведев
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllMykyta Hopkalo
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовSergey Borisov
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Эльвина Сакаева
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest
 
Developer experience и API как продукт
Developer experience и API как продуктDeveloper experience и API как продукт
Developer experience и API как продуктAnastasia Goryacheva
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Разработка современной электроники с прицелом на массовый выпуск. На чем?
Разработка современной электроники с прицелом на массовый выпуск. На чем?Разработка современной электроники с прицелом на массовый выпуск. На чем?
Разработка современной электроники с прицелом на массовый выпуск. На чем?Ingria. Technopark St. Petersburg
 
Разработка современной электроники с прицелом на массовый выпуск. Почем?
Разработка современной электроники с прицелом на массовый выпуск. Почем?Разработка современной электроники с прицелом на массовый выпуск. Почем?
Разработка современной электроники с прицелом на массовый выпуск. Почем?Ingria. Technopark St. Petersburg
 
Разработка современной электроники (семинар первый)
Разработка современной электроники (семинар первый)Разработка современной электроники (семинар первый)
Разработка современной электроники (семинар первый)Ingria. Technopark St. Petersburg
 
Поиск и чтение унаследованного кода
Поиск и чтение унаследованного кодаПоиск и чтение унаследованного кода
Поиск и чтение унаследованного кодаCUSTIS
 
Поиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложениеПоиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложениеSQALab
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Anthony Marchenko
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...solit
 

What's hot (19)

Тестирование в диджитал проектах
Тестирование в диджитал проектахТестирование в диджитал проектах
Тестирование в диджитал проектах
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотов
 
Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)Особенности тестирования мобильных приложений (Android, iOS)
Особенности тестирования мобильных приложений (Android, iOS)
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
Developer experience и API как продукт
Developer experience и API как продуктDeveloper experience и API как продукт
Developer experience и API как продукт
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Разработка современной электроники с прицелом на массовый выпуск. На чем?
Разработка современной электроники с прицелом на массовый выпуск. На чем?Разработка современной электроники с прицелом на массовый выпуск. На чем?
Разработка современной электроники с прицелом на массовый выпуск. На чем?
 
Разработка современной электроники с прицелом на массовый выпуск. Почем?
Разработка современной электроники с прицелом на массовый выпуск. Почем?Разработка современной электроники с прицелом на массовый выпуск. Почем?
Разработка современной электроники с прицелом на массовый выпуск. Почем?
 
Разработка современной электроники (семинар первый)
Разработка современной электроники (семинар первый)Разработка современной электроники (семинар первый)
Разработка современной электроники (семинар первый)
 
50 оттенков красного
50 оттенков красного50 оттенков красного
50 оттенков красного
 
Поиск и чтение унаследованного кода
Поиск и чтение унаследованного кодаПоиск и чтение унаследованного кода
Поиск и чтение унаследованного кода
 
Step 1
Step 1Step 1
Step 1
 
Sqa8 urazov
Sqa8 urazovSqa8 urazov
Sqa8 urazov
 
Поиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложениеПоиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложение
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 

Viewers also liked

Как я работу менял
Как я работу менялКак я работу менял
Как я работу менялAlexey Lyanguzov
 
U test utester-handbook-20130613
U test utester-handbook-20130613U test utester-handbook-20130613
U test utester-handbook-20130613Raj esh
 
Грамотная работа с дефект-трекером
Грамотная работа с дефект-трекеромГрамотная работа с дефект-трекером
Грамотная работа с дефект-трекеромAlexey Lyanguzov
 
Неудобство использования ПО. В чем вина тестировщиков?
Неудобство использования ПО. В чем вина тестировщиков?Неудобство использования ПО. В чем вина тестировщиков?
Неудобство использования ПО. В чем вина тестировщиков?Alexey Lyanguzov
 
Контекстное тестирование ПО
Контекстное тестирование ПОКонтекстное тестирование ПО
Контекстное тестирование ПОAlexey Lyanguzov
 
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QAFest
 

Viewers also liked (8)

Как я работу менял
Как я работу менялКак я работу менял
Как я работу менял
 
Test manager - who is that?
Test manager - who is that?Test manager - who is that?
Test manager - who is that?
 
U test utester-handbook-20130613
U test utester-handbook-20130613U test utester-handbook-20130613
U test utester-handbook-20130613
 
Partnership
PartnershipPartnership
Partnership
 
Грамотная работа с дефект-трекером
Грамотная работа с дефект-трекеромГрамотная работа с дефект-трекером
Грамотная работа с дефект-трекером
 
Неудобство использования ПО. В чем вина тестировщиков?
Неудобство использования ПО. В чем вина тестировщиков?Неудобство использования ПО. В чем вина тестировщиков?
Неудобство использования ПО. В чем вина тестировщиков?
 
Контекстное тестирование ПО
Контекстное тестирование ПОКонтекстное тестирование ПО
Контекстное тестирование ПО
 
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
 

Similar to Особенности тестирования открытого ПО

Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла0leGG
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продуктыОлег Стрекаловский
 
CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...
CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...
CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...CodeFest
 
CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...
CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...
CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...Constantin Kaplinsky
 
О пользе Open Source
О пользе Open SourceО пользе Open Source
О пользе Open SourceAnton Konev
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU
 
Code review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияSQALab
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...COMAQA.BY
 
Тестирование инсталляторов
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторовSQALab
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QAFest
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016Unigine Corp.
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.Mad Devs
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptStas Vyschepan
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
Автоматизация тестирования. Глобализация
Автоматизация тестирования. ГлобализацияАвтоматизация тестирования. Глобализация
Автоматизация тестирования. ГлобализацияSQALab
 
YouLead Tomsk 2012 — Constantin Kaplinsky
YouLead Tomsk 2012 — Constantin KaplinskyYouLead Tomsk 2012 — Constantin Kaplinsky
YouLead Tomsk 2012 — Constantin KaplinskyConstantin Kaplinsky
 

Similar to Особенности тестирования открытого ПО (20)

Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продукты
 
CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...
CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...
CodeFest 2012. Каплинский К. — Разработка Open Source продуктов как прибыльны...
 
CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...
CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...
CodeFest 2012. Разработка Open Source продуктов как прибыльный бизнес, Конста...
 
О пользе Open Source
О пользе Open SourceО пользе Open Source
О пользе Open Source
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест Джоэла
 
Code review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспечения
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
 
Тестирование инсталляторов
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторов
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
 
tech_writer_2016_fin
tech_writer_2016_fintech_writer_2016_fin
tech_writer_2016_fin
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScript
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Автоматизация тестирования. Глобализация
Автоматизация тестирования. ГлобализацияАвтоматизация тестирования. Глобализация
Автоматизация тестирования. Глобализация
 
YouLead Tomsk 2012 — Constantin Kaplinsky
YouLead Tomsk 2012 — Constantin KaplinskyYouLead Tomsk 2012 — Constantin Kaplinsky
YouLead Tomsk 2012 — Constantin Kaplinsky
 
Team workflow
Team workflowTeam workflow
Team workflow
 

Особенности тестирования открытого ПО

  • 1. Специфика тестирования проектов с открытым исходным кодом Алексей Лянгузов, Sun Microsystems SPB
  • 2. План • Введение • Понятия • Особенности тестирования • Минимизация усилий на тестирование • Польза открытости ПО для тестирования • Вопросы
  • 3. Введение • Цели – Поделиться опытом тестирования открытого ПО – Найти особенности тестирования открытого ПО – Рассказать “Чего избегать” и “К чему стремиться” – Показать, что тестирование зависит от ... – Обсудить высказывание: “Все ошибки становятся заметны, если на них обращено достаточно много глаз” – Разоблачить мнение, что свободные программы тестируют только разработчики и сообщество. Буду помечать особенности Спасибо интернету за картинки!
  • 4. Далее... • Введение • Понятия • Особенности тестирования • Минимизация усилий на тестирование • Польза открытости ПО для тестирования • Вопросы
  • 9. Собор vs Базар Два типа разработки описанных Эриком Реймондом в одноименном эссе. http://lib.ru/LINUXGUIDE/bazar.txt_with-big-pictures.html
  • 10. Наши продукты ME Framework Project https://cqme.dev.java.net/ JavaTest Harness Project https://jtharness.dev.java.net/ Signature Test Project https://sigtest.dev.java.net/
  • 11. Рассматриваемая ситуация свободная коммерческая Двойная лицензия
  • 12. Рассматриваемая ситуация свободная коммерческая Двойная лицензия Нет функциональных различий (ну почти)
  • 13. Рассматриваемая ситуация свободная коммерческая Двойная лицензия Нет функциональных различий (ну почти) Разработка прозрачна (принцип базара)
  • 14. Далее... • Введение • Понятия • Особенности тестирования • Минимизация усилий на тестирование • Польза открытости ПО для тестирования • Вопросы
  • 15. Исходный код 1. Инспекция исходных текстов программы 2. Проверки, не зависящие от языка программирования и используемых технологий 3. Проверки, зависящие от языка программирования и используемых технологий
  • 17. Инспекция- Peer Review ! Добавить код Добавить код вврепозиторий репозиторий ДА НЕТ Исправить код Исправить код ОК? ОК? Отправить рецензенту Отправить рецензенту Написать код Написать код Сделать change log Сделать change log ии СС: email alias ––для всех! СС: email alias для всех!
  • 18. Проверки не зависящие от языка программирования Плохие слова Непечатные символы Одинаковые Опечатки имена файлов Нежелательные слова Унификация EOL и имена компаний
  • 19. Проверки не зависящие от языка программирования Плохие слова Непечатные символы Одинаковые c имена файлов /* I write super kode !!! */ Нежелательные слова Унификация EOL и имена компаний
  • 20. Проверки не зависящие от языка программирования F Нажмите клавишу SHIT Непечатные символы Одинаковые c имена файлов /* I write super kode !!! */ Нежелательные слова Унификация EOL и имена компаний
  • 21. Проверки не зависящие от языка программирования F Нажмите клавишу SHIT Одинаковые c имена файлов /* I write super kode !!! */ Нежелательные слова Унификация EOL и имена компаний
  • 22. Проверки не зависящие от языка программирования F Нажмите клавишу SHIT Одинаковые c имена файлов /* I write super kode !!! */ Нежелательные слова и имена компаний
  • 23. Проверки не зависящие от языка программирования F Нажмите клавишу SHIT c /* I write super kode !!! */ Нежелательные слова и имена компаний
  • 24. Проверки не зависящие от языка программирования F Нажмите клавишу SHIT c /* I write super kode !!! */ /* Этот код закрывает уязвимость в коде компании Noname */
  • 25. Проверки зависящие от языка программирования Check Style Аудит исходного кода FindBugs XML Валидация документов против DTD, XSD, RNG. Продукт, Проверка правильности Репозиторий расположения исходных файлов и их целостность
  • 26. Копирайты 1. Копирайты должны быть 2. Копирайты должны быть правильными х Отсутствие копирайта в файле х Использование коммерческого копирайта вместо свободного копирайта х Использование свободного копирайта вместо коммерческого копирайта х Удаление или изменение чужого копирайта
  • 27. Внутренняя информация и инструменты ● Имена хостов или IP адреса ● Имена пользователей, пароли ● Сокращения и жаргон ● Вещи имеющие трейдмарки (например лого, сплэш-скрин) ● Инструменты “для внутреннего пользования” ● Патентованые или “секретные” алгоритмы и сертификаты. tary Con fidential Proprie
  • 30. Инфраструктура Новый дефект трэкер Новые инструменты Осторожно, тормозит!
  • 31. Инфраструктура Новый дефект трэкер Новые инструменты Осторожно, тормозит! Плохо контролируема
  • 33. Культура Контрибьютеры Нет группы поддержки (support)
  • 34. Культура Контрибьютеры Нет группы поддержки (support) Общение с комьюнити – форум, e-mail
  • 35. Культура Контрибьютеры Нет группы поддержки (support) Общение с комьюнити – форум, e-mail У вашей фирмы есть секреты
  • 36. Открытость тестирования Подготовка – Планирование – Инструменты – Результаты – Отчёты – Конфигурации - Данные Не касается модульных (unit) тестов! QA Open Source Нужно ли вам это? Готовы ли вы к этому? http://www.vocabahead.com/VocabularyVideos/Videos/TabId/59/VideoId/461/Default.aspx (unwieldy)
  • 37. Построение продукта (build) Разные операционки
  • 38. Построение продукта (build) Разные операционки Разные ключи запуска
  • 39. Построение продукта (build) Разные операционки 3rd party soft Разные ключи запуска
  • 40. Построение продукта (build) Разные операционки 3rd party soft Разные ключи запуска Уникальное оборудование
  • 41. Функциональное тестирование При двойном лицензировании Дано: 1 лицензия → 1 продукт 1 продукт → количество тестов Vи (объём тестирования) Vи = [v1, v2, … vn] Надо: 2 продукта → Vдл?
  • 42. Функциональное тестирование При двойном лицензировании Ответ 1: Vдл = 2 * Vи Ответ 2: Vдл = Va + Vb, где Va = [v1, v3, v5, …] , Vb = [v2, v4, v6, …] Ответ 3: Vдл = ((Va1 + Vb1) + (Va2 + Vb2))/2, где Va1 = Va для продукта 1, Va2 = Va для продукта 2 Vb1 = Vb для продукта 1, Vb2 = Vb для продукта 2
  • 43. Функциональное тестирование При двойном лицензировании Мой Ответ: Vдл = Vобщ + Vx + Vy Где: Vобщ = [v1, v2, v3 … vk] # некий общий набор тестов Vx = [vk+1, vk+2 … vm] # тесты для продукта 1 Vy = [vm+1, vm+2 … vn] # тесты для продукта 2
  • 44. Специфика тестирования при двойной лицензии Тестируйте разницу Общее Специфика продукта 1 Специфика продукта 2 (свободный) (коммерческий) Имена продуктов Номера версий Форма поставки (zip vs. installer) Наличие/отсутствие чего-нибудь (документация, примеры)
  • 45. Специфика тестирования при двойной лицензии Сдвигайте время релизов t t T1 = T2 T1 ≠ T2 Поверьте, готовить к выпуску два очень похожих, но разных продукта одновременно реально неудобно и ведет к ошибкам
  • 46. Далее... • Введение • Понятия • Особенности тестирования • Минимизация усилий на тестирование • Польза открытости ПО для тестирования • Вопросы
  • 47. Минимизация усилий на тестирование Только свободный Двойная лицензия и дистрибутив разные возможности Закрытость Открытость тестирования тестирования Закрытость Открытость разработки разработки Закрытость Открытость исходного кода исходного и данных кода и данных проще сложнее
  • 48. Далее... • Введение • Понятия • Особенности тестирования • Минимизация усилий на тестирование • Польза открытости ПО для тестирования • Вопросы
  • 49. Польза открытости ПО для тестирования Тестирование Сообщество Находит пробелы и ошибки в Находит ошибки тестировании Использует пользовательские Предоставляет тестовые данные, конфигурации данные Предоставляет описание Помогает проводить тестов, сценарии и скрипты тестирование на своем оборудовании Приоритезирует и планирует Предоставляет знание об тестирование использовании продукта
  • 50. Закон Линуса Все ошибки становятся заметны, если на них обращено достаточно много глаз Кто-то находит проблему. А кто-то еще ее понимает. И я часто замечаю, что поиск требует наибольшего навыка Линус Торвальдс Given enough eyeballs, all bugs are shallow
  • 53. Вопросы • Сперва мои ─ Зачем проверять исходники?
  • 54. Вопросы • Сперва мои ✔ Зачем проверять исходники? ─ Какие тесты невозможны?
  • 55. Вопросы • Сперва мои ✔ Зачем проверять исходники? ✔ Какие тесты невозможны? • А теперь ваши !
  • 56. Спасибо! Alexey Lyanguzov Software Quality Specialist Sun Microsystems, St. Petersburg