Показаны сообщения с ярлыком Facebook. Показать все сообщения
Показаны сообщения с ярлыком Facebook. Показать все сообщения

26 октября 2017

Напочитать: так тестируют только @#$%исты!

Про то, как тестируют программисты

1. JCunit для комбинаторики и тестирования на основе моделей.
2. Какие типы моков бывают - с примерами для Mockito.
3. Как можно (нужно ли?) комплексно протестировать Spring Boot приложение - подробно и детально тут.
4. Как Facebook ищет баги с помощью генетических  алгоритмов и как к этому прикрутить crowdsourcing.
5. Infer от Facebook живет и они даже про него рассказывают: видео , статья . (maven-плагин для интеграции)
6. как тестируется язык Rust - очень интересно.
7. Как программисты GitHub устраивали back-to-back  тестирование в продакшене.
8. Infer (ныне фейсбуковский) учится находить race conditions.
9. Как протестировать отправку почты с простейшим SMTP сервером и модными TestContainers Arquillian Cube.

14 марта 2017

Напосмотреть: Лицекнижие

Большей частью про тестирование.

1. Кирилл Толкачев о том в какую правильную позу надо ставить Jenkins особенно если ты часть кровавого ынтерпрайза





2.  Неочевидные подходы к обеспечению качества путем анализа архитектуры (осторожно, UML), коммитов и работы кода в продакшене.

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


3. Продолжая тему Jenkins и то сколько там вокруг граблей и как это все натягивать на суровую разработку





4. Про то как в Яндексе пишут автотесты прямо в браузере





5. Концентрат мудрости - Алексей Лупан про обучение тестировщиков




В завершение два видео от Facebook на тему автоматизации тестирования Android и IOS.

IOS


Android

17 января 2017

Напочитать: DEV-ственные Heap-стеры


1. нечеткие регулярные выражения - случайно попали в поле зрения (Осторожно, хипстеры! По ссылке sourceforge)
2. Netflix сливает в open-source очередную порцию своих проектов: Hollow и Conductor
3. jcmd прямо в коде. Прикрутил себе кое-куда, удобно чо.
4. О том как ByteBuddy может помочь в борьбе за SecurityManager да и вообше много про SecurityManager в этом бложике.
5. А вот тут можно заглянуть под юбку java разработке в Facebook - jcommons
6. Spring тоже решил ударится об реактивщину (на самом деле давно) - Reactor. Мне это все начинает напоминать JavaScript-мир - каждый задрот на коленке пилит свой новый велосипед, думая что ну вот в его-то исполнении колеса точно будут круглыми. А вот тут вот еще можно посмотреть примеров холодных и горячих  стримов.
7. Надоело наблюдать как все python-ируют на Machine Learning (привет, Coursera)? Не расстраивайтесь, на Java тоже можно. Ну и канальчик от Гугла на ту же тему - вот да.
8. Что  такое service images и executable images и чем они отличаются в Docker? Нет, не подумайте, у меня не докер головного мозга, но вот у некоторых  - да.
9. Конструктор дэшбордиков от NASA - OpenMCT. NodeJS, если что.
10. MutabilityDetector для ваших хипстерских POJO-ей.
11. Огромнейшая простыня про Nashorn - тут.
12. Про то как хипстота из гугла запускает Python на Go - Grumpy.
13. метод 3-I (Isolate-Improve-Inline)  или как правильно рефакторить. Руководство для начинающих хипстеров.
14. failsafe - не hystrix единым.
15. Ну и напоследок  набор хипстерских git alias-ов

16 ноября 2016

Напочитать: Автоматизация тестирования 18+


1. Запускать тесты c использованием Sikuli на гриде - Sterodium.
2. European Testing Conference озвучила даты и выложила видео с прошлого года.
3. Два очень похожих доклада про верификацию распределенных систем. Взгляд скорее академический, чем прикладной. Но интересно. Ines Sombra и Caitie McCaffrey.
4. JSONAssert - неплохо, но я бы стал пользоваться JSON Schema.
5. Facebook открыл то о чем они говорили еще в 2013 - инструмент для screenshot-based testing под iOS.
6.  Аналог BrowserMob Proxy только написан на Go и от Google - martian, и апишечка для управления ей в комплекте.
7. Продолжая тему управляемых проксей, мой (пусть уже бывший) коллега Николай Мазуркин запилил  проект NetCrusher - управляемая прокси на чистой джаве для интеграционного тестирования.  Тредик с доп.информацией и срачиком на фейсбучке.
8. Специфика тестирования IOS в исполнении LinkedIn
9. Зарелизился Watir 6.0 - интересно кто-то им (еще) пользуется интенсивно ?
10. Опыт Facebook о тестировании производительности клиентского кода. TL;DR: замокать и запроксировать все нахер и радоваться что находите регрессию на последней миле и пофигу что мультипликация ошибки может дать сильно больше.
11. Be prepared to allocate at least one week a quarter per test to keep your end-to-end tests stable in the face of issues like slow and flaky dependencies or minor UI changes - говорит нам Гугль.
12. Артем Кошелев про docker для тестирования на Android устройствах и фильтрацию устройств и эмуляторов.
13. Про то как в Netflix тестируют на реальных устройствах.
14. Про то как в Badoo патчили Selenium
15. LinkedIn опенсорснул  TestButler - тестовый агент который помогает жить на Android легче и веселее.
16. Цитирую
There, tests must demonstrate stability for at least one week before being promoted.
...
Once a test has demonstrated its reliability, it is promoted into one of two sets. The first set, BVSBlocker, contains tests that indicate whether a build is even worth further testing. A build which fails Blocker isn’t deployed to a testing environment, because either games aren’t starting or there are multiple severe crash bugs affecting the game. Its counterpart, BVSCore, is our core set of functional tests, including tests for every champion ability. - и другое про автоматизацию тестирования самой популярной игры 2016 на мобильных  устройствах от Riot Games.

Ну и на десерт - чем тестировщики в гуглях занимаются:
To give you an idea of what TEs (Test Engineers - прим.ред.) do, here are some examples of challenges we need to solve on any particular day:
  • Automate a manual verification process for product release candidates so developers have more time to respond to potential release-blocking issues.
  • Design and implement an automated way to track and surface Android battery usage to developers, so that they know immediately when a new feature will cause users drained batteries.
  • Quantify if a regenerated data set used by a product, which contains a billion entities, is better quality than the data set currently live in production.
  • Write an automated test suite that validates if content presented to a user is of an acceptable quality level based on their interests.
  • Read an engineering design proposal for a new feature and provide suggestions about how and where to build in testability.
  • Investigate correlated stack traces submitted by users through our feedback tracking system, and search the code base to find the correct owner for escalation.
  • Collaborate on determining the root cause of a production outage, then pinpoint tests that need to be added to prevent similar outages in the future.
  • Organize a task force to advise teams across the company about best practices when testing for accessibility.

20 октября 2015

Напочитать: Тестовый инструментарий антигуманитария


1. Хороший дайджест для тестировщиков со всем XML-технологиями.

2. Объяснение на пальцах что такое CQRS и Event Sourcing.

3. Долгий но полезный рассказ о том как уничтожать плохие продуктовые идеи. Если вы тестировщик и не понимаете зачем вам это - слушайте старших.

4. Amazon запускает свой device cloud для тестирования Android и своей Fire OS.

5. Старый рассказ с Google Tech Talks о том как Dependency Injection/ Inversion of Control влияет на тестируемость.

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

7. Twitter опубликовал свою Diffy - утилиту для back-to-back тестирования сервисов.

8. На Indiegogo успешно прошла краудфаундинговая компания по сбору средств на создание JUnit Lambda - следующей версии JUnit. Бюджет собрали аж дважды (216% если быть точным), есть надежда что скоро процесс пойдет, а пока можно почитать вики проекта на GitHub. Ребят проблема настолько актуальна для всех ?  Поделитесь болью в комментах.

9. ExtentReports - Очередная библиотечка для генерации репортов от автотестов. Кстати выглядит на первый взгляд весьма сексуально. Код тут.

10. Про кучу возможностей для тестирования и fault-injection testing в докладе Игоря Сухорукова, который на самом деле про аспекты.

11. О том как тестируют качество звука в WebRTC. Отличный и довольно простой пример привнесенной testability.

12. Как всегда, красочно и про самую  писечку - он иначе не умеет - Алексей Лупан про регрессионное тестирование.

13. Что не является тестируемым кодом - с примерами.

14. Как писать юнит-тесты на многопоточный код.

15. Facebook запилил WebDriverAgent - A WebDriver server for iOS that runs inside the Simulator. Ну вы поняли - скоро будут гриды на архитектуре WebDriver-а.

16. Про тестирование безопасности API раз, два, три.

29 сентября 2015

Напочитать: 11 друзей гуманитария


  1. Хорошая презентация от Etsy о том как адаптировать и адаптировать к удаленным работникам. Ну и вообще пересказ книжки Remote.
  2. О том что интервью сломаны и что все тлен и безысходность.
  3. Три закона критики от Максима Ильяхова.
  4. Задача Васона как пример того что все люди - нелогичны.
  5. Выход из комнаты и очистка памяти - все логично, да.
  6. Про сон. Очень актуально и проверено на себе.
  7. Весьма легкое выступление которое можно разобрать на цитаты вырванные из контекста. О том почему в офисе можно  завести собаку, таскать туда маленьких детей и вот это все. Слушал с удовольствием.
  8. про ад и трэшугар внутри Amazon и их ответ Чемберлену.
  9. О эффекте SEME и том как Google/Facebook могут влиять на выборы. Но нам-то не о чем волноваться, у нас-то все стабильно.
  10. О практике безоценочного суждения и postmortem-ов от Etsy.
  11. Занимательное про зарплаты "The more I think about salaries, the less I like them. They are usually pitched like "as long as you get your tasks done, it doesn't matter how much you work," but for some reason it seems like most salaried people end up working more hours and not less. "

14 июля 2015

Напочитать: Странный выпуск про тестирование

Лето. Затишье. Да и мне уже в отпуск хочется.
  1. Долго и нудно о том что такое исследовательское тестирование. От авторов самой концепции исследовательского тестирования
  2. О полуавтоматизации для тестирования локализаций в Netflix - тут
  3. Netflix Test Studio уже как-то попадала ко мне в напочитать, но вот тут про нее более развернуты рассказ. Точнее про то почему в нее пришлось воткнуть Kafka.
  4. Еще один рассказ как преуспеть с интеграционными тестами - на этот раз из мира .NET - но да суть неизменна.
  5. Недотестировали. забили, забыли на 500 миллионов долларов - баги в космосе дорогие.
  6. Большая книжка про то как начать автоматизировать на Python - тут.
  7. Онлайн-конференция TestLabs пройдет 25 июля. Инфа тут.
  8. Мне вот порой кажется что тестировщики без пирамид не могут. Нуващеникак!!! Вот еще раз про пирамиды и качество
  9. Коротенько и емко про то что стоит за тестированием на основе моделей - состояния и их диаграммы.
  10. Рассказ про кошерный BDD от John Ferguson Smart - того самого который сделал Thucydides (ныне Serenity)
  11. Рассказ от Etsy о том как они на LXC+Chef строили свою тестовую инфраструктуру - раз и два.
  12. Infer. Статический анализатор кода от Facebook. Ссылочки (раз, два, три).
    Из последнего  white-paper-а вы можете узнать что:
    - большие продуктовые компании инвестируют в инструменты статического анализа.
    - Infer был изначально сделан не в Facebook, Facebook попробовал его и решил купить компанию, стоящую за Infer (Monoidics).
    - этот инструмент анализирует код композитно - то есть не весь каждый раз, а только изменения и натягивает эти изменения на предыдущие результаты и за этим стоит математика.
    - есть отдельная система которая по хэшам определяет места в коде чтобы понимать какой changeset что дает на продашене.

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

