MediaLex-2015

 

 

Хвагина Дарья Леонидовна

ЯЗЫКОВАЯ СРЕДА ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 УО "Брестский государственный университет им. А.С. Пушкина"

 

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

Совокупность компьютерных программ, мобильных и веб-приложений принято определять общим термином «программное обеспечение». Это понятие включает также процедуры и документацию, относящиеся к функционированию компьютерной системы, и сам процесс разработки [1]. Существует ряд моделей проектирования, основное лишь различие которых – подходы и названия документов и этапов. Несмотря на это, каждая из этих моделей выделяет 5 основных фаз жизненного цикла проекта следующим образом:

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

2. Планирование – на данном этапе определяются сроки выполнения каждого последующего этапа создания продукта, возможные риски, которые могут их продлить, а также модель разработки данного программного продукта. Из-за того, что модель разработки «водопад», либо, например, итеративная модель, используют разные подходы к порядку выполнения этапов работы, её сроки должны вычисляться, исходя из преимуществ и недостатков избранной модели;

3. Выполнение – написание программного кода командой разработчиков, организация эффективной обратной связи с заказчиком и общения в команде;

4. Контроль и мониторинг – это и есть задача QA (quality assurance) - инженеров по тестированию, которые контролируют и обеспечивают качество программного продукта на протяжении всего процесса разработки, а также акцентируют наиболее важные и критичные направления проекта, осуществляют раннее обнаружение конфликтов между требованиями, моделями и реализацией проекта и дают реальную оценку его состояния;
5. Завершение – написание необходимых сопровождающих документов, сертификация, релиз продукта конечному пользователю и дальнейшее его сопровождение [2].

Центральным объектом нашего исследования является тестирование программного обеспечения. Тестирование в цикле разработки программного продукта позволяет как убедиться, что продукт отвечает требованиям, и продемонстрировать это заказчикам и разработчикам, так и выявить ситуации, в которых поведение программы некорректно, нежелательно или не соответствует спецификации [3].

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

  • Функциональное тестирование;

  • Тестирование производительности;

  • Нагрузочное тестирование;

  • Конфигурационное тестирование;

  • Юзабилити-тестирование;

  • Тестирование интерфейса пользователя;

  • Тестирование безопасности;

  • Тестирование локализации;

  • Тестирование совместимости;

  • Тестирование по документации;

  • Тестирование ad hoc или интуитивное тестирование [3].

 Большинству этих видов тестирования присуща одна общая черта – они включают в себя работу с языками.

Это могут быть как искусственные языки программирования, с помощью которых было создано само приложение, так и естественные, которые служат его естественной языковой оболочкой, несущей информацию пользователю. Например, тестирование интерфейса, а главным образом, локализации – т.е. перевода и культурной адаптации продукта к особенностям определенной страны, региона или группы населения, которые в дальнейшем будут работать с этой программой [4]. Большинство программ, сайтов и мобильных приложений разрабатываются для англоговорящих. Но, чтобы расширить потенциальную аудиторию, либо наоборот, подчеркнуть узкий круг пользователей, которым адресована программа, разработчики создают и дополнительные локализации на других языках – русском, немецком, испанском, китайском – для своих продуктов. Таким образом, тестировщику в ходе своей работы приходится сталкиваться и с такой ситуацией, где нужно протестировать корректность перевода пользовательского интерфейса, и поэтому знание иностранных языков, наряду с языками компьютерными, немаловажно.

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

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

Единого ответа на вопрос «Какой же язык программирования нужно знать, чтобы тестировать наиболее эффективно» не существует. Дело в том, что в каждой софтверной компании отдаётся предпочтение определённому набору языков, как, например, в Google пишут на Perl, JavaScript, Python и C++, в Яндексе к этому списку можно добавить Java и небольшой процент PHP, C# и Objective C, а в каждый офис EPAM Systems специализируется на том или ином направлении. Например, в Бресте веб-сервисы разрабатываются исключительно с помощью .NET и Java.

Качество тестирования обеспечивают не только инженеры по функциональному тестированию. Если приложение достаточно большое, состоит из множества разделов с подразделами, меню и всплывающими окнами, то разработка и написание тестовых сценариев, а также их непосредственное выполнение потребуют намного больше времени, человеческих и материальных ресурсов. В таких случаях наиболее эффективным методом является автоматизация процесса, которую обеспечивают инженеры по автоматизации тестирования. Их задача – написать код, который сам запускает тесты, анализирует их результаты и составляет подробную статистику области покрытия тестами и количество найденных дефектов. При написании кода они используют такие фреймфорки, как Java, Selenium, SoapUI и т.п. – ещё один пример искусственных языков в тестировании.

Возвращаясь же к естественным, следует упомянуть белорусский язык. Хотя крупные IT-компании и малые стартапы ориентированы на экспорт, всё же они рассматривают и Беларусь как равнозначный рынок продаж. Первые шаги в направлении завоевания белорусскоязычных пользователей предпринимают энтузиасты, которые делают переводы многих популярных программ и даже операционных систем на белорусский язык. Например, Opera, Mozilla, μTorrent, AIMP, Media Player Classic, KMPlayer, Total Commander, 7-Zip уже давно предлагают выбрать в настройках белорусский вариант локализации. Kamputerm разработали словарь IT-терминов с английского на белорусский язык. Многочисленные популярные сайты создают свои белорусскоязычные версии [5].

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

 

 


 

1. Программное обеспечение [Электронный ресурс] / Wikipedia. – 2014. – Режим доступа: https://ru.wikipedia.org/wiki/Программное_обеспечение – Дата доступа: 24.11.2014.

2. Процесс разработки программного обеспечения [Электронный ресурс] / Wikipedia. – 2014. – Режим доступа: https://ru.wikipedia.org/wiki/Процесс_разработки_программного_обеспечения – Дата доступа: 24.11.2014.

3. Тестирование программного обеспечения [Электронный ресурс] / Wikipedia. – 2014. -  Режим доступа: https://ru.wikipedia.org/wiki/Тестирование_программного_обеспечения – Дата доступа: 24.11.2014.

4. Языковая локализация [Электронный ресурс] / Wikipedia. – 2014. – Режим доступа: https://ru.wikipedia.org/wiki/Языковая_локализация - Дата доступа: 24.11.2014.

5. Ці ёсьць у ІТ месца для беларускае мовы? [Электронный ресурс] / Ольга Чайковская – dev.by, 2008-2014. – Режим доступа: http://dev.by/lenta/sciencesoft/tsi-yosts-u-it-mestsa-dlya-belaruskae-movy – Дата доступа: 24.11.2014

 

 

MediaLex 2015