16
Автоматизированное тестирование и СМС Илья Евлампиев

Автоматизированное тестирование и СМС

  • Upload
    sqalab

  • View
    422

  • Download
    8

Embed Size (px)

DESCRIPTION

Презентация доклада Ильи Евлампиева на конференции SQADays-14, Львов 8-9 ноября 2013

Citation preview

Page 1: Автоматизированное тестирование и СМС

Автоматизированное тестирование и СМС

Илья Евлампиев

Page 2: Автоматизированное тестирование и СМС

CMC

•Web + SMS• Получение кодов, ключей, ссылок

• Уникальность пользователя• Роботозащищенность

•Обмен устройствами информацией через SMS• Телеметрия• Команды

•VAS• Всевозможные приложения с SMS

интерфейсом (геолокация, обмен сообщениями с внешними системами)

Page 3: Автоматизированное тестирование и СМС

Web + SMS: SMS gate

•SMS-гейты:• HTTP GET• HTTP POST• SMPP

•На что обратить внимание:• HTTP ограничения

• Длина http запроса• GSM ограничения

• Максимальный размер текста принимаемого гейтом SMS

Page 4: Автоматизированное тестирование и СМС

Web + SMS: SMS gate•Как проверить SMS-гейт:

• Посылать HTTP запросы (curl, etc)• Принять соответствующие смс• Текст: с нулевым байтом, с переносами

строки, со всеми служебными символами• Текст: длина текста на несколько

мультиСМС, учесть разные кодировки•Как проверить приложение:

• “Замокать” http ответы на контролируемом http сервере

• Вернуть все возможные и невозможные http ответы

Page 5: Автоматизированное тестирование и СМС

Web + SMS: GSM

•Встраиваемый компонент:• Отправка http-запроса на авторизацию• Приходит SMS на реальный номер• Присланный код доступа вводится и

отправляется по http

Альтернативных способов получения кода доступа нет. Но надо автоматизировать процесс получения кода и отправки запроса.

Как быть?

Page 6: Автоматизированное тестирование и СМС

Шлем SMS с PC•Подключаем устройство к PC через USB (устанавливаем драйвера если надо)•Устройство подключается через виртуальный COM порт, начинает общаться с ним•Можно подключиться к порту через любую терминальную программу, посылать запросы к модему и получать ответы•Команды имеют определенный формат, AT+..., поэтому называются AT-команды

• Пример специфичен для конкретного устройства. Нет единого стандарта, который производитель обязан имплементировать, но большинство функций общие:

https://www.sparkfun.com/datasheets/Cellular%20Modules/AT_Commands_Reference_Guide_r0.pdf •Можно написать свое приложение, которое будет слать запросы (SMS, USSD). Примеры на различных языках и средах:

• http://habrahabr.ru/post/133085/• http://habrahabr.ru/post/58348/ • http://habrahabr.ru/post/98837/

Page 7: Автоматизированное тестирование и СМС

Шлем SMS с PC

Page 8: Автоматизированное тестирование и СМС

Шлем SMS с PC: PDU•Непосредственно через отправку текста сообщений в той же кодировке, что и AT-команды можно выполнить не в любой среде•Более универсально передать модему сообщение в уже кодированном формате, он передаст его далее (собственно в этом формате данные и передаются в центр SMS и далее получателю)•Основные части SMS_DELIVER PDU согласно спецификации http://www.etsi.org/deliver/etsi_ts/123000_123099/123040/11.05.00_60/ts_123040v110500p.pdf :

• SCA – номер SMSC, центра СМС, куда будет отправлена СМС• TPDU – основное сообщение (служебные блоки и само сообщение)

• PDU-Type – тип сообщения; определяет структуру данных• TP-MR – номер текущей СМС• TP-DA – номер получателя• TP-PID – индикатора протокола• TP-DSC – схема кодирования данных (7-bit, 8-bit, USC)• TP-VP – время действия сообщения (в течении которого будет доставка)• TP-UDH – длина сообщения• TP-UD – само сообщение

Page 9: Автоматизированное тестирование и СМС

Шлем SMS с PC: TP-UD

•TP-UD• UDHL – длина • UDH – хедер с информационными элементами

• IEI – тип информационного элемента• IEDL - длина• IED - содержание

• Заполнение до октетов• SM – кодированный текст сообщения

• Типы информационных элементов: музыка, изображение, порт сообщения.

• Особый случай: мультиСМС http://hardisoft.ru/soft/otpravka-dlinnyx-sms-soobshhenij-v-formate-pdu/

Page 10: Автоматизированное тестирование и СМС

Шлем SMS с PC: API

•Кодирование PDU трудоемкий процесс, т.к. учесть все особенности спецификации сложно.•По возможности используйте существующие API.•SMSLib для Java/.NET http://smslib.org/•Данное API позволяет кодировать валидные SMS имея на входе текст смс любой длины•API само делит большие тексты на раздельные SMS, само задает SMSC.•API не позволяет посылать невалидные SMS, для внесения неверного формата необходимо редактировать исходный код API•API легко интегрируется в браузерную автоматизацию (Selenium)

Page 11: Автоматизированное тестирование и СМС

Шлем SMS с PC: API

Page 12: Автоматизированное тестирование и СМС

PDU: что тестируем•Любая система, воспринимающая SMS получает TP-UD без изменений

• Мобильное приложение• Embedded устройство с GSM-чипом• VAS-системы

•Умение склеивать мультиСМС (IEI 00), воспринимать как единое сообщение

• “3 поросенка № 1,2 и 4”: никогда не приходящая часть• Общее число частей меньше текущего номера

•Умение правильно понимать и правильно игнорировать прочие информационные элементы (музыку, картинки, порты)•Умение обработать СМС спец.типов (флэш, смс-пинг)•Умение обработать СМС с кодировкой SM не соответствующей заявленной•Текст содержит управляющие символы (\r, \n, \t, \u0000, \u001A)

Page 13: Автоматизированное тестирование и СМС

PDU: генерируемlПриложение, позволяющее сформировать или декодировать PDU:lhttp://www.nobbi.com/pduspy.html

Page 14: Автоматизированное тестирование и СМС

SMS: безопасность•Мобильные устройства

• Silent sms (0x40 (TP-PID) )• Актуализирует запись о вас в HLR регистре

(уточняет местоположение)• Может разрядить вам телефон, т.к. не заметно• Должен подменяться оператором

• SMS-spoofing• SMS-гейт подменяет имя отправителя на любое• Оператор подменяет если имя отправителя из

его сети•Embedded•VAS и другие системы, передающие тест SMS в web

• XSS

Page 15: Автоматизированное тестирование и СМС

SMS: outsource тестирование•outsource разработка/тестирование заграничного функционала

• Ограничение на регистрацию иностранных номеров• Невозможность получать СМС на местные номера

•Необходим виртуальный номер СМС для получения (ручное и автоматизированное тестирование)•Google Voice: регистрируем (для пользователей из России необходимо авторизоваться через прокси, хотя бы украинское)•Получаем американский номер•На этот номер получаем сообщения; текст сообщения дублируется как почтовое сообщение на gmail•Автоматизация: неофициальное API https://code.google.com/p/google-voice-java/ , любое почтовое API

Page 16: Автоматизированное тестирование и СМС

Спасибо за внимание!

Вопросы[email protected]