Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unit, Integration & UI Test Automation for Back...

Unit, Integration & UI Test Automation for Backend and Frontend Applications

Developer Summit 2020 Workshop Presentation

Mennan Köse

November 22, 2020
Tweet

More Decks by Mennan Köse

Other Decks in Programming

Transcript

  1. Unit, Integration & UI Test Automation for Backend and Frontend

    Applications Selçuk Ermaya CTO at MonoFor, Inc. 1 https://selcukermaya.com selcukermaya Mennan Köse Software Developer at MonoFor, Inc. https://mennan.dev mennankose
  2. Agenda • Unit Testing • Unit Test Best Practices •

    Data Mocking • Integration Testing • UI Automation Tests • Demo 3
  3. Unit Testing • Kodun en küçük biriminin test edilmesidir. •

    Ana amaç, sistemdeki problemleri belirlemek, analiz etmek ve düzeltmektir. 4
  4. Advantages of Unit Test • Hataların azaltılması • Testlerin otomasyonu

    • TDD gibi yaklaşımlarla kod tasarımının iyileştirilmesi • Birimlerin dokümantasyonun sağlanması • Hata ayıklamanın kolaylaşması 5
  5. Unit Test Tools • NUnit (.NET) • xUnit (.NET) •

    JUnit (Java) • Go Testing (Go) • Jest (JavaScript) • Mocha (JavaScript) • Jasmine (JavaScript) • Enzyme (JavaScript) 6
  6. Unit Testing Best Practices • Mutlaka tek bir işi test

    etmeli • Diğer test adımlarını etkilememeli • Okunabilir olmalı • Testler düzgün ve anlaşılır isimlendirilmeli • Business Logic olmamalı veya çok az olmalı • İhtiyaç duyulan kaynaklar mocklanmalı 7
  7. Data Mocking • Testlerin gerçeğe yakın verilerle çalışmasını sağlayarak kaynak

    bağımlılığı azaltılır. • Ana amaç her zaman birimi test etmektir, kaynağı değil. 8
  8. Integration Testing • Ayrı birimlerin bir grup olarak birleştirildiği ve

    test edildiği bir test türüdür. • Bu testin amacı birimler arasındaki iletişimin sağlıklı olup olmadığının anlamaktır. 10
  9. Integration Tests Best Practices • Unit testleriniz varsa unit testlerinden

    sonra çalıştırılmalıdır. • Birden fazla unit aynı anda test edildiğinden dolayı takibin kolay olması açısından logların düzgün yazılması önemlidir. • Test edilen birimlerin ihtiyaç duydukları kaynaklar farklı şekillerde mocklanarak birimlerin uyumlu çalışıp çalışmadığı test edilmelidir. 11
  10. UI Automation Testing • Kullanıcının arayüz üzerinde yapabileceği/yapamayacağı aksiyonların otomatik

    olarak test edilmesidir. • Bu testin amacı kullanıcı etkileşimlerinin doğru çalışıp çalışmadığının test edilmesidir. 12