Какие существуют методы анализа и локализации ошибки
Перейти к содержимому

Какие существуют методы анализа и локализации ошибки

  • автор:

Какие существуют методы анализа и локализации ошибки

На этом шаге мы рассмотрим методы локализации ошибок .

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

Если ошибка найдена, то производится ее исправление; в противном случае осуществляется переход к пункту 1, то есть к получению дополнительных тестовых результатов.

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

В таком характере работы программиста можно найти нечто общее с расчетом вариантов, который осуществляет шахматист (или шашист) во время игры, когда он путем расчетов в уме ищет выигрывающий ход в позиции на шахматной доске, подвергая проверке один из заслуживающих внимания ходов за другим. Не найдя выигрывающего хода, шахматист делает какой-то, по его мнению, хороший ход, приближающий его к цели. Так и программист, не найдя ошибки путем исследования полученных тестовых результатов, делает новое предположение о месте или о характере ошибки, вставляет новую отладочную печать или изменяет программу («ход программиста»), а ЭВМ выдает новые тестовые результаты («ход ЭВМ»). Компьютер выступает как своеобразный партнер, задача которого заключается в том, чтобы вскрыть ошибки в рассуждениях программиста, как бы сформулированных им в тексте отлаживаемой программы. Продолжая аналогию, можно сказать, что подобно тому, как нельзя реально надеяться выиграть партию в два-три хода, так же нельзя найти все ошибки в реальной программе за одно-два обращения к компьютеру.

Программистов, успешно проводящих поиск ошибок в программе, можно условно разделить на «аналитиков» и «экспериментаторов» [1].

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

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

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

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

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


    Думайте! Наиболее эффективный метод отладки заключается в глубоком анализе информации об ошибках. Для ее эффективного проведения

Далее мы начнем рассматривать некоторые способы получения программистом промежуточных результатов, вырабатываемых отлаживаемой программой . В различных системах программирования они сильно отличаются друг от друга. Мы остановимся на Microsoft Access 97, Borland Pascal 7.0, Borland Delphi 4.0, Microsoft Visual C++ 5.0, Turbo Prolog 2.0. .

(1) Безбородов Ю.М. Индивидуальная отладка программ. — М.: Наука, 1982.
(2) Майерс Г. Искусство тестирования программ. — М.: Финансы и статистика, 1982.

Со следующего шага мы начнем рассматривать средства отладки в Microsoft Access .

Отладка

Отладка, или debugging, — это поиск (локализация), анализ и устранение ошибок в программном обеспечении, которые были найдены во время тестирования.

Виды ошибок

Ошибки компиляции

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

В интерпретируемых языках (например Python) текст программы команда за командой переводится в машинный код и сразу исполняется. К моменту обнаружения ошибки часть программы уже может исполниться.

Ошибки компоновки

Ошибки связаны с разрешением внешних ссылок. Выявляет компоновщик (редактор связей) при объединении модулей программы. Простой пример — ситуация, когда требуется обращение к подпрограмме другого модуля, но при компоновке она не найдена. Ошибки также просто найти и устранить.

Ошибки выполнения (RUNTIME Error)

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

  • сообщение об ошибке, которую зафиксировали схемы контроля машинных команд. Это может быть переполнение разрядной сетки (когда старшие разряды результата операции не помещаются в выделенной области памяти), «деление на ноль», нарушение адресации и другие;
  • сообщение об ошибке, которую зафиксировала операционная система. Она же, как правило, и документирует ошибку. Это нарушение защиты памяти, отсутствие файла с заданным именем, попытка записи на устройство, защищенное от записи;
  • прекращение работы компьютера или зависание. Это и простые ошибки, которые не требуют перезагрузки компьютера, и более сложные, когда нужно выключать ПК;
  • получение результатов, которые отличаются от ожидаемых. Программа работает стабильно, но выдает некорректный результат, который пользователь воспринимает за истину.

Профессия / 16 месяцев
Тестировщик-автоматизатор

Лучший выбор для быстрого старта в IT

cables (2)

Ошибки выполнения можно разделить на три большие группы.

Ошибки определения данных или неверное определение исходных данных. Они могут появиться во время выполнения операций ввода-вывода.

К ним относятся:

  • ошибки преобразования;
  • ошибки данных;
  • ошибки перезаписи.

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

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

