Test Engineering Notes: Vol. 3. Про AI, культуру якості, системний дизайн та simulation testing
Усі статті, обговорення, новини про тестування — в одному місці. Підписуйтеся на DOU | QA!
Всім привіт. З вами Олександр Романов і Test Engineering Notes. Перший місяць літа вже майже завершений. Але попереду ще цілих два! А тому саме час почитати черговий корисний випуск дайджесту цікавих статей про тестування, розробку та інші технічні штуки.
P.S. Про головне — у кінці.
TLDR, або Що у випуску
- AI у тестуванні — від теоретичних роздумів до практичного тестування;
- «шифтуємо» вліво перевірки безпеки та знайомимось з accessibility;
- розширюємо набір інструментів для мобілок та розбираємось з web-перфомансом з Lighthouse;
- вивчаємо дизайн-паттерни для автотестів та дивимось на приклади контрактних тестів;
- розкриваємо тему культури тестування на прикладі Google та Apple;
- повторюємо базові (та не дуже) концепції з системного дизайну, мереж та баз даних;
- дивимось доповіді про performance benchmarking та поглиблені підходи в тестуванні розподілених систем;
- багато багато іншого ...
Тестування
- On the Diverse And Fantastical Shapes of Testing — Martin Fowler розповідає про те, як змінюються підходи до тестуванння за роки.
- Testing in the Twenties — а це — подібна оглядово-філософська стаття від Tim Bray. Починаючи з історії, автор далі розмірковує про деякі важливі для нього речі в тестуванні.
- TESTER IMPOSTER SYNDROME — чи є у вас синдром самозванця? Які особливості цього синдрому у тестувальників?
- What is software quality for a developer? — чи замислювались ви над тим, що значить якість для того девелопера, що сидить на сусідньому кріслі? (Плюс, тут дуже крута визуалізація різних форм якості коду)
- Mastermind — думка про AI та його вплив на тестування від Alan Page.
- Counterfeit Philosophers in Testing — стаття Jason Arbon — піонера тестування в AI. Тут він розмірковує про луддитів в світі тестування, що заперечують неминучий прогрес.
Підходи
- Що таке accessibility тестування? Якщо ви не знаєте або не до кінця розумієте, ділюся циклом статей на цю тему: part 1, part 2, part 3 та part 4.
- Shift Left Security, Security Unit Tests, OWASP Top 10, and AI: Key Practices for Secure Development — shift left підхід зараз модний. Ось вам приклад, як можна «шифтувати» тестування безпеки.
Інструменти
- 11 Tools Mobile Testers Have To Know — огляд інструментів для тестування мобільних застосунків.
- Trying Lighthouse — величезна та вкрай практична стаття про Lighthouse. Стане у нагоді, коли ви захочете вимірювати перфоманс вашого сайту.
- Chuck Norris Jokes API — API, яку можна використовувати, наприклад, для демо або презентацій на конференціях. Вона видає на запити — рандомні жарти про Чака Норріса.
- Superbacked — цікавий інструмент для того, щоб безпечно зберігати свої «холодні» паролі. Наприклад, від акаунтів в блокчейні.
- slides — маленька, але разом з тим корисна тулза, що дозволяє створювати слайди за допомогою Markdown та презентувати їх прямо в командному рядку.
- dappetter — ще одна бібліотека для автоматизації веб-застосунків, що працюють з криптогаманцями типу Metamask. Цього разу — на базі Puppeteer. (Його ще хтось використовує?)
Для SDET’ів
- Daily Coding Problem — якщо вам не вистачає практики програмування, на цьому сайті кожного дня викладають задачку, яку потрібно вирішити. Потім можна перевірити її зі зразком або замовити код рев’ю від авторів.
- How have you reduced automation execution times? — на форумі Reddit люди обговорюють різні підходи до того, як оптимізувати час на проходження автотестів.
- How the Miro Developer Platform leverages contract testing — практичний кейс роботи з контрактним тестуванням від компанії Miro.
- eBay and lastminute.com Adopt Contract Testing to Drive Architecture Evolution — оглядова стаття про те, як до контрактного тестування прийшли в ebay. Небагато інформації, але все шо є.
- Design Patterns for Test Automation Solutions: Part 2 -JavaScript/Typescript — продовження однієї з найкращих статей останнього часу про дизайн-патерни в автоматизації від Костянтина Телтова. Must-read, так само, як і перша частина.
- Browser Automation Tests with Cucumber and WebDriverJS — якщо вам потрібно почати писати автотести з «огірками» — то в цій статті можна побачити покрокове створення солюшену на JS.
- Testing in Machine Learning: A Comprehensive Guide with Examples from TensorFlow, PyTorch, Keras, scikit-learn, Hugging Face, and More-Part-1 of 3 — для тих, хто хотів побачити трохи тестування AI з реальними прикладами.
- Step-by-Step Guide: Migrating from Jest to Node.js Native Test Runner — як тільки-но Node.js релізнув нативний тестовий ранер — усі масово почали ним користуватись та нахвалювати. В цій статті можна почитати, як автор переходив на цей ранер з Jest.
- The Ultimate Guide to Performance Testing and Software Testing: Testing Types, Performance Testing Steps, Best Practices, and More — оглядова стаття про різні аспекти перфоманс-тестування. Тільки для початківців.
- Enhancing Test Reliability: Exploring Playwright’s Retry APIs for Robust Testing — практична стаття про те, як retry допомогає в UI-тестах. А чи допомагає насправді?
Лідерське
- Making Software Quality Visible — Mike Bland це відкриття цього місяця для мене. Працюючи в Google та Apple, він допомагав будувати культуру тестування. Частково він стояв за цим підходами, що висвітлювались в Google testing blog та книзі «How Google tests software». Крім цієї величезної статті про визуалізацію якості, рекомендую також ознайомитись з іншими його постами: Test Certified (програма сертифікації команд в Google), Testing Grouplet (невеличка команда, що змогла кардинально змінити підходи до тестування для тисяч інженерів) або Test Mercenaries (про підхід з використанням коучінгу у тестуванні).
- Steering the Ship: A Comprehensive Guide for Aspiring Test Leaders — величезна стаття про те, хто такі ліди в тестування та які скіли для цього важливо мати (або прокачати).
- Breaking Stereotypes: QA Takes the Wheel as a Mission Captain — досвід тестувальника, якого призначили лідити тестування та розробку частини продукту.
- Systems Thinking and the Cobra Effect — класний приклад того, як будь-які зміни на краще можуть обернутися на катастрофу. А про теорію змін можна почитати тут.
Розробка і технології
- Software 2.0 — AI зараз дуже гаряча тема. Але як AI впливає на саму розробку софта. В цій статті ви знайдете відповідь, яким буде робота розробника в світі, де правлять алгоритми.
- Falsehoods programmers believe about time — помилкових суджень в світі технологій дуже багато. Одне з таких — це час. Рекомендую почитати цю статтю усім, хто пише або перевіряє чужий код.
- On Being a Senior Engineer — практичні поради про те, як стати та бути справжнім senior-інженером.
- The Joel Test: 12 Steps to Better Code — стара стаття
20-річної сивої давнини про те, які процеси повинні бути у команді чи компанії, щоб бути сучасною та ефективною. Страшно подумати, але навіть 23 роки потому деякі команди не закривають усі 12 вимог. - IKEA-Oriented Development — як можна застосувати підходи з IKEA до світу розробки софту?
- How to Answer STAR Interview Questions — ринок зараз «гарячий». Тому для того, щоб вирізнитися поміж багатьох кандидатів, краще будувати відповідь про свій досвід у форматі STAR. Що це таке — дізнаєтеся у статті.
Теорія
- Relational Databases Explained — коротке нагадування про те, що таке реляційні бази даних та як вони працюють.
- Understanding database Indexes in PostgreSQL — крім базових SELECT’ів, не буде зайвим знати також навіщо існують індекси в базі даних.
- History and future of Infrastructure as Code — хороша стаття, щоб дослідити еволюцію інструментів для інфраструктури.
- System Design Interview Cheat Sheet — якщо у вас нема часу проходити курс на Educative або читати книжку — то ось вам зібрані основні концепції системного дизайну. Must-read усім, а особливо тестувальникам. Бо треба знайти, що ж тестуєте.
- Phrack: Twenty years of Escaping the Java Sandbox — огляд security багів у Java за останні 20 років.
- Rate Limiting Fundamentals — що таке rate limiting, нащо він потрібен у сучасних системах та які існують алгоритми обмеження швидкості?
- Network Protocols Run the Internet — для тих, хто хоче освіжити свою пам’ять перед співбесідою — огляд базових понять та протоколів в мережах.
- Everything You Always Wanted to Know About TCP But Too Afraid to Ask — а тут дуже ретельно розбирається, як працює протокол TCP.
- A beginner’s guide to database deadlock — що таке deadlock в базах даних та як він може виникнути.
- Developer experience: What is it and why should you care? — чому деякі компанії вкладають багато грошей у developer experience? Нащо це? Ця стаття допоможе зрозуміти причини.
Практичні кейси
- DORA Metrics: We’ve Been Using Them Wrong — виявляється, просто взяти та застовувати DORA метрики — це тільки початок.
- Investigating the impact of HTTP3 on network latency for search — кейс компанії Dropbox по застосуванню протоколу HTTP3 та його впливу на затримки в мережі.
- How To Be An Engineer That PMs Don’t Hate — практичні поради для інженерів, щоб ефективніше взаємодіяти з вашими PM’ами.
- How Much Memory Do You Need to Run 1 Million Concurrent Tasks? — порівняльне дослідження того, скільки пам’яті потрібно різним мовам програмування для запуску мільйона одночасних тасок.
- Real Multithreading is Coming to Python — Learn How You Can Use It Now —
скорореальний multithreading завітає й до Python’стів.
Відео
- Why Google Stores Billions of Lines of Code in a Single Repository — старенька доповідь про те, які масштаби були в Google років 10 тому. Уявіть, як все змінилося за ці роки!
- RICON 2014 Ines Sombra, Fastly Testing in a Distributed World — цікава доповідь про те, чому тестувати розподілені системи дуже непросто та як до такого тестування підходять в академічному та бізнес світах.
- «Simulation Testing» by Michael Nygard — цікавий підхід до розширення property-based тестування, коли девелопер визначає домен — а софт сам генерує тести та валідує систему.
- «Benchmarking: You’re Doing It Wrong» by Aysylu Greenberg — базова доповідь про те, як не зробити багато помилок при вимірюванні перфомансу.
Головне
В червні ми з Артемом Григоренком запустили свій власний подкаст про тестування — Testing Minutes. В цьому подкасті ми розмовляємо про різні концепції з тестування і технологій, коротко та без води. Така собі комбінація технічного та процесно-менеджерського контенту.
Якщо ви пропустили перші три епізоди — запрошуємо послухати на подкаст платформах або подивитись на YouTube.
Дуже чекаємо на ваші коменти та фідбек! Далі буде ще цікавіше!
Як завжди — більше цікавого про інженерію в тестуванні, блокчейн та розподілені системи читайте в моєму каналі.
3 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів