Тестирование | QA, QC
3.5K subscribers
246 photos
82 videos
332 links
Всё о тестировании ПО простым языком.
Download Telegram
#Фантастические_твари_и_кем_они_работают

У нас когда-то был опрос на тему того, о какой айтишной профессии вы хотите узнать. О системном администраторе я уже рассказала и вроде как обещала написать о втором победителе - архитекторе. Жми на 👍, если все еще ждешь статью об этой профессии и я опубликую ее вечером в воскресенье.
#Где_то_за_кадром

Кто из нас не копировал файлы в Windows? В начале процесса копирования тебе пишут, что до конца осталось 3 минуты, а через 3 минуты сообщают, что надо подождать еще 10. Почему так происходит?

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

Так и при копировании. В самом начале алгоритм просто играет в угадайку. Система знает сколько файлов ей надо скопировать, но она не знает насколько загружена память, как быстро ответит диск, какое качество у Интернет-соединения.
#Будь_как_все

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

Но давай подумаем над истинностью этой фразы. Если человек врет, когда произносит "Я лгу", то он говорит правду. А если человек говорит правду, когда произносит "Я лгу", то он врет.

Впервые этот парадокс появился у древних греков. Эпименид утверждал, что все критяне лжецы, но сам был родом с острова Крит. Сейчас это противоречие является частью теоретической информатики.
#Do_you_understand

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

Давай приведу пример из жизни, чтобы было понятно - рекурсия появится, если включить web-камеру компьютера и навести ее на экран этого же компьютера. Камера записывает изображение экрана и передает его на экран, где снова записывает и снова передает, и т.д.
#Респонс_на_реквест

Подписчик попросил привести еще один пример рекурсии, но уже не бесконечной.

Итак, представь, что ты с утра очень торопишься на работу, а чтобы уйти туда нужен ключ от двери. Твой трехлетний сын сообщает, что ключ он положил в большую коробку. Делать нечего, идешь к коробке, открываешь - внутри еще одна коробка. Открываешь ее - внутри снова коробка. Открываешь...

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

Ну а если у ты тоже хочешь задать какой-то вопрос и получить ответ на канале - пиши @programmistkas_bot
This media is not supported in your browser
VIEW IN TELEGRAM
#Где_то_за_кадром

Как хакеры взламывают программы?

Один из способов - это использование reverse engineering, который еще называют обратной разработкой.

В чем суть? Когда у тебя есть готовая программа и много времени, которое некуда деть, можно сопоставить действие и результат. Например, если нажать на эту кнопочку, а потом на ту, то выскочит баннер. А если сначала на ту, а потом на эту, то произойдет регистрация нового пользователя.

По такому сопоставлению достаточно легко предположить, как устроено все внутри программы. А отсюда можно сделать вывод в каких местах могут быть уязвимости.
This media is not supported in your browser
VIEW IN TELEGRAM
#Где_то_за_кадром

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

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

Результат перевода внимательно анализируется и модифицируется.
#Вавилон_нашей_эры

Итак, постом выше я упомянула такую вещь как ассемблер.

Количество команд у этого языка весьма ограниченное - около 20 и каждая из них напрямую соответствует инструкции машинного кода. Только представлена в более удобном для человека виде. Например, вместо условного C01B 7E C0 79 будет JMP.

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

О чем рубрика?
This media is not supported in your browser
VIEW IN TELEGRAM
#Do_you_understand

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

Теперь тоже самое по-человечески: вместо 1 + 2 будет 1 2 +. Такое извращение оправдывается тем, что оно не требует скобок. Например, (1 + 2) * 3 преобразовывается в 1 2 + 3 *. А раз нет скобок - компьютеру проще вычислять, потому что сразу понятен порядок действий.

О чем рубрика
#Где_то_за_кадром

Как проходят собеседования в IT?

Типичное собеседование состоит из 3-4 этапов. Почему так много?

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

Второй этап - техническое собеседование. Здесь все просто: теоретические и практические вопросы по всей области предмета.

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

Четвертый этап - пре-оффер или обсуждение результатов первых трех этапов и зарплатной вилки.
#Do_you_understand

Хакатон - увеселительное мероприятие в течение 24 или 48 часов, где разработчики меряются скоростью разработки, качеством идей и чем придется на благо организаторов.

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

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

О чем рубрика
#Фантастические_твари_и_кем_они_работают

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

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

О чем рубрика
This media is not supported in your browser
VIEW IN TELEGRAM
#Где_то_за_кадром

В 3 часа 14 минут и 8 секунд 19 января 2038 года по всему миру прокатится сбой в программном обеспечении. Маленький конец света, когда время повернет вспять и многие системы будут думать, что на дворе 13 декабря 1901 года.

Причиной будет код, который активно использует даты и время в формате UNIX (я расскажу, что это за формат в следующем посте).

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

О чем рубрика
#Будь_как_все

UNIX-время о котором я обещала рассказать - это система описания времени, которая используется во многих операционных системах. К примеру, Apple и Linux.

Время представляется как количество секунд, которые прошли с полуночи 1 января 1970 года. Проблема 2038 года заключается в том, что максимальное количество секунд, которое на данный момент хранится в таком формате, составляет 2 147 483 648.

Кажется, что это очень много - но когда наступит 2 147 483 649 секунда, то это число станет отрицательным, что и приведет к путешествию дат во времени.

О чем рубрика
#Будь_как_все

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

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

Это когда в условии вместо "меньше 20" пишут "меньше или равно 20", или начинают считать не с 0, а с 1. И вот это то, на чем регулярно спотыкаются как новички, так и опытные программисты.

О чем рубрика
#Респонс_на_реквест

Один из подписчиков попросил меня написать гайд для совсем начинающих, кто очень хочет в IT, но пока что не может.

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

О чем рубрика
#Где_то_за_кадром

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

Но вообще-то так лучше не делать. Обновления содержат не только новые функции, но и исправление старых ошибок, часто критических. Это не значит, что тебе нужно каждый день проверять, не вышла ли новая версия. Но хоть иногда устанавливай их. Только в одном из обновлений Android было исправлено больше 500 ошибок, представь, сколько "приятных сюрпризов" они могли принести.

О чем рубрика
#Будь_как_все

GIGO расшифровывается как Garbage In, Garbage Out, что в переводе на великий и могучий означает "мусор на вход, мусор на выход".

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

О чем рубрика
#Do_you_understand

Страшно, потому что убийца все еще на IPv4.

Что такое IP-адрес, ты наверняка знаешь. Хотя бы по фразе "вычислю по IP". Поэтому сразу перейдем к IPv4 и IPv6. Это интернет-протоколы, с помощью которых и задаются адреса.

IPv4 имеет четырехзначный код. Ну что-то вроде 10.123.28.36, где каждое из чисел находится в диапазоне от 0 до 255. Самое страшное, что адресов в этом протоколе уже более 4 миллионов и мы близки к цифре, когда свободной комбинации просто не найдется.

Выход, разумеется, есть - переход на IPv6, который состоит уже из 8 блоков и сумеет обеспечить человечество адресами на ближайшие пару столетий.

О чем рубрика
#Do_you_understand

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

Поэтому придумали такую вещь как доменные имена. Например, kotaytki.ru. Привычнее и понятнее. Вот это .ru или его аналоги .com, .net, .us и т.п. называются корневым доменом. Кстати, .ru говорит о том, что услуги по этому адресу физически располагаются внутри России.

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

О чем рубрика