В эту группу входят:

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

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

Станьте тестировщиком – это лучший выбор для быстрого старта в IT

Методы отладки программного обеспечения

Метод ручного тестирования

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

Метод индукции

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

Вот как выглядит процесс:

Процесс отладки кода

Важно, чтобы выдвинутая гипотеза объясняла все проявления ошибки. Если объясняется только их часть, то либо гипотеза неверна, либо ошибок несколько.

Метод дедукции

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

отладка дедукцией

Метод обратного прослеживания

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

Как выполняется отладка в современных IDE

Ранние отладчики, например gdb, представляли собой отдельные программы с интерфейсами командной строки. Более поздние, например первые версии Turbo Debugger, были автономными, но имели собственный графический интерфейс для облегчения работы. Сейчас большинство IDE имеют встроенный отладчик. Он использует такой же интерфейс, как и редактор кода, поэтому можно выполнять отладку в той же среде, которая используется для написания кода.

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

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

Шаг с заходом (step into)

Команда выполняет очередную инструкцию, а потом приостанавливает процесс, чтобы с помощью отладчика было можно проверить состояние программы. Если в выполняемом операторе есть вызов функции, step into заставляет программу переходить в начало вызываемой функции, где она приостанавливается.

Шаг с обходом (step over)

Команда также выполняет очередную инструкцию. Однако когда step into будет входить в вызовы функций и выполнять их строка за строкой, step over выполнит всю функцию, не останавливаясь, и вернет управление после ее выполнения. Команда step over позволяет пропустить функции, если разработчик уверен, что они уже исправлены, или не заинтересован в их отладке в данный момент.

Шаг с выходом (step out)

В отличие от step into и step over, step out выполняет не следующую строку кода, а весь оставшийся код функции, исполняемой в настоящее время. После возврата из функции он возвращает управление разработчику. Эта команда полезна, когда специалист случайно вошел в функцию, которую не нужно отлаживать.

Как правило, при пошаговом выполнении можно идти только вперед. Поэтому легко перешагнуть место, которое нужно проверить. Если это произошло, необходимо перезапустить отладку.

У некоторых отладчиков (таких как GDB 7.0, Visual Studio Enterprise Edition 15.5 и более поздних версий) есть возможность вернуться на шаг назад. Это полезно, если пропущена цель либо нужно повторно проверить выполненную инструкцию.

Тестировщик-автоматизатор

Как ворваться в IT, даже если вы не умеете программировать? Стать тестировщиком. Для старта достаточно базовых знаний ПК. А начать работать можно уже через 4 месяца обучения.

Основы тестирования программного обеспечения — ответы

Функция int function(int number) была изменена и приобрела вид int function(char* string) . На каком уровне возможно повторное использование теста « 1 »?

Каковы особенности модели объектно-ориентированной программы?

Какие существуют разновидности интеграционного тестирования?

Чем отличается оценка оттестированности проекта от оценки для модуля?

Модуль E исходной программы содержал ошибку. Ее исправление потребовало изменения модулей B, D и E. Тест 1 покрывает модули A, B и C. Тест 2 покрывает модули A, C и E. Тест 3 покрывает модули D и E. Каким должен быть порядок прогона тестов, если при упорядочении ставится цель скорейшего достижения наибольшей степени покрытия измененных модулей?

Какими преимуществами обладает методика предсказания целесообразности отбора тестов?

Ожидаемое время работы метода отбора тестов – 1 час. Среднее время выполнения одного теста – 1 час. Тестовый набор состоит из 8 тестов. Каково значение порога целесообразности?

Какие операции при использовании системы поддержки регрессионного тестирования выполняются вручную?

Отметьте верные утверждения:

Дано: функция P , ее измененная версия P’ и набор тестов T , разработанный для тестирования P . Требуется, используя безопасный метод, отобрать подмножество T’ для тестирования P’ .

Pint abs(int number)< if (number >= 0) return -number; else return –number;>
P'int abs(int number)< if (number >= 0) return number; else return –number;>
T1. -12. 03. 1

Какие существуют разновидности функциональных критериев?

Возможно ли тестирование программы на всех допустимых значениях параметров?

Что такое ветвь УГП?

