Pracownik naukowy na Wydziale Matematyki i Informatyki Uniwersytetu Jagiellońskiego, kierownik Zakładu Inżynierii Oprogramowania. Jego zainteresowania naukowe to przede wszystkim: techniki projektowania testów, pomiar oprogramowania, optymalizacja testowania, testowanie mutacyjne, testowanie oparte na modelu, modele predykcji defektów.
Autor wielu prac naukowych dotyczących testowania oraz sztucznej inteligencji, a także monografii: „Testowanie i jakość oprogramowania. Modele, techniki, narzędzia” (PWN 2015, 2018), „A Study Guide to the ISTQB Foundation Level 2018 Syllabus. Test Techniques and Sample Mock Exams” (Springer2018), „Thinking-Driven Testing” (Springer 2018), „Certyfikowany tester ISTQB Poziom podstawowy. Podręcznik do samodzielnej nauki” (Helion, 2020, współautor Lucjan Stapp).
Mówca na wielu krajowych i międzynarodowych konferencjach testerskich, m.in. EuroSTAR, Testwarez, TestingCup. W ramach Polskiego Komitetu Normalizacyjnego współpracował nad międzynarodową normą ISO 29119 – Software Testing Standard. Członek Stowarzyszenia Jakości Systemów Informatycznych, współtwórca sylabusów ISTQB (m.in. Test Analyst oraz Technical Test Analyst) oraz pytań egzaminacyjnych ISTQB. Członek grupy roboczej ISTQB Glossary Working Group odpowiedzialnej za tworzenie i utrzymanie słownika wyrażeń związanych z testowaniem oprogramowania.
Wieloletni wykładowca oraz trener szkoleń związanych z testowaniem i jakością oprogramowania. Certyfikowany tester (ISTQB Full Advanced, ISTQB Agile Tester) oraz certyfikowany inżynier jakości oprogramowania (ASQ Certified Software Quality Engineer). W testowaniu zwolennik myślenia krytycznego, racjonalnego i systemowego.
Jego hobby to: filozofia (wczesny Wittgenstein, filozofia analityczna), trenowanie kolarstwa szosowego, gra na fortepianie oraz język włoski.