К основному контенту

Сборная солянка видеодокладов для самообразования на разную тематику - Выпуск 2

Scott Meyers - Keynote @ Meeting C++ 2014

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

Первая часть - это история про главу из книги, посвященную разнице между insert & emplace в STL-контейнерах. На этом примере Скотт показывает важность пунктов из своего списка:

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

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


Добавляем докладик про автоматическое тестирование, для остроты вкуса солянки.
Никита в свое время проехался по нему танком легким броневиком. Собственно с тех времен доклад видимо у меня в запасниках и пылился. Пришло и его время.
Помнится был у меня опыт построения тестов, подобных тем, что описывает докладчик. Вспоминаю с ужасом. Мокировали все, что "движется"... Но, возможно тогда мозг еще не был готов и опыта не хватало.
Доклад в первую очередь для разработчиков, потому что у тестировщиков возникают резонные вопросы про проблемы, возникающие в реальном окружении (см. комментарии Никиты). Но разработчикам действительно важнее проверить максимально возможное количество сценариев (пресловутое покрытие) за минимальное время. А это можно сделать только через unit-тесты. Это действительно можно завести, но будет ли это эффективно?
Есть сомнения. Особенно если ваши тестировщики придерживаются legacy-взглядов на тестирование и никакой автоматики у них нет.
Использование юнит-тестов для проверки как раз исключительных ситуаций (обработка ошибок, граничных условий и тп) действительно оправдано. Часто воспроизвести такое в реальном стенде сложно (или приближается к невозможному). Но жизненные и простые ситуации (success path) проще и правильнее проверять на пользовательских сценариях с использованием всего продукта.
Итоговое резюме: классический пример случая "гладко было на бумаге, позабыли про овраги".


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

Комментарии

Популярные сообщения из этого блога

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system under test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объе

Заметки на коленке - 3. Что еще делать, если ваши тесты уже "зеленые"?

"Lately I find I'm working on automated tests that return non-binary results. Tests that neither pass nor fail" by  @noahsussman Отличная мысль, которую я ретвитил еще в 2016. Но давайте вместе подумаем, что за этим может скрываться? ( кстати, не знаю, что при этом думал Noah ) Ваши тесты прошли и прошли "успешно". Все хорошо или все же есть, куда еще посмотреть? Дальше то, что использовал я лично и то, что еще можно прикрутить дополнительно. Естественно все шаги ниже должны быть автоматизированны. 1. Контролируйте время выполнения тестов. Если набор проверок не меняется (а такое часто бывает, к сожалению), то рост времени выполнения может говорить о проблемах в продакшен коде (чаще всего) или проблемах с окружением. 2. Контроль за количеством выполняемых тестов. "Все зеленое" не значит, что сегодня выполняли те же Х тестов, что и вчера. Смешно(нет), но случается такое, что какие-то проверки "исчезают" из запуска из-за того, что у кого-то &qu

Полезные ресурсы для молодых (и не только) тестировщиков

сперто(с) Уже 3 месяца провожу собеседования тестировщиков (март 2016). Поначалу они просто  веселили - после 15-летнего опыта собеседования С++-разработчиков, общение с тестировщиками (чаще были "-цы") было чем-то экзотическим и забавным. Потом становилось все грустнее и грустнее, мимими закончилось. Началась печаль.