Что такое прогон тестов?

Каково содержание тестового отчета?

Какие существуют типы тестирования по способу выбора входных данных?

Каковы особенности документа для описания тестов?

Каковы цели обзора тестового кода?

Какие задачи у модульного тестирования?

При создании очередной версии программы была добавлена функция A , функция D была удалена, функция C – изменена, а функция U – оставлена без изменений. К какой группе относится тест, покрывающий только функцию D ?

Зачем нужна спецификация тестирования?

Как осуществить планирование тестирования?

Какие существуют разновидности структурных критериев?

Какие задачи решает тестировщик, проверяя изменения, внесенные разработчиком в код?

Каковы фазы процесса построения тестовых путей?

Каковы преимущества описания тестовых наборов на языке спецификаций?

На предыдущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии B, а тест 3 – в состоянии C. На текущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии C, а тест 3 – в состоянии D. На базе какого состояния наиболее целесообразна разработка новых тестов?

Каковы особенности системного тестирования?

Тестируемая программа состоит из классов A , B и C , взаимодействующих по принципу «каждый с каждым». Классы A и B были изменены. Тестирование каких классов и интерфейсов необходимо обеспечить, если используется брандмауэр?

Какие подходы используются для обоснования истинности программ?

Какие существуют фазы процесса тестирования?

Что такое управляющий граф программы (УГП)?

Можно ли гарантировать остановку программы на любом тесте?

Назовите полный и надежный критерий для нетривиальных классов программ.

Какая оценка мощности покрытия для следующих пар критериев правильна?

Назовите недостатки функциональных критериев.

Какая информация должна собираться при тестировании для применения метода оценки скорости выявления ошибок?

Перечислите метрики оценки оттестированности программного проекта?

Перечислите разновидности функциональных критериев.

Как реализуются динамические методы построения тестовых путей?

Каково выражение для оценки сложности интеграционного тестирования?

Какие существуют особенности модели ГМП в случае объектно-ориентированного программирования (ООП)?

Какие возможности используются для построения дуг графовой модели в ООП?

Какие этапы методов тестирования класса используются в ООП?

Какие задачи решаются на этапе системного тестирования?

Каковы особенности регрессионного тестирования?

Какими свойствами обладает метод повторного прогона всех тестов?

Какие методы регрессионного тестирования применяются в условиях отсутствия программных средств поддержки регрессионного тестирования?

Какие этапы процесса тестирования поддаются автоматизации?

Какую информацию использует и производит система автоматизации тестирования в цикле тестирования?

Какова процедура выбора и оценки критериев качества программного продукта?

Как определить цели тестирования программного проекта?

Чем отличается финальный цикл тестирования?

Какова методика разработки сценарных тестов?

Почему MSC спецификация обеспечивает снижение трудоемкости тестирования?

Каковы особенности документа для описания дефектов?

Каковы цели обзора тестовой стратегии?

Какими свойствами обладает метод повторного прогона всех тестов?

Какими свойствами обладает метод random(50) ?

Можно ли гарантировать безопасность метода регрессионного тестирования в условиях отсутствия информации о покрытии кода тестами?

В среднем, метод выборочного регрессионного тестирования…

Сопровождение какого типа соответствует случаю улучшения временных характеристик программы?

Функция int function(int number) была изменена путем вставки вызова функции распечатки перед первым исполняемым оператором. На каком уровне возможно повторное использование теста « 1 »?

Какими свойствами обладает метод random(50) ?

Какие методы регрессионного тестирования применяются в условиях отсутствия программных средств поддержки регрессионного тестирования?

Дана функция P , ее измененная версия P’ и набор тестов T , разработанный для тестирования P . Требуется, используя метод стопроцентного покрытия кода, отобрать подмножество T’ для тестирования P’ .

Pint abs(int number)< if (number >= 0) return –number; else return –number;>
P'int abs(int number)< if (number >= 0) return number; else return –number;>

Локализационное тестирование: зачем оно нужно приложению или сайту?

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

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

О тестировании локализации компании-разработчики, как правило, задумываются не сразу. И всё же этот процесс нужно обязательно включить в разработку. Давайте подробнее рассмотрим, что представляет собой тестирование локализации, какие важные этапы оно включает и зачем вообще оно нужно.

