пятница, 23 декабря 2011 г.

Тестирование апдейта приложений на iPhone/iPad


Здравствуйте!

Темой первого поста будет наболевшее… Тестирование апдейта приложений. До того как приложение попадает на App Store мы тестируем билд приложения которые сразу заливаем к себе на девайс, ну а что если это, например, версия 1.1? Мы кидаем себе на девайс этот билд и тестируем, потом тестируем еще и еще, вот вроде бы все хорошо, билд релизится и начинают приходить отзывы в духе "У меня удалились все данные, ужас!!!" - а как известно такие отзывы плохо влияют на нервную систему тестировщиков, PM'ов и еще многих людей, не говоря уже о рейтинге продукта и репутации.

Разница в том что мы поставили чистый билд а пользователи проапдейтились до этого билда, и из-за изменений в базе или добавлении некоторых фич у них не отображаются данные, не работает какой то функционал и тд.

В интеренетах я нашел крайне мало информации по этому поводу, так что попробую написать свой вариант мануала.

Для начала нужно определить какие изменения были внесены в новую версию: менялась ли база? Были ли добавлены новые фичи или была изменена логика работы старых, в общем определить возможные слабые места которые могут повлиять на работу приложения после апдейта. Так как пользователь ожидает что после апдейта весь старый функционал будет работать как и работал, он не потеряет свои данные или другую информацию и получит какие то новые фичи которые тоже будут работать как полагается.

Итак сам процес апгрейда:
1. Сначала мы устанавливаем более раннюю версию приложения (v. 1.0)
2. Запускаем его на девайсе и дальше уже в зависимости от приложения вносим определенные данные.
Предположим что у нас какой нибудь Task Manager, то есть у нас есть какие то таски - выполненные и невыполненые, напоминания - сработавшие или которые еще должны сработать, возможно еще какие то специфические настройки самого приложения - все это нужно добавить в наше приложение v. 1.0  чтобы увидеть остается ли все на местах после апдейта. 
3. Устанавливаем апдейт - просто перетаскиваем билд v. 1.1 в iTunes, появится окно в котором нужно нажать "Заменить"



4. Теперь просто синхронизируем iTunes библиотеку с девайсом 

Если все прошло хорошо то на девайсе уже должна быть версия 1.1 

И уже после этого мы начинаем смотреть как прошел апдейт, остались ли все данные на месте, корректно ли работает новый функционал и т.д. При успешном апдейте не должно изменится ничего кроме планируемых изменений - новых фич, пофикшеных багов - в общем того что планировалось добавить в приложение с апдейтом, но это не должно негативно сказаться на уже имеющихся данных. 

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

Есть еще одна ситуация связанная с апдейтами и In-App Purchase. Вы тестируете приложение у которого есть Lite версия с возможность купить через In-App Purchase Про версию. Допустим пользователь скачал Lite версию, в ней же купил Pro версию и потом выходит апдейт Lite версии приложения, он апдейтится и все что он покупал пропадает, пользователь расстроен и зол (и вполне понятно почему)!

Как воспроизвести это в тестовой среде:

1. Устанавливаем приложение v. 1.0
2. Покупаем Pro версию
3. Кидаем в iTunes билд v. 1.1 Lite версию!
4. Синхронизируем
5. Проверяем остался ли в приложении функционал Pro версии

Ну вот пока и все)

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

Комментариев нет: