Рубрика «тесты» - 2

Наземное испытание прототипа Starship Mk1 закончилось его фатальным повреждением - 1

20 ноября 2019 года на полигоне в Бока Чика на юге американского штата Техас полноразмерный прототип верхней (второй) ступени космического корабля Starship Mk1 компании SpaceX был разрушен во время проведения испытаний аппарата на максимальное заполнение топливных баков криогенной жидкостью.
Читать полностью »

Распределенная игровая сеть как альтернатива GFN: как и почему это может взлететь, где уже работает в РФ - 1

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

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

Привет. На днях я искал, как сделать что-то в Idris, и наткнулся на неплохой пост, вольный перевод которого выглядит вполне уместным. Вольности и отсебятину, где необходимо, я буду обозначать ⟦вот такими закорючками в начале и в конце⟧.

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

Мы рассмотрим простой и немного надуманный пример, выраженный на Python, C, Haskell и Idris. Мы также увидим, что можно сказать о реализации без каких-либо дополнительных знаний о ней, в каждом из случаев.

Мы не будем учитывать разнообразные чёрные ходы, позволяющие явно нарушать гарантии языка (например, расширения C, unsafePerformIO в Haskell, небезопасные приведения типов), иначе нельзя было бы сделать вообще никаких выводов, и этот пост получился бы довольно коротким. ⟦Кроме того, у того же хаскеля есть подмножество Safe Haskell, явно и транзитивно запрещающее использование этих и ряда других трюков, могущих нарушить целостность языка.⟧

Читать полностью »

Page Objects могут быть использованы как мощный метод абстракции (изоляции) ваших тестов от технической реализации. Важно помнить, их (Page Objects) можно использовать для увеличения стабильности тестов и поддержания принципа DRY (do not repeat yourself) — посредством инкапсуляции функционала (вебсайта) в простых методах.
Читать полностью »

SpaceX провела летные испытания прототипа ракеты Starship — взлет на высоту 150 метров и мягкая посадка на площадку - 1

Компания SpaceX успешно провела новое летное испытание Starhopper — прототипа первой ступени будущей сверхтяжелой ракеты Starship and Super Heavy. Во время испытаний аппарат поднялся на высоту 150 метров, переместился в сторону, а затем совершил мягкую посадку на специальную площадку неподалеку. Трансляция тестового полета проводилась на YouTube-канале SpaceX.
Читать полностью »

Не успеет Солнце дважды опуститься за горизонт, как все IT-джедаи, падаваны и юнлинги слетятся в звездную систему «Лесные дали», чтобы подтвердить свой IT-статус. Тестированием адептов Силы займутся «Ростелеком», «РТ Лабс» и Хабр. Пунктом инициации станет Российский Интернет-Форум (РИФ), где воины информационных технологий соберутся на совет по множеству вопросов галактической важности — малый и средний бизнес в интернете, дизайн и UX, цифровой маркетинг, кибербезопасность, HR, PR, big data.

Инициация IT-адептов: покажи свою Силу на РИФе - 1

Инициация адептов пройдет в отдельном отсеке звездолета РИФ — пространстве «Ростелекома», «РТ Лабс» и Хабра — где каждый сможет не только доказать свое мастерство, но и получить знания, награды, а также расширить горизонт событий. Точнее, собственных профессиональных перспектив. Подробности — под катом.
Читать полностью »

Давеча на глаза мне тут попалось аж две статьи из одного корпоративного блога, касающиеся облаков — одна про Kubernetes, а во второй была попытка замера производительности по методике, которая мне показалась сомнительной (спойлер — и не зря).
Про K8s мне тоже есть что сказать, но поговорим про производительность.
Недоверие к результатам было вызвано многими факторами, но основными из них для меня стали следующие: параметров запуска тестов не было, количество итераций не озвучено, как выбирались машины не озвучено, подробной конфигурации тоже не было. Сомнительно, в общем.
В целом, я пользуюсь в основном Google Cloud и AWS (в сумме уже с десяток лет опыта по ним набежало) и с отечественными облачными провайдерам особо не работаю, но, по стечению обстоятельств, у меня есть активные аккаунты в Selectel, MCS, Я.Облаке и, после этого теста, еще и в Azure.
К счастью, все эти платформы публичные и что бы я не намерил, каждый при желании может пойти, повторить и проверить.
Итогом всего этого стала мысль — почему бы не потратить пару сотен рублей, все выходные и действительно вдумчиво не померить все шесть платформ и выяснить, какая из них дает лучшую производительность относительно стоимости и в абсолютных цифрах при одинаковых конфигурациях, а заодно и сравнить глобальных поставщиков с российскими.
А так же, как выяснилось, прояснить некоторые «особенности» в выделении ресурсов и напомнить себе и окружающим, что далеко не всегда и не на всех платформах за одни и те же деньги можно получить предсказуемую производительность.
Результаты получились не сказать чтобы феноменальными, но на мой взгляд крайне любопытными.
Интересующихся прошу под кат.
Читать полностью »

Если освоить небольшой список типичных ошибок, возникающих при написании юнит-тестов, то можно даже полюбить писать их. Сегодня руководитель группы разработки Яндекс.Браузера для Android Константин kzaikin Заикин поделится с читателями Хабра своим опытом.

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

скришот CutterНедавно zerocost написал интересную статью «Тесты на C++ без макросов и динамической памяти», в которой рассматривается минималистический фреймворк для тестирования Си++ кода. Автору (почти) удалось избежать использования макросов для регистрации тестов, однако вместо них в коде появились «волшебные» шаблоны, которые лично мне кажутся, простите, невообразимо уродскими. После прочтения статьи у меня оставалось смутное чувство неудовлетворённости, так как я знал, что можно сделать лучше. Я сразу не смог вспомнить где, но я точно видел код тестов, который не содержит ни единого лишнего символа для их регистрации:

void test_object_addition()
{
    ensure_equals("2 + 2 = ?", 2 + 2, 4);
}

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

Читать полностью »

Многие популярные библиотеки для тестирования, например Google Test, Catch2, Boost.Test тяжело завязаны на использование макросов, так что в качестве примера тестов на этих библиотеках вы обычно увидите картину вроде такой:

namespace {

// Tests the default c'tor.
TEST(MyString, DefaultConstructor) {
  const MyString s;
  EXPECT_STREQ(nullptr, s.c_string());
  EXPECT_EQ(0u, s.Length());
}

const char kHelloString[] = "Hello, world!";

// Tests the c'tor that accepts a C string.
TEST(MyString, ConstructorFromCString) {
  const MyString s(kHelloString);
  EXPECT_EQ(0, strcmp(s.c_string(), kHelloString));
  EXPECT_EQ(sizeof(kHelloString)/sizeof(kHelloString[0]) - 1,
            s.Length());
}

// Tests the copy c'tor.
TEST(MyString, CopyConstructor) {
  const MyString s1(kHelloString);
  const MyString s2 = s1;
  EXPECT_EQ(0, strcmp(s2.c_string(), kHelloString));
}
}  // namespace

К макросам в C++ отношение настороженное, почему же они так процветают в библиотеках для создания тестов?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js