Что такое локализационное тестирование?

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

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

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

Почему локализационное тестирование так важно?

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

Локализация повышает лояльность клиентов к вашему бренду. Вот конкретные цифры: около 72,1% пользователей Интернета предпочитают делать покупки на сайтах на своем родном языке. Даже те, кто хорошо владеет английским, по-прежнему предпочитают просматривать веб-страницы на своем родном языке.

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

На что следует обратить внимание во время тестирования локализации?

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

Подготовительный этап

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

  • Подготовьте для тестировщиков необходимую документацию и все сведения о сайте или продукте, которые смогут пригодиться.
  • Создайте глоссарий и память переводов, чтобы помочь тестировщикам правильно истолковать используемые термины.
  • Если приложение или сайт уже переводились раньше, приложите предыдущие версии в целях ознакомления. А ещё можно воспользоваться специализированными сервисами или базами данных для хранения всех версий перевода и организовать к ним доступ.
  • Создайте трекер багов — документ или платформу, где вы будете фиксировать все баги, найденные во время тестирования локализации. Так проще контролировать исправление ошибок и общаться с остальными членами команды.

Проверка региональных и культурных особенностей

  • Соответствие формата даты и времени выбранному региону.
  • Форматы для телефонных номеров и адресов.
  • Цветовые схемы (это важно, так как один и тот же цвет может иметь разные значения в различных культурах). Например, белый цвет символизирует удачу в Западных странах, но в азиатской культуре он ассоциируется с трауром.
  • Соответствие названий продуктов региональным стандартам.
  • Формат валюты.
  • Единицы измерения.

Лингвистическая проверка

  • На всех страницах сайта или экранах приложения используется одинаковая терминология.
  • Отсутствуют грамматические ошибки.
  • Отсутствуют орфографические ошибки.
  • Соблюдены правила пунктуации.
  • Используется правильное направление текста (справа налево или слева направо).
  • Указаны правильные названия торговых марок, городов, мест, должностей и прочее.

Пользовательский интерфейс или внешний вид

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

Команда Alconost столкнулась с одним таким случаем во время работы с DotEmu и их игрой Blazing Chrome. В испанской версии количество символов в переводе текста кнопок превосходило ограничения для них. Слово «Далее» было слишком длинным на испанском: «Siguiente». Команда Alconost обнаружила эту ошибку во время тестирования локализации и предложила заменить «Siguiente» на «Seguir» для корректного отображения в интерфейсе. Именно благодаря обнаружению подобных проблем и их устранению интерфейс программного продукта и эффективность взаимодействия с пользователем улучшаются.


Функциональность

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

Какие трудности могут возникнуть во время тестирования локализации?

Процесс тестирования локализации сопровождается своими проблемами и «подводными камнями», и лучше знать о них заранее. Ведь даже известная поговорка гласит: «предупрежден — значит вооружен».

Одна из главных сложностей — это недостаточное знание целевого языка. Естественно, знать все языки мира невозможно. Но есть компании по локализации, интернационализации и переводу. Например, Alconost предлагает своим клиентам полный спектр услуг по локализационному тестированию и оценке качества. Локализованные тексты всегда дополнительно проверяются переводчиками-носителями языка, которые также имеют большой опыт тестирования локализации. И можно быть увереным на 99,99%, что все региональные особенности будут учтены.

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

Также нужно учитывать, что тестирование локализации может быть довольно долгим процессом, так как на изучение особенностей различных регионов нужно время. Чтобы упростить этот процесс и уложиться в сроки, советуем интегрировать этап контроля качества локализации в жизненный цикл разработки. Сделайте процесс тестирования локализации непрерывным: переводите новые строки, как только они появляются, и сразу же тестируйте. Если планировать тестирование локализации заранее, это поможет вовремя делать релиз продукта.

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

Нужна помощь с локализацией / переводом? — Мы в Alconost всегда рады помочь!

О нас

Alconost профессионально занимается локализацией игр, приложений и сайтов на более 70 языков. Лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджмент проектов 24/7, любые форматы строковых ресурсов.
Мы также делаем видеоролики.

  • localization
  • локализация
  • переводы алконост
  • алконост
  • alconost
  • тестирование
  • тестирование локализации
  • локализационное тестирование

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *