Sadece bu test seviyelerine neden sahip olduğumuza, örneklerle gerçekte ne anlama geldiklerine biraz daha bağlam eklemek ve vermek istedim.
Mike Cohn, “Agile ile Başarılı Olmak” adlı kitabında, projelerde otomatik testlere yaklaşmanın bir yolu olarak “Test Piramidi” ni buldu. Bu modelin çeşitli yorumları vardır. Model, ne tür otomatik testlerin oluşturulması gerektiğini, test edilen uygulama hakkında ne kadar hızlı geri bildirim verebileceklerini ve bu testleri kimin yazdığını açıklar. Temel olarak herhangi bir proje için 3 seviye otomatik test gereklidir ve bunlar aşağıdaki gibidir.
Birim Testleri -
Bunlar, yazılım uygulamanızın en küçük bileşenini test eder. Bu, kelimenin tam anlamıyla bazı girdilere dayalı bir değeri hesaplayan bir kodda bir işlev olabilir. Bu işlev, uygulamayı oluşturan donanım / yazılım kod tabanının diğer birçok işlevinin bir parçasıdır.
Örneğin - Web tabanlı bir hesap makinesi uygulaması alalım. Bu uygulamanın birim test edilmesi gereken en küçük bileşenleri toplama yapan bir işlev, çıkarma yapan bir işlev olabilir. Bütün bu küçük fonksiyonlar bir araya getirilerek hesap makinesi uygulamasını oluşturur.
Tarihsel olarak geliştirici bu testleri genellikle yazılım uygulamasıyla aynı programlama dilinde yazıldığından yazar. JUnit ve NUnit (java için), MSTest (C # ve .NET için) ve Jasmine / Mocha (JavaScript için) gibi birim test çerçeveleri bu amaçla kullanılır.
Birim testlerinin en büyük avantajı, kullanıcı arayüzünün altında gerçekten hızlı çalışması ve uygulama hakkında hızlı geri bildirim alabilmemizdir. Bu, otomatik testlerinizin% 50'sinden fazlasını içermelidir.
API / Entegrasyon Testleri -
Bunlar, yazılım sisteminin çeşitli bileşenlerini birlikte test eder. Bileşenler, test veritabanlarını, API'leri (Uygulama Programlama Arayüzü), 3. taraf araçlarını ve uygulamalarını içerebilir.
Örneğin - Yukarıdaki hesap makinesi örneğimizde, web uygulaması değerleri depolamak için bir veritabanı kullanabilir, bazı sunucu tarafı doğrulamaları yapmak için API'leri kullanabilir ve sonuçları farklı yerlerde kullanılabilir hale getirmek için buluta yayınlamak için 3. taraf bir araç / hizmet kullanabilir platformlar.
Tarihsel olarak bir geliştirici veya teknik KG bu testleri Postman, SoapUI, JMeter ve Testim gibi diğer araçları kullanarak yazacaktır.
Bunlar, hala kaputun altında çalıştıkları için UI testlerinden çok daha hızlı çalışırlar, ancak sistemin çeşitli bağımsız bileşenleri arasındaki iletişimi kontrol etmek ve sorunsuz entegrasyona sahip olduklarından emin olmak zorunda olduğu için birim testlerinden biraz daha fazla zaman harcayabilirler. Bu, otomatik testlerin% 30'undan fazlasını içermelidir.
UI Testleri -
Son olarak, uygulamanın kullanıcı arayüzünü doğrulayan testlerimiz var. Bu testler genellikle uygulama boyunca uçtan uca akışları test etmek için yazılır.
Örneğin - Hesap makinesi uygulamasında, tarayıcıyı açmak için bir uçtan uca akış olabilir-> Hesap makinesi uygulaması url'sini girme -> Kullanıcı adı / şifre ile giriş yapma -> Hesap makinesi uygulamasını açma -> Hesap makinesinde bazı işlemler yapma -> bu sonuçları kullanıcı arayüzünden doğrulama -> Uygulama oturumunu kapatma. Bu, UI otomasyonu için iyi bir aday olabilecek bir uçtan uca akış olabilir.
Tarihsel olarak, teknik KG'ler veya manuel testçiler kullanıcı arayüzü testleri yazmaktadır. Testleri yazmak, yürütmek ve sürdürmek için Selenium gibi açık kaynaklı çerçeveler veya Testim gibi UI test platformları kullanırlar. Bu testlerin nasıl çalıştığını, ekran görüntüleri, günlükler, test raporları aracılığıyla beklenen ve gerçek sonuçlar arasındaki farkı görebileceğiniz için bu testler daha görsel geri bildirim sağlar.
UI testlerinin en büyük sınırlaması, Birim ve API seviyesi testlerine kıyasla nispeten yavaş olmasıdır. Bu nedenle, toplam otomatik testlerin sadece% 10-20'sini içermelidir.
Sonraki iki test türü projenize bağlı olarak değişebilir ancak fikir,
Duman Testleri
Bu, yukarıdaki 3 test seviyesinin bir kombinasyonu olabilir. Fikir, her kod kontrolü sırasında çalıştırmak ve sistemin kritik işlevlerinin beklendiği gibi çalıştığından emin olmaktır; yeni kod değişiklikleri birleştirildikten sonra. Arızalarla ilgili daha hızlı geri bildirim almak için genellikle 5-10 dakika koşmaları gerekir
Regresyon Testleri
Genellikle günde en az bir kez çalıştırılır ve sistemin çeşitli işlevlerini kapsar. Uygulamanın beklendiği gibi çalışmasını sağlarlar. Duman testlerinden daha fazla detaydır ve kritik olmayanlar da dahil olmak üzere uygulamanın daha fazla senaryosunu kapsar.