Куда может развиваться карьера QA

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

Вертикальное развитие карьеры QA от Junior до Senior / Lead QA

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

В дальнейшем, тестировщик может стать middle QA, который уже более уверенно работает с инструментами тестирования, может организовывать работу своей команды и проявлять больше инициативы в процессе тестирования.

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

После этого, возможен переход на должность lead QA, которая уже более связана с управлением проектами, бюджетами и командами, а также ведением переговоров с заказчиками.

Читать далее Куда может развиваться карьера QA

Основные различия Android/iOS

Android и iOS являются двумя самыми популярными операционными системами и интересной темой будет рассмотреть основные различия Android/iOS устройств в мире. Несмотря на то, что эти системы используются для решения одних и тех же задач, они имеют ряд существенных отличий друг от друга. В этой статье мы рассмотрим основные различия между Android и iOS.

Открытость и закрытость

Одни наиболее явные различия Android/iOS является их открытость и закрытость соответственно. Android является открытой операционной системой, которая позволяет разработчикам создавать приложения и модифицировать код ядра. Это означает, что приложения Android имеют больше свободы, что позволяет создавать множество различных приложений для этой платформы. С другой стороны, iOS является закрытой системой, которая ограничивает доступ разработчиков к коду ядра. Это означает, что приложения iOS имеют ограничения в своих возможностях.

Различия в пользовательском интерфейсе

Еще одни существенные различия Android/iOS является их пользовательский интерфейс. В Android пользователь может настроить свой главный экран, добавить виджеты и изменить тему, что обеспечивает большую свободу в настройке интерфейса. В iOS пользовательский интерфейс имеет более жесткие ограничения, поскольку Apple стремится обеспечить единообразность интерфейса на всех устройствах.

Читать далее Основные различия Android/iOS

Чек-лист локализации

Когда мы составляем Чек-лист локализации программного обеспечения необходимо учитывать следующие основные моменты, которые можно сгруппировать:

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

Пример чек-лист локализации

Чек-лист локализации дат, примеры разных форматов дат в разных культурах и летоисчислений:

  1. В США даты обычно записываются в формате месяц/день/год. Например, 4 июля 2022 года будет записываться как 07/04/2022.
  2. В Европе даты обычно записываются в формате день/месяц/год. Например, 4 июля 2022 года будет записываться как 04.07.2022.
  3. В Японии даты обычно записываются в формате год/месяц/день. Например, 4 июля 2022 года будет записываться как 2022年7月4日.
  4. В Израиле использование летоисчисления может отличаться от использования григорианского календаря. Например, в Израиле дата может быть записана как 4.7.22, где «22» обозначает год в иврите (תשפ״ב), который начался в сентябре 2021 года и закончится в сентябре 2022 года.
  5. В Индии даты могут быть записаны в формате день/месяц/год, как в Европе, или в формате год/месяц/день, как в Японии, в зависимости от региона и культуры. Например, 4 июля 2022 года может быть записан как 04/07/2022 или 2022/07/04.

Примеры разного исчисления в разных календарных системах:

  • В григорианском календаре, который используется в большинстве западных стран, текущий год — 2023.
  • В исламском календаре, текущий год — 1444 (в настоящее время исламский календарь находится в году 1443, но в 1444 году он начнется в конце августа).
  • В еврейском календаре, текущий год — 5783 (в настоящее время еврейский календарь находится в году 5782, но в 5783 году он начнется в сентябре).
  • В китайском календаре, текущий год — 4719 (в китайском календаре используется циклическая система, поэтому годы не нумеруются простыми числами, а имеют свои названия).
  • В индуистском календаре, текущий год — 2079 (в индуистском календаре также используется циклическая система, и годы имеют свои названия).

Локализация валюты, дробей и чисел, которые можно использовать для тестирования интерфейса:

  1. Написание чисел: на английском языке используется десятичный разделитель точка (.), а разделитель тысяч — запятая (,). В ряде других языков используется другой десятичный разделитель — запятая (,), а разделитель тысяч — пробел. Например, во французском языке число 1 000 000,5 записывается как 1 000 000,5.
  2. Написание валюты: на разных языках используются различные обозначения валюты. Например, для доллара США на английском языке используется знак доллара ($), на французском языке — знак € (EUR), а на японском языке — символ 円 (JPY).
  3. Формат дробей: на некоторых языках используется другой формат дробей. Например, на немецком языке вместо десятичного разделителя точки используется запятая, а в качестве разделителя дробной части используется косая черта. Например, число 3,1415 на немецком языке записывается как 3,1415/10.
  4. Разделитель групп разрядов: в некоторых языках используется другой разделитель групп разрядов. Например, на испанском языке в качестве разделителя используется точка, а в качестве разделителя дробной части — запятая. Например, число 1 000,5 на испанском языке записывается как 1.000,5.
  5. Способы написания чисел: на некоторых языках используется другой способ записи чисел. Например, в ряде арабских стран используется написание чисел справа налево, а не слева направо, как в большинстве других языков.
