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

Воскресное утро начинается вместе с новой догмой, знакомься - принцип YAGNI. Точно не скажу как это читается на русском, потому что с первого взгляда напоминает что-то неприличное, однако на английском расшифровывается как You aren't gonna need it или "тебе это не понадобится".

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

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

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

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

Посему спи спокойно, никто не узнает, что ты нарушаешь режим самоизоляции.
#Do_you_understand

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

P.S. Кстати, напоминаю, что у канал есть бот - @programmistkas_bot. Отправляй ему любые темы и я напишу пост, который будет интересен именно тебе.
#Do_you_understand

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

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

Так же и с изменениями - один разработчик запушил новую версию, другие спулили изменения и продолжили разрабатывать уже с учетом новшеств.
#Фантастические_твари_и_кем_они_работают

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

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

Сумма вознаграждения напрямую зависит от критичности уязвимости. Например, Mail.ru в среднем платит $2000.
This media is not supported in your browser
VIEW IN TELEGRAM
#Где_то_за_кадром

Как обучают нейронные сети?

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

Например, чтобы научить нейросеть находить кошку на фотографии, необходимо дать ей множество разнообразных картинок с кошками и говорить, где что изображено (аля это - животное, а это - подушка). Причем если изображений будет мало, то неройсеть обучится на троечку и работать будет как алкоголик дядя Вася - видеть черных кошек там, где их нет.
This media is not supported in your browser
VIEW IN TELEGRAM
#Do_you_understand

Баг - злейший враг всех разработчиков. Переводится с английского как "ошибка" или "жук". И то, и то довольно малоприятное явление.

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

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

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

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

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

Например, как объяснить машине значение фразы: "За песчаной косой косой косой косой косой косой косил прокос"? Да даже тебе наверняка с первого раза сложно это воспринять.

Однако естественные языки могут использоваться при обучении новичков программированию.
#Фантастические_твари_и_кем_они_работают

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

Во многих малых и средних компаниях сисадмин планирует развитие и модернизацию оснащения. Грубо говоря - "Компьютер модели А устареет через полгода, поэтому мы часть техники заменим на модель B, а другую часть отдадим туда, где это не критично. А еще необходимо усовершенстовать информационную безопасность, поэтому через два месяца приобретем модель Г". Хотя, по-хорошему, это уже задача менеджеров.
#Где_то_за_кадром

Что было раньше: провайдеры или Интернет? Ты даже не представляешь как сложно ответить на этот вопрос.

Глубоко на дне океана, где обитает Спанч Боб, лежат оптоволоконные кабели, по которым передают 99% всех международных интернет-данных. И владеют этим баснословно дорогим удовольствием крупнейшие провайдеры первого уровня. Их меньше 10 и именно на них держится весь Интернет.

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

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

К сожалению - нет. И тому есть две причины:

1. Провайдеры первого уровня в принципе не продают трафик конечным потребителям.
2. Трафик продается оптом, т.е. малый объем будет стоить дороже. А ты вряд ли захочешь скупать даже десятую часть всего мирового трафика ради котиков в Интернете.
#Do_you_understand

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

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

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

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

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

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

- поместить что-то в память
- извлечь что-то из памяти
- арифметические операции
- логические операции

На этом все) Код выглядит как на картинке - очень интересно и ничего не понятно. Непосредственно на таком, кхем, языке, разработчики не пишут, но все программы автоматически "транслируются" в машинный код, чтобы начать работу.
#Будь_как_все

TMTOWTDI - еще один известный IT принцип. Аббревиатура читается как «Тим Тоуди», хотя некоторые пытаются произносить это прямо как есть. Ну, удачи им. В расшифровке принцип звучит как «There’s More Than One Way To Do It», в переводе на великий могучий - «Есть больше одного способа сделать это». Если ты понимаешь, о чем я. 😏

Суть TMTOWTDI в том, что любой алгоритм, каким бы простым или сложным он не был, можно синтаксически написать разными способами.

В качестве простого примера можно рассмотреть две фразы: «Котик убежден, что миска всегда полна еды» и «Пушистый котяра уверен, что в любой момент найдет что-то съестное в миске». Они абсолютно одинаковы по смыслу и построению, но при этом синтаксически разные.
#Вавилон_нашей_эры

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

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

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

Давай немножко отвлечемся от сложностей языков программирования и поговорим на любопытную тему - как работает беспроводная зарядка.

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

Ревертнуть равносильно откату изменений. Помнишь, я недавно рассказывала про сленг, который подарила нам система контроля версий gIt?

Название произошло от команды "revert", которая в переводе обозначает "повернуть назад". В двух словах работает следующим образом: ты выбираешь какие изменения необходимо сбросить, и git создает новые изменения, которые нивелируют старые.

Возможно, последнее предложение было слегка запутанным, поэтому на примере: пусть было 4 + 5 = 9. В качестве операции для реверта ты выбираешь операцию сложения. Тогда git сделает следующую операцию: 9 - 5 = 4.

P.S. Если что, "ally" с картинки - это "союзник".
#Do_you_understand

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

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

P.S. Единственное, стоит помнить, что экстраполировать всегда надо аккуратно. Иначе получится как на картинке.
#Респонс_на_реквест

У меня тут недавно был пост про необходимость диплома для программиста, где я упомянула, что военные и IT - это крайне интересный симбиоз. Ну и естественно, меня спросили "почему?".

Итак, чтобы любой технологии попасть на вооружение в вооруженные силы ей необходимо пройти сертификацию, попасть под требования всех ГОСТов и принятых нормативных актов. Собственно, это камень преткновения.

Во-первых, проведение такой сертификации - процесс долгий (от года) и дорогой. А во-вторых, тестировать все новые технологии подряд явно никто не будет - денег нет, так что держитесь. Поэтому, если технология вдруг зародилась не в военном НИИ, а на "гражданке", то до ее появления в вооруженных силах могут пройти десятилетия.