Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Игорь Любин -- Об опыте тестирования программного компонента без пользовательского интерфейса

3,158 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Игорь Любин -- Об опыте тестирования программного компонента без пользовательского интерфейса

  1. 1. Об опыте тестирования программного компонента без UI<br />Игорь Любин, Казань<br />
  2. 2. Программный компонент– это «кубик» программы<br />2<br />
  3. 3. Программный компонентбез UI<br />3<br />Из интерфейсов может бытьтолько cmd<br />
  4. 4. Программный компонент– это «черный ящик»<br />4<br />
  5. 5. Постановка задачиПроект<br />Интернет газета с сервисами блогосферы<br />Профили пользователей<br />Лента новостей<br />Блоги<br />Друзья, Фотки<br />Избранное<br />…<br />5<br />
  6. 6. Постановка задачиПроект развивается<br />Профили пользователей<br />Лента новостей<br />Блоги<br />Друзья, Фотки<br />Избранное, Теги<br />…<br />6<br />Расширяет возможности доступа<br />
  7. 7. Постановка задачиНа проекте идет разработка<br />Профили пользователей<br />Лента новостей<br />Блоги<br />Друзья, Фотки<br />Избранное, Теги<br />…<br />7<br />Появляется API (Программный компонент)<br />
  8. 8. Постановка задачиИмеем картину<br />Профили пользователей<br />Лента новостей<br />Блоги<br />Друзья, Фотки<br />Избранное, Теги<br />…<br />8<br />
  9. 9. Постановка задачиНавходе POST<br />9<br />~40 команд<br />Параметры<br />/login?username=batman@mail.ru&password=123<br />Пример визуализации POSТ запросав виде GET<br />
  10. 10. Постановка задачиНавыходе JSON<br />10<br />Статус<br />Данные<br />{ "status": 0,"data": {"id_user": 1024} }<br />
  11. 11. Постановка задачиНадо тестировать!?<br />Профили пользователей<br />Лента новостей<br />Блоги<br />Друзья, Фотки<br />Избранное, Теги<br />…<br />11<br />
  12. 12. Постановка задачиЦели перед тестированием<br />Создать тестовый инструмент<br />Удобный<br />Понятный<br />Легко поддерживаемый<br />Проверить основные команды<br />12<br />
  13. 13. РешениеПрограммировать!<br />Выбор языка программирования:<br />Язык знаете вы<br />Язык знает заказчик<br />13<br />
  14. 14. РешениеОрганизация тестов<br />Отделить тесты инструмента<br />14<br />
  15. 15. РешениеОрганизация тестов<br />1 тест= 1 файл<br />Следствие<br />Управление тестами сводится к управлению файлами<br />15<br />
  16. 16. РешениеПример тест-кейса<br />{<br />"name":"Вход пользователем на сайт",<br />"command" : "login",<br />"input" : {"username": "batman@mail.ru",<br />"password": "123" },<br />"assert" : "equal",<br />"output" : {"status": 0, <br />"data": {"id_user": 1024} }<br />}<br />16<br />
  17. 17. РешениеПример тест-сценария<br />{<br />"testsuite_name" : "Название сценария",<br />"testcases":<br />[<br /> {<br />"name" : "Тест-кейс1",<br />"command": "login",<br />"input" : {},<br />"output" : {"status": 0, "data": []}<br /> },<br /> {<br />"name" : "Тест-кейс2",<br />"command": "logoff",<br />"input" : {},<br />"output" : {"status": 0, "data": []}<br />}<br />]<br />}<br />17<br />
  18. 18. РешениеТестовый инструмент<br />18<br />
  19. 19. РешениеВыполнение POST запроса<br />19<br />
  20. 20. РешениеСравнение результатов<br />20<br />array_diff_assoc($array1, $array2)<br />
  21. 21. РешениеСхема тестового инструмента<br />21<br />
  22. 22. РешениеЛог<br />20.06.2010 06:15:49 Run test case: Вход пользователем<br />Request: /login?username=batman@mail.ru&password=123<br />20.06.2010 06:15:50 End test case. <br />Response: {"status":0,"data":{"id_user":1024}}<br />20.06.2010 06:15:50TEST PASSED<br />...<br />**********************************<br />Time: 268.20472 sec.<br />Tests: 199, Passed: 191, Failed: 8<br />**********************************<br />22<br />
  23. 23. РешениеСтатистика<br />23<br />Время разработки инструмента~ 90 ч. <br />(первая версия – 40 ч.)<br />Время разработки тестов ~ 90 ч.<br />Количество тест-сценариев ~ 60<br />Количество тест-кейсов ~ 300<br />
  24. 24. Спасибо за внимание!Вопросы?<br />igor.lyubin<br />ilyubin@yandex.ru<br />ap-test-team.blogspot.com<br />24<br />

×