Чек-лист локализации для конвертации мер
Чек-лист локализации для конвертации мер

Примеры проверок для конвертации мер и температур в различных языках также может быть важным аспектом, несколько примеров:

  1. Температура: на английском языке используется градус Фаренгейта (°F), в то время как на большинстве других языков используется градус Цельсия (°C). Например, в Японии температура 68 °F (20 °C) может быть переведена как «20度».
  2. Вес: на английском языке используется фунт (lb), а на большинстве других языков — килограмм (kg). Например, в Канаде вес 150 фунтов (68 кг) может быть переведен как «68 кг».
  3. Расстояние: на английском языке используется миля (mi), в то время как на большинстве других языков используется километр (km). Например, в Бразилии расстояние 100 миль (160 км) может быть переведено как «160 км».
  4. Объем: на английском языке используется галлон (gal), а на большинстве других языков — литр (L). Например, в России объем 5 галлонов (19 л) может быть переведен как «19 л».
  5. Скорость: на английском языке используется миля в час (mph), в то время как на большинстве других языков используется километр в час (km/h). Например, в Италии скорость 60 миль в час (97 км/ч) может быть переведена как «97 км/ч».
Чек-лист локализации с использованием разных алфавитов, адресов и телефонных номеров
Чек-лист локализации с использованием разных алфавитов, адресов и телефонных номеров

Чек-лист локализации с использованием разных алфавитов, адресов и телефонных номеров

Разные алфавиты:

  • Китайский: 您好 (привет), 中国 (Китай)
  • Японский: こんにちは (привет), 日本 (Япония)
  • Арабский: السلام عليكم (здравствуйте), الإمارات العربية المتحدة (Объединенные Арабские Эмираты)
  • Греческий: γεια σας (привет), Ελλάδα (Греция)
  • Русский: привет, Россия

Примеры форматов адресов:

  • США: 123 Main Street, Apt. 4, Anytown, NY 12345
  • Канада: 456 Maple Ave, Unit 2, Toronto, ON M1M 1M1
  • Великобритания: 789 High Street, London W1A 1AA
  • Китай: 456 北京市朝阳区建国路 1 号院 2 号楼 3 单元,100000
  • Япония: 東京都千代田区1-1-1

Примеры форматов телефонных номеров:

  • США: (123) 456-7890
  • Канада: (123) 456-7890
  • Великобритания: +44 20 1234 5678
  • Франция: +33 1 23 45 67 89
  • Китай: +86 10 1234 5678
  • Япония: +81 3-1234-5678

Типы багов, этимология бага

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

Согласно легенде, термин «баг» был введен в 1947 году Грейс Хоппер, программистом компьютера Harvard Mark II. Однажды, когда компьютер начал выдавать ошибки, Грейс и ее коллеги обнаружили, что причиной неисправности стал кусок насекомого, который застрял в одной из электронных ламп. Она извлекла насекомое и записала в журнале причину сбоя как «баг» (англ. «bug»).

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

Читать далее Типы багов, этимология бага

Критичность и приоритет дефектов

Критичность и приоритет дефектов в разработке ПО это базовые аспекты артефактов тестирования. Качество программного обеспечения играет ключевую роль в конкурентоспособности любой компании, поэтому важно уделять должное внимание процессу тестирования. Частью этого процесса является управление дефектами, которые могут возникать в процессе разработки. При этом каждый issue должен быть классифицирован учитывая его критичность и приоритет дефектов.

Критичность дефекта, или Severity, описывает важность воздействия конкретной ошибки на функционирование ПО. Она определяется на основе технических характеристик дефекта и может быть критической, высокой, средней или низкой. Критический дефект имеет наибольшую критичность и приводит к масштабным последствиям, таким как потеря данных или нарушение ключевой функциональности ПО. Высокий дефект также имеет серьезное воздействие на пользователей, но не настолько критичен, как критический. Средний дефект может влиять на работу пользователей, но в большинстве случаев имеет обходные пути. Низкий дефект имеет наименьшую критичность и редко влияет на работу пользователей.

Читать далее Критичность и приоритет дефектов

Тестирование по степени глубины

Тестирование по степени глубины — это подход к тестированию программного обеспечения, при котором проводятся тесты на всех уровнях системы. Два этих подхода и тест критического пути и расширенное тестирование — это два подхода к тестированию по глубине, которые могут использоваться для проверки работы приложения на разных уровнях.

Тест критического пути

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

Расширенное тестирование

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

Читать далее Тестирование по степени глубины

Тестировщик может справиться лучше?

Не так давно в беседе возник вопрос почему ту или иную работу стоит доверить тестировщику, в каких случая тестировщик может справиться лучше, когда собственно и программист подходит, а иногда подходит даже лучше.

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

Большая внимательность к деталям

Тестировщики обучены обращать внимание на детали, которые могут быть пропущены программистом. Они знают, какие аспекты программного обеспечения могут быть наиболее проблемными, и могут тестировать программу с учетом этих факторов.

Читать далее Тестировщик может справиться лучше?