06 июля 2015

Напочитать : Накипевший выпуск.


  1. Если слова  Java +  JNI + С++ вам знакомы и вызывают боль то вам может быть полезно тут.
  2. Отличный перевод манифеста Twelve-Factor-App  на Хабре.
  3. Stefan Tilkov на Craft Conference 2014 рассказывал об архитектуре, архитекторах и пичальках. Смотреть тут.
  4. О том что Hola ссучилась и какие угрозы могут нести расширения в браузерах  - как для пользователей, так и для продуктов , с примерами и картинками.
  5. Очень пространное эссе о трудностях общения компилятора Java и JVM.
  6. Step-by-step guide про то как начать с node.js, если вам конечно не противно.
  7. Новый статический анализатор кода от Facebook. Правда вроде как без правил по которым анализировать, зато опенсорс, OCaml под капотом и все понты, дада.
  8. Простые правила написания безопасного кода. Ну совсем простые.
  9. Как дебажить maven сборку - написано тут, несмотрите на слова Eclipse.
  10. Рассказ от Spotify о том как они мигрировали базу данных  пользователей без downtime c PostgreSQL на Cassandra.
  11. Как пользоваться FUSE через С и Java и вроде бе даже без крови
  12. Вопросы которые нужно задать себе когда хочешь странного SOA микросервисов.
  13. Release plan на Java 9 готов, осталось взять и написать. Плохая новость - не будет JSON API, Money & Currency API. Хорошие новости - тут уж на суд каждого. 
  14. О том как хорошо потрахаться с try-with-resources через мутационное тестирование с pitest.
  15. О том как устроен UI десктопного плеера Spotify, причем здесь богомерзкий javascript и Chromium Embedded Framework. И такого будет дальше только больше. (Лавеча слышал цифру что Facebook переиспользует более 50% кода какого-то компонента в iOS и Android приложениях через этот ващ  Javascript).
Следующий про тестирование.

13 мая 2015

Напочитать: Пятнашки


1. Сразу две статьи про легковесные реализации многопоточности в Java - раз и два.
2. С релизом 1.6 Docker ступает на тропу Windows. Ну и еще куча всякого в релизе. 
3. Еще не до всех дошло что можно ускорять Android эмулятор за счет тупого изменения архитектуры процессора в настройках. Будем повторять, чо.
4. Мутация JSON от Google  - jsonnet. Интересно, выживет ли.
5. Интересная возможность отлаживать вэбчик в разных мобильных браузерах.
6. Набор прикольных утилитарных библиотечек от Zero Turnaround - zt-zip, zt-exec, zt-process-killer. Молодцы,чо.
7. Пара интересных статей про Traceability на Large-Scale - про то как Facebook делает это через  логи и про то как Google делает это через интроспекцию.
8. Еще раз про Ansible. Имхо на масштабах до 100 машин - хорошая штука.
9. Вышел Guice 4.0 с улучшенным саппортом Java 8.
10. Интересный инструмент для анализа бинарной совместимости релизов - jQAssistant.
11. Windows будет теперь релизится по-другому - это если суть. Детали тут.
12. Отличный обзор Continuous Delivery от Google/Amazon/Facebook если кто-то еще не читал/смотрел. Исполняет Noah Sussman.
13. "Вы не любите JavaScript? Вы просто не умеете его готовить! " и тому подобное.
14. Вышел новый technology radar от Thoughtworks.
15. Интересная фигня от Airbnb - Airpal.

17 мая 2014

Наблюдение : про кодобазы

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


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

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

Аналогичная практика (если мне не изменяет память) существует в Google, аналогичная практика в Facebook и опен-сорсный инструмент который помогает жить с этой парадигмой.

Хорошая ли это практика или нет - покажет время.
В любом случае возникает вопрос - как не заблудиться в больщой кодобазе если она упакована в один репозиторий.