automated regression testing
Bu eğitimde Otomatik Regresyon Testinin Zorlukları açıklanmaktadır. Regresyon Testini Otomatikleştirme Süreci ve Adımları hakkında da bilgi edineceğiz:
Regresyon testi senaryolarını tanımlamaktan başlayarak, otomasyonu yapmak için bir araç seçmekten, maliyet, zaman ve çaba analizi yapmaktan, komut dosyaları yazmaktan ve son olarak test senaryolarını yürütebilmeleri için manuel test ekibine teslim etmekten başlayarak nasıl otomatikleştireceğimizi öğreneceğiz. her zaman her yerden.
Neden sadece regresyon test setinin olduğunu merak ediyorsanız, bunun nedeni regresyon test setinin, tekrarlayan ve zaman alan test senaryoları seti olduğu için otomasyon için en önemli aday olmasıdır. Böylece, onları otomatikleştirmek gerçekten de size çok fazla kaynak kazandırır ve daha az zaman alır.
Regresyon testi durumları hakkında hızlı raporlar alırsınız ve bu adımları diğer test paketlerini otomatikleştirmek için de kullanabilirsiniz.
=> Tam Regresyon Testi Serisi İçin Buraya Tıklayın.
Ne öğreneceksin:
- Otomatik Regresyon Testi
- Otomatik Test: Çevik Ortamdaki Zorluklar
- Regresyon Testini Otomatikleştirmek İçin Adımlar
- Sonuç
Otomatik Regresyon Testi
Son zamanlarda, yeni Otomatik Test Projeme dört kaynakla başlamak istediğimde, Agile metodolojilerinden herhangi birini uygulamayı düşündüm. Ama devam edemedim çünkü kafamda bir dizi soru ortaya çıktı.
Sorular gibiydi:
- Otomatik Testte Çevik metodolojileri kullanmak mümkün müdür?
- Geleneksel araçları kullanabilir miyim?
- Açık kaynak araçlara gitmem gerekir mi?
- Çevik Ortamda otomasyon uyguluyorsam karşılaşmam gereken zorluklar nelerdir?
Bu makalede, Otomasyonu Çevik metodolojilerle uygularken karşılaştığımız bazı zorlukları analiz edelim. Çevik ortamda Otomatik Regresyon Testi, kaotik, yapılandırılmamış ve kontrolsüz olma riski taşır.
Çevik Projeler, Otomasyon ekibine kendi zorluklarını sunar. Çevik metodoloji, ekip işbirliğine ve bir ürünün sık sık teslimine vurgu yapar. Belirsiz proje kapsamı, Çoklu yinelemeler, Minimum dokümantasyon, erken ve sık Otomasyon ihtiyaçları ve aktif paydaş katılımı gibi faktörler, Otomasyon Ekibinden birçok zorluk gerektirir.
Otomatik Test: Çevik Ortamdaki Zorluklar
Otomasyon ekibinin karşılaştığı birkaç Çevik zorluk vardır. Ancak, bir bunlardan birkaçı aşağıda özetlenmiştir.
1. Zorluk:Gereksinim Aşaması
Test Otomasyon geliştiricisi, müşteri ile ilgili işlevselliğin kısa açıklamaları olan 'kullanıcı hikayeleri' şeklinde gereksinimleri yakalar.
Her gereksinime aşağıdaki şekilde öncelik verilmelidir:
Yüksek: Bunlar, ilk sürümde kesinlikle yapılması gereken görev açısından kritik gereksinimlerdir
Orta: Bunlar önemli olan gereksinimlerdir, ancak uygulanana kadar üzerinde çalışılabilir.
Düşük: Bunlar, olması hoş olan ancak yazılımın çalışması için kritik olmayan gereksinimlerdir.
Öncelikler belirlendikten sonra, sürüm 'yinelemeleri' planlanır. Normalde, her Agile sürüm yinelemesinin teslim edilmesi 1 ila 3 ay sürer. Müşteri / yazılım çalışanları, gereksinimlerde çok fazla değişiklik yapma özgürlüğüne sahiptir. Bazen bu değişiklikler o kadar uçucudur ki yinelemeler ortadan kalkar. Bu değişiklikler, Çevik Otomasyon test sürecinin uygulanmasında daha büyük zorluklardır.
Windows 10 için en iyi sistem bakım yazılımı
2. Zorluk:Doğru Araçları Seçme
Kayıt ve oynatma özelliklerine sahip geleneksel, son test araçları, ekipleri yazılım bitene kadar beklemeye zorlar. Dahası, geleneksel test otomasyon araçları Agile bağlamında işe yaramaz çünkü Çevik Otomasyon ekiplerinin karşılaştığı zorluklardan farklı olan geleneksel sorunları çözerler.
Çevik bir projenin ilk aşamalarındaki otomasyon genellikle çok zordur, ancak sistem büyüdükçe ve geliştikçe bazı yönler yerleşir ve otomasyonu dağıtmak uygun hale gelir. Dolayısıyla, Agile'ın verimlilik ve kalite avantajlarından yararlanmak için test araçlarının seçimi kritik hale geliyor.
Zorluk 3:Komut Dosyası Geliştirme Aşaması
Otomasyon test uzmanları, geliştiriciler, iş analistleri ve proje paydaşları, bir sonraki sprint için 'Kullanıcı Hikayelerinin' seçildiği başlangıç toplantılarına hep birlikte katkıda bulunur. Sprint için 'Kullanıcı Hikayeleri' seçildikten sonra, bir dizi test için temel olarak kullanılırlar.
İşlevsellik her yinelemede büyüdükçe, mevcut işlevselliğin her yineleme döngüsünde yeni işlevin tanıtılmasından etkilenmediğinden emin olmak için Regresyon Testi gerçekleştirilmelidir. Regresyon Testinin ölçeği her sprint ile birlikte büyür ve bunun yönetilebilir bir görev olarak kalmasını sağlar ve test ekibi regresyon paketi için test otomasyonunu kullanır.
4. Zorluk:Kaynak yönetimi
Çevik yaklaşım, test becerilerinin bir karışımını gerektirir; yani, net olmayan senaryoları ve test durumlarını tanımlamak için test kaynaklarına ihtiyaç duyulacaktır. Manuel Test geliştiricilerin yanında otomatik regresyon testleri yazın ve otomatik regresyon paketlerini yürütün.
Proje ilerledikçe, entegrasyon ve Performans Testini içerebilecek diğer test alanlarını da kapsayacak uzmanlık becerileri gerekecektir.
Gereksinimleri planlayan ve toplayan uygun bir alan uzmanları karışımı olmalıdır. Kaynak yönetiminin zor kısmı, birden fazla beceriye sahip test kaynaklarını bulmak ve bunları tahsis etmektir.
Zorluk 5:İletişim
Arasında iyi bir iletişim olmalıdır Otomasyon Testi ekip, geliştiriciler, iş analistleri ve paydaşlar. Müşteri ve teslimat ekipleri arasında oldukça işbirliğine dayalı bir etkileşim olmalıdır. Daha fazla müşteri katılımı, müşteriden daha fazla öneri veya değişiklik anlamına gelir. Ve iletişim için daha fazla bant genişliği anlamına gelir.
Temel zorluk, sürecin tüm değişiklikleri yakalayabilmesi ve etkili bir şekilde uygulayabilmesi ve veri bütünlüğünün muhafaza edilmesi gerektiğidir. Geleneksel testlerde geliştiriciler ve test uzmanları petrol ve su gibidir, ancak çevik bir ortamda zorlu görev, hedefe ulaşmak için ikisinin birlikte çalışması gerektiğidir.
6. Zorluk:Günlük Scrum Toplantısı
Günlük Scrum Toplantısı, Çevik Süreçteki temel aktivitelerden biridir. Takımlar 15 dakikalık stand up seansları için bir araya gelir. Bu toplantıların etkinliği nedir? Bu toplantılar Otomasyon uygulaması Geliştiricilere ne ölçüde yardımcı oluyor? vb., bu toplantıda tartışılmaktadır.
7. Zorluk:Yayın Aşaması
Agile projesinin amacı, temel bir çalışan ürünü mümkün olan en kısa sürede sunmak ve ardından sürekli bir iyileştirme sürecinden geçmektir. Bu, bir ürün için tek bir sürüm aşaması olmadığı anlamına gelir. Zor kısım, ürünün entegrasyon testi ve kabul testinde yatmaktadır.
Regresyon Testini Otomatikleştirmek İçin Adımlar
Regresyonu otomatikleştirmek için izlenecek süreç tam olarak aşağıdaki adımlara bölünebilir:

Bu 7 adım, kolay anlaşılmanız için aşağıda basit terimlerle ayrıntılı olarak açıklanmıştır.
1. Kimlik

# 1) Tanımlayın test durumları bu, regresyon test paketinin bir parçası olmalıdır.
- Regresyon testi senaryolarını otomatikleştirmeye başlamak için yapmanız gereken ilk şey, regresyon testi senaryolarının tanımlanması ve tüm adımlar, veriler ve önkoşullarla doğru şekilde tanımlanmasıdır.
- Etkili bir regresyon testi paketiniz olduğundan emin olmak için şunları eklemeyi unutmayın:
- Tekrarlayan kusurları olan test durumları.
- Uçtan uca senaryoları kapsayan test senaryoları.
- Son kullanıcılar için daha görünür olan test durumları.
- Sınır değerlerinde test durumları.
- Pozitif ve negatif test durumlarının iyi karışımı.
- Karmaşık test durumları.
#iki) Tanımlayın otomasyon araçları gereksinimleriniz ve uygulama davranışınız için en iyisi. Regresyon testi senaryoları belirlendikten ve otomasyona hazır olduktan sonra, test senaryolarınıza en iyi uyan araçları belirleyin.
Araçları belirlemenin en iyi yolu, araçlarla ve gereksinimlerinizle bir matris oluşturmak ve ardından hangi aracın hangi gereksinimleri karşıladığını takip etmektir.
Önerilen Okuma => En İyi Otomasyon Test Araçlarının Listesi
# 3) Tanımlayın Programlama dili kullanmak istediğiniz. Piyasada bulunan bu kadar çok araçla, birden çok dil bu araçlar tarafından desteklenmektedir. Bu nedenle, otomasyon test durumlarınızı yazmak istediğiniz programlama dilini belirlemeniz önemlidir.
Misal :Tarayıcı tabanlı bir uygulama için bir regresyon testi takımını otomatikleştirmek istediğimiz bir projemiz olduğunu varsayalım.
Yukarıda açıklandığı gibi, Test senaryolarını belirleyeceğiz.
- Test durumumuzun 'Bir kullanıcının geçerli bir kullanıcı adı ve şifre kullanarak başarıyla giriş yapabildiğini doğrulayın' olduğunu varsayalım.
Sonra, Otomasyon Araçlarını tanımlayacağız.
- Tarayıcı tabanlı bir test senaryosu, ' Selenyum ',' Ranorex ',' TestComplete '. Gereksinimlere en iyi uyan Selenium aracına karar verelim.
Şimdi bir Programlama dili belirleyelim.
- Kullanmak istiyoruz ' Java 'Yüksek oranda desteklenen bir dil olarak programlama dili olarak.
2. Analiz

# 1) Yapmak Maliyet analizi. Bütçe sınırları dahilinde çalışmak çok önemlidir. Böylece, tanımlama aşamasından sonra, kaç test senaryosunun otomatikleştirilmesi gerektiği ve hangilerinin kullanılabilecek olası araçlar olduğuna dair bir fikriniz olacak.
Tanımlama aşamasından elde edilen tüm bulgular, yaklaşık bir bütçe belirlemenize yardımcı olacak ve böylece gerekirse herhangi bir onay vb.
#iki) Yapmak kaynak ve çaba üzerinde çalışacak kaynaklara sahip olup olmadığınızı görmek için analiz edin. Maliyet analizi ile birlikte, kaynakların daha iyi tahsisi ve projedeki zamanlarının verimli kullanılması için kaynak ve emek analizi yapmak çok önemlidir.
Kaynakları ve çabaları tahmin ederken, birinin hastalanması veya bazı test vakalarının uygulama için daha fazla kaynağa ihtiyaç duyması gibi riskleri hesaba kattığınızdan emin olun.
# 3) Yapmak Zaman Analiz. Otomasyon projesini bütçe ve zaman çizelgeleri dahilinde bitirebileceğinizden emin olmak için zaman analizi gereklidir. Zaman analizi üzerinde çalışırken, geliştirme sırasındaki ilerlemeyi izlemek için bir zaman çizelgesi çizelgesi hazırlamak faydalı olacaktır.
Projenin daha iyi bir zaman çizelgesi analizi için:
- Projelerinizdeki görevleri ve alt görevleri tanımlayın.
- Görevlere ve alt görevlere öncelik verin.
- Zaman çizelgesinin daha iyi resimlenmesi için bir Gantt şeması veya ağ şeması çizin.
Misal :Örneğimizle ileriye dönük olarak, tanımlama aşamasından yola çıkarak, bu aşama için açıklama aşağıda verilmiştir:
Maliyet analizi:
Bu proje için yaklaşık maliyetin X $ tutarında olduğunu varsayalım.
Kaynak ve Çaba:
Bunun için, bir test vakasının uçtan uca otomatikleştirilmesi gerekiyor ve yaklaşık 24 saat boyunca tam zamanlı bir kaynağa ihtiyacımız var ve ayrıca çalışmayı gözden geçirmek için bir kaynağa daha ihtiyacımız var. Bu nedenle, 2 kaynağa ihtiyacımız var ve efor tahmini 40 saat civarındadır.
Zaman Analizi:
Bunun için, zaman çizelgesini görmek üzere küçük bir Gantt grafiği çizelim.

3. Eğitim / İşe Alma
# 1) Bazı kaynaklar gerektiriyorsa Eğitim ve eğitimlerini planlayın. Bazen, otomasyon test senaryoları yazmakla ilgilenen bazı manuel test kaynaklarına sahip olabilirsiniz veya bazıları otomasyon üzerinde ancak farklı araçlar üzerinde çalıştı ve otomasyonunuz için seçtiğiniz aracı öğrenmeye istekli olabilir.
Bu durumda, bu kaynakları belirleyin ve regresyon testi durumlarının otomasyonu üzerinde çalışmaya başlayabilmeleri için eğitimlerini planlayın.
#iki) Daha fazla kaynağa ihtiyacımız olursa, işe alıyor plan. Çalışmalar için kaynak analizini yaptığınızda ve mevcut kaynaklarla ihtiyaçları karşılayamıyorsanız, bütçe dahilinde proje için gerekli olan uygun becerilere sahip bazı yeni kaynakları işe almayı planlayın.
Misal:
Diyelim ki Java kavramlarına aşina olan ve Selenium öğrenmek isteyen bir kaynağımız var. Sonra o kişi için selenyum eğitimi ayarlayacağız.
Otomasyon için herhangi bir kaynağımız yoksa. Ardından, selenyum ve java kullanarak bu tür test senaryolarını otomatikleştirme konusunda geçmişe sahip bir kişiyi işe alacağız.
4. Çerçeve ve Yönergeler
# 1) Araç ve kaynaklar hazır olduktan sonra, bir çerçeve veya mevcut çerçevelerden hangisinin kullanılacağına karar vermek. Birden fazla önceden oluşturulmuş çerçeve kullanılabilir veya çerçevenizi sıfırdan oluşturabilirsiniz.
Bir çerçeve seçerken veya oluştururken, test senaryoları, günlükler, raporlar, girdi, veritabanı bağlantısı vb. İle ilgili bileşenleri dahil ettiğinizden emin olun.
#iki) Diğerine karar ver destekleyici araçlar kullanmak istediğiniz. Otomasyon komut dosyası geliştirmek, kod yazmayı içeren bir geliştirme görevi olduğundan, komut dosyalarınızı yazmayı desteklemek için ihtiyaç duyulacak diğer geliştirme araçlarını bulmak çok daha iyi olacaktır.
Örneğin , Yardımcı olabilecek bazı araçlar arasında git, GitHub, Jenkins vb. Yer alır.
# 3) Anahat yönergeler otomasyon betikleri yazmak için. Proje üzerinde çalışan tüm kaynakların senkronize olması ve aynı adlandırma kurallarını, kod giriş / çıkış için aynı prosedürleri ve aynı programlama dilini kullanması için kılavuzların ana hatlarını çizmek gerekir.
en iyi ses değiştirici nedir
Misal:
Çerçeve: Karar verelim BDD Otomasyon testi için (davranış odaklı geliştirme) çerçevesi.
Destekleyici araçlar: Otomasyonu tam olarak desteklememiz için ihtiyacımız olan araçlar GitHub, Jenkins, Log4J, Cucumber ve JUnit olacaktır.
5. Otomasyon Komut Dosyaları
Otomasyon komut dosyaları yazmaya başlayın. Otomatikleştirilmesi gereken araç, programlama dili, gerekli beceriler ve test senaryoları gibi her şeye sahip olduğumuzda, otomasyon betikleri yazmaya başlayabiliriz.
Komut dosyaları yazarken şunlardan emin olmalıyız:
- Yönergeler takip edilir.
- Araçları kullanıyoruz.
- Test durumları modülerleştirilmiştir.
- Birden fazla test durumunda gerekliyse bileşenleri yeniden kullanabilmeliyiz.
Ayrıca, kodun sürüm kontrol aracında düzgün bir şekilde tutulduğundan ve tüm ekip üyelerinin kolayca işbirliği yapabildiğinden emin olmalıyız.
Misal:
Bu test senaryosunu çalıştırmak için gerçek komut dosyaları yazalım. Komut dosyalarından örnek aşağıdaki gibi gösterilebilir.
İlk olarak, bu test senaryosu için salatalık senaryosu aşağıdaki gibi görünecektir:
Özellik: Giriş işlevini doğrulayın
Kullanıcı olarak uygulamaya giriş yapmak istiyorum
Senaryo Özeti: Uygulamaya giriş yapın
Başvuruyu açtığım için
'' Kullanıcı adını girdiğimde
Ve '' şifresini giriyorum
Ve Giriş düğmesine tıklıyorum
Sonra Ana sayfaya giderim
Örnekler:
| kullanıcı adı | şifre |
| testuser1 | şifre1 |
| testuser2 | şifre2 |
Özellik dosyasından sonra, özellik dosyasında bahsedilen adımlar için adım tanımını uygulayacağız.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }Sonunda, oturum açma işlevselliği sınıfının gerçek uygulaması aşağıdaki gibi görünecektir:
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }6. Gözden geçirin

(resim kaynak )
# 1) Kod incelemesi: Bir otomasyon geliştiricisi, otomasyon komut dosyaları yazmayı tamamladıktan sonra, farklı kod inceleme düzeylerinden geçmek çok önemlidir.
Kod incelemeleri yardımı
- Yanlış doğrulamaların belirlenmesi.
- Kod optimizasyon noktalarını bulma.
- Kaynakların verimli kullanımı için işlevselliği uygulamanın daha iyi yollarını bulmak.
Kod incelemeleri ayrıca bir geliştiricinin çalışmasını diğer geliştiricilere gösterir ve ona farklı bir bakış açısı ve iyileştirme alanı sağlar.
# 2) Test vakalarının incelenmesi: Kod incelemesinin yanı sıra, test senaryosu incelemesi de çok önemlidir. Otomasyon test komut dosyalarının yürütüldüğünde manuel test senaryolarından beklediğimizle aynı eylemleri ve doğrulamaları gerçekleştirdiğinden emin olmalıyız.
Bu nedenle, otomasyon test senaryolarının iş analistleri veya test uzmanları ile incelenmesi, bu test senaryolarının otomasyon testine duyulan güvenin artırılmasına yardımcı olur.
Misal:
Örneğimiz için, kod incelemesi için 'ad yerine kimliğe göre öğe ara' gibi yorumlar aldığımızı varsayalım. Burada bunu hesaba katacağız ve komut dosyamızı buna göre değiştireceğiz.
Ayrıca, başarılı bir oturum açtıktan sonra ana sayfadaysanız, test için adımlar eklemek için bir test incelemesi yapılabilir. Sonra bunu senaryomuza da eklerdik.
7. Teslim Et
Test durumlarını teslim edin, böylece herkes her an çalıştırabilir. Otomasyon komut dosyaları kullanıma hazır olduğunda, otomasyon komut dosyaları için bir teslim planı hazırlamak çok önemlidir.
Bu plan, test senaryolarının otomatikleştirilmesinin belirli bir kişi veya beceriyle yürütülmesini sınırlamadığından emin olmak istediğimiz için gereklidir. Takımdaki veya projedeki herkesin test senaryolarını yürütmesine izin verilmelidir.
Olası teslimat planlarından biri, otomatik test durumlarını yürütmek için tetiklenebilecek bir Jenkins işi sağlamaktır.
Misal:
Bizim durumumuzda, test senaryosunu bir Jenkins işi kullanarak sunduğumuzu varsayalım. Bu Jenkins işi, kodu GitHub'dan alır, onu oluşturur ve test durumlarını farklı bir makinede çalıştırır.
İş başarılı olduğunda, size oluşturulan test raporunu gösterir. Jenkins'e erişimi olan herkes bu işi çalıştırabilir. Ayrıca, bu iş belirli bir zamanda çalışacak şekilde planlanabilir.
Sonuç
Bu zorlukları iyi optimize edilmiş bir şekilde karşılayabilirsek, Çevik ortamda Otomatik Regresyon Testi, Kalite Güvencesi'nin Agile süreçlerinin liderliğini üstlenmesi için mükemmel bir fırsattır. Kullanıcılar ve geliştiriciler arasındaki boşluğu kapatmak, neyin gerekli olduğunu, nasıl başarılabileceğini ve dağıtımdan önce nasıl garanti edilebileceğini anlamak için daha iyi yerleştirilmiştir.
Otomasyon uygulamasının hem sonuca hem de tüm gelişen sistemin iş hedeflerini karşıladığından ve amaca uygun olduğundan emin olmaya devam etmesi için kazanılmış bir çıkarı olmalıdır.
Bir regresyon testi senaryosunu otomatikleştirmek, başlangıç için en iyi aday olduğu için her zaman faydalıdır otomasyon testi . Sadece regresyonu değil, herhangi bir test paketini otomatikleştirmek için yukarıda bahsedilen adımları takip edebilirsiniz.
Otomasyon testi de çok yararlı ve uygun maliyetli ve otomasyon testine yapılan zaman yatırımı yalnızca komut dosyaları yazmak ve bunları korumak içindir. Bu nedenle, başarılı bir proje için otomasyon testinin uygun şekilde planlanması ve programlanması gerekir.
Yazar hakkında: J.B. Rajkumar, hem Akademi hem de Yazılım Testlerinde 15 yıldan fazla deneyime sahiptir. Kurumsal Eğitmen, Test Lideri, Kalite Güvence Müdürü ve Kalite Kontrol Müdürü olarak çalıştı.
Bu makale ile ilgili yorumlarınızı / önerilerinizi bize bildirin.
=> Tam Regresyon Testi Serisi İçin Burayı Ziyaret Edin.
Önerilen Kaynaklar
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Primer e-Kitap İndirmeyi Test Etme
- Çevik Sürece Başarılı Geçiş için Çevik Test Zihniyetini Geliştirmeye Doğru 4 Adım
- Manuel ve Otomasyon Testi Zorlukları
- Örnekle Yeniden Test Etme ve Regresyon Testi Arasındaki Fark
- 5 Mobil Test Zorlukları ve Çözümleri
- SaaS Testi: Zorluklar, Araçlar ve Test Yaklaşımı
- 2021'de En Popüler 10 Regresyon Testi Aracı