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.

Регулярные выражения и тестирование Pdf отчетов

243 views

Published on

Доклад Романа Грищенко на конференции SQA Days-20. 24-26 ноября 2016. Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

Регулярные выражения и тестирование Pdf отчетов

  1. 1. Regular Expressions and Testing PDF Reports Регулярные выражение и тестирование PDF- отчетов Роман Грищенко Grid Dynamics Intl. Краков, Польша
  2. 2. Содержание 1. Где мы встречаемся с PDF отчетами? 2. Зачем нужно тестировать PDF отчеты? 3. Способы парсинга PDF отчетов 4. Типичная архитектура автотестов для тестирования PDF отчетов 5. Как извлечь данные из PDF с помощью регулярных выражений (RegExp) 6. Что можно и что нельзя проверить с помощью RegExp 7. Q&A
  3. 3. Где мы встречаемся с PDF отчетами? - Различный финансовые отчеты, например движение средств по счету - Любые виды подтверждения произведенных операций, например покупки билетов, полученное на email либо через иную систему - Предоставление разнообразной коммерческой информации: расписание рейсов, бухгалтерские отчеты итд.
  4. 4. Почему нужно тестировать PDF отчеты? 1. Генератор PDF может интегрироваться с многими внешними сервисами или базами данных -> высока вероятность интеграционных дефектов 2. Генератор PDF обрабатывает полученные извне данные -> вероятны проблемы с менеджментом собранной информации 3. Дополнительная логика или вычисления могут быть реализованы внутри сервиса, где также могут быть допущены ошибки 4. Вас попросил заказчик :)
  5. 5. Способы парсинга PDF отчетов Вручную Автоматически Оптическое распознавание символов (OCR) PDF => HTML/XML Регулярные выражения (RegExp) Return symbols and their coordinates <div style="...">SQA </div> <div style="...">Days </div> <div style="...">20 </div> SQA Days 20 SQA Days d{2}
  6. 6. Типичная структура автотестов для тестирования PDF отчетов Менеджмент ожидаемых данных Получение PDF отчета Обработка PDF отчета Проверка данных Исходные данные / ожидаемые значения
  7. 7. Как извлечь данные из PDF с помощью регулярных выражений (RegExp) 1. Преобразовать PDF файл в текст 2. Применить регулярные выражения и получить коллекцию совпадений 3. Обработать совпадения и сформировать объектную модель отчета
  8. 8. Transaction Description Transaction Date Transaction Amount, USD SQA Days registration fee 9/7/2016 -200.00 Hotel reservation 9/31/2016 -150.50 Flight tickets Krakow-Minsk-Krakow 10/21/2016 -300.00 Business trip compensation 30/10/2016 1,050.00 Total 399.50 Money Movement Report Client: Client Name Account number: 00 1111 2222 3333 4444 Period: 9/1/2016 - 31/10/2016 Created by User Name on 21/11/2016
  9. 9. Money Movement Report Client: Client Name Account number: 00 1111 2222 3333 4444 Period: 9/1/2016 - 31/10/2016 Transaction Description Transaction Transaction Amount, Date USD SQA Days registration fee 9/7/2016 -200.00 Hotel reservation 9/31/2016 -150.50 Flight tickets Krakow-Minsk-Krakow 10/21/2016 -300.00 Business trip compensation 30/10/2016 1,050.00 Total 399.50 Created by User Name on 21/11/2016
  10. 10. Пример парсинга Client: Client Name Client: (?<clientName>.*) Account number: 00 1111 2222 3333 4444 Account number: (?<accountNumber>d{2}( d{4}){4}) Period: 9/1/2016 - 31/10/2016 Period: (?<fromDate>d{1,2}/d{1,2}/d{4}) - (?<toDate>d{1,2}/d{1,2}/d{4})
  11. 11. Что можно и что нельзя проверить с помощью RegExp Можно Нельзя Текст Шрифты/цвета Значения Выравнивание текста и отступы Структуры данных Графические элементы
  12. 12. Q&A
  13. 13. Ссылки и контакты Руководство по регулярным выражениям http://www.regular-expressions.info/tutorial.html RegExp-тестер https://regex101.com/ Проект в GitHub с примерами использования RegExp для тестирования PDF отчета https://github.com/panromek/pdf-testing Контакты: - facebook https://www.facebook.com/roman.gryshchenko - linkedin https://ua.linkedin.com/in/roman-gryshchenko-042a0780 - email rgrishchenko@griddynamics.com

×