Otomatik ve Manuel Test: Artıları, Eksileri ve Hangisi Daha İyi
Yayınlanan: 2021-10-05Test, yazılım geliştirmenin yeri doldurulamaz bir parçasıdır. Kalite testi, RiskIQ'ya göre şu anda şirketlere dakikası 25 dolara mal olan güvenlik ihlalleriyle savaşmaya yardımcı oluyor.
Çevik metodolojilerde test etme, geliştirmenin hemen başında başlayan sürekli bir süreçtir. Günümüzde testler manuel veya otomatik olarak yapılabilmektedir. Manuel test ve otomatik test ikilemine bakalım. Otomasyon testinin manuel teste ve tam tersi avantajlarını öğrenecek ve hangi test yaklaşımının nerede kullanılacağı konusunda tavsiyeler alacaksınız.
İçindekiler:
- Manuel test ve otomasyon testi arasındaki fark
- Otomasyon testinin faydaları
- Otomatik testin eksiklikleri
- Manuel testin faydaları
- Manuel testin eksiklikleri
- Manuel test ile otomatik test karşılaştırması
- Manuel testi nerede kullanmalısınız?
- Otomatik testi nerede kullanmalısınız?
Manuel test ile otomasyon testi arasındaki fark nedir?
Manuel test, gereksinimlere dayalı test senaryoları aracılığıyla yazılımı çalıştıran bir kalite güvence (QA) uzmanı tarafından doğrudan gerçekleştirilir. KG'ler her seferinde bir senaryoyu test eder.
Otomatik testte, test senaryoları, genellikle birden fazla senaryonun aynı anda test edilmesini sağlayan yazılım tarafından çalıştırılır. Ancak, otomatik testin çalışması için test senaryolarının bir otomasyon kalite güvence uzmanı tarafından hazırlanması gerekir, bu nedenle otomatik test, insan müdahalesinden muaf değildir. Otomatik testi etkinleştirmek için bir QA, komut dosyalarını kendi seçtikleri bir programlama dilinde (genellikle Python, C# veya Java) yazar . Bu komut dosyaları daha sonra TestComplete, Selenium veya Appium gibi araçlar kullanılarak başlatılır. Yazılım, testleri bir insandan daha hızlı çalıştırır ancak çalışması için bir insana ihtiyaç duyar.
Son olarak, tüm testler yazılım tarafından çalıştırılamaz.
Otomasyon testinin faydaları

Neden ilk etapta her şeyi otomatikleştirmeye çalışıyoruz? Çünkü (a) daha eğlenceli ve daha önemli şeyler yapmak için zamanımızı serbest bırakır ve (b) hedeflerimize daha hızlı ulaşmamızı sağlar. Bu, yazılım geliştirme için de geçerlidir. Ancak, yazılım test otomasyonu için daha fazlası var.
Otomasyon, aksi halde zaman alan görevlerde zaman kazandırır
Yazılımın test edilmesi çok zaman alabilir ve genellikle tekrarlayıcıdır - örneğin, bir uygulamanın kendisinde veya işletim sisteminde yapılan bir güncellemeden sonra olması gerektiği gibi çalışıp çalışmadığını kontrol ederken. Hem iOS hem de Android sık sık güncellenir ve bazen bu güncellemeler uygulamalardaki özellikleri etkiler. Bir güncelleme uygulamanızın kullandığı özellikleri etkiliyorsa, uygulamanızın işletim sisteminin en son sürümüyle düzgün çalıştığından emin olmak için bu özellikleri test etmeniz gerekir .
Bu tür tekrarlayan görevler elbette manuel olarak yapılabilir, ancak QA'lardan çok zaman alırlar. Bunun yerine, QA, yeni özellikleri test etmeye çalışırken QA, bu tekrarlayan testleri otomatik olarak çalıştırmak için algoritmalar oluşturabilir. Bir komut dosyası, testleri bir kişiden beş kata kadar daha hızlı çalıştırabilir ve QA, otomatik olmayan bazı görevleri tamamlayacak veya aynı anda daha fazla komut dosyası yazacaktır.
Ayrıca, otomatik testler 7/24 çalışabilirken , manuel test uzmanları genellikle haftada beş gün, günde sekiz saat geleneksel olarak çalışır.
Örnek: Bir özellik, uygulama veya işletim sisteminde yapılan her güncellemeden sonra regresyon testleri tekrarlanır. Bu testler, güncellemenin özellikler arasında bir hata veya çakışma oluşturup oluşturmadığını kontrol eder. Bir KG'nin bu testleri her güncellemeden sonra manuel olarak çalıştırması ve yeniden çalıştırması çok zaman alır.
Bir KG otomasyon uzmanı, bir kez bir test komut dosyası yazabilir ve testleri gerektiği kadar çalıştırabilir. Bu testler çalışırken, manuel ve otomasyon QA'larınız diğer özellikleri test etmekle meşgul olabilir.
Otomasyon, insan hatasıyla mücadeleye yardımcı olabilir
İnsanlar hata yapabilir ve bazı şeyleri kaçırabilir. Makineler doğru programlandığında hata yapmazlar. Ve test kodunda veya yürütülmesinde bir hata olduğunda , testin başarısız olacağını anında anlayacaksınız . Otomatik testte "beklendiği gibi çalışıyor" diye bir şey yoktur - ya çalışır ya da çalışmaz.
Örnek: Zaman veya uzman eksikliği nedeniyle, manuel QA'lar özelliklerdeki küçük hata belirtilerini gözden kaçırabilir . Bu tür hatalar gerçekten epik başarısızlıklara yol açabilir ve bunları geliştirmenin sonraki aşamalarında düzeltmek, erkenden düzeltmekten çok daha fazla zamana (ve paraya) mal olur.
Bu senaryo, bir bilgisayar testleri çalıştırdığında gerçekleşemez çünkü bilgisayarlar (a) testleri insanlardan daha hızlı çalıştırır ve (b) dikkati dağılmaz, yorulmaz veya koda fazla alışmaz.
Otomasyon paradan tasarruf edebilir (doğru uygulanırsa)
Bu görünüşte basit - bir QA bir görev için daha az zaman harcarsa, daha az maliyetli olur. Manuel ve otomatik test arasındaki tartışmalarda, bu gerçek genellikle ortaya çıkar. Ve bu bir dereceye kadar doğrudur: uzun vadede, neyin otomatikleştirilebileceğini otomatikleştirmek, büyük olasılıkla size çok fazla QA çalışma saati ve dolayısıyla çok para kazandıracaktır.
Bununla birlikte, otomatik test yazılımının maliyeti de olduğundan, madalyonun başka bir yüzü daha var. Bu nedenle, test otomasyonu, kazanılacak çok az şeyin olduğu kısa vadeli projelerden ziyade genellikle büyük projelerde kullanılır .
Bazı testler yalnızca otomatik testlerle gerçekleştirilebilir
Aynı anda birçok kişi tarafından kullanılması gereken büyük uygulamaların (video konferans veya akış yazılımı, çevrimiçi eğitim araçları veya popüler oyunlar) test edilmesi söz konusu olduğunda, performanslarını stres altında manuel olarak test etmek neredeyse imkansızdır. Bir uygulamanın aynı anda birkaç yüz kullanıcının yüküne sorunsuz bir şekilde dayanıp dayanamayacağını kontrol eden testler için yüzlerce test cihazına ihtiyaç duyulacaktır. Mantıklı veya ekonomik olarak uygulanabilir bir çözüm gibi görünmüyor, değil mi?
Ancak, bir komut dosyası böyle bir yükü kolaylıkla taklit edebilir. Yük, stres ve performans testleri için otomatik test gereklidir. Ancak bu testler, geliştirdiğiniz her uygulama için gerekli değildir. Bunları her ürün için ayrı ayrı gerçekleştirip gerçekleştirmemeye karar vermeniz gerekir.
Otomatik testin eksiklikleri

Şimdi eksilere.
Otomatik test, manuel testten daha karmaşıktır
Senaryolar kendilerini yazmazlar. QA'lar bunları her görev için manuel olarak yazar ve bu, bir QA otomasyon mühendisinin en az bir programlama dili (Python, Java ve C# otomatik testler için en popüler olan) hakkında programlama becerilerine ve bilgisine ihtiyacı olduğu anlamına gelir. Otomatik test ayarlamak için bir QA, bir komut dosyasının çalıştırılması için bir test senaryosu derler. Her senaryo el yazısıyla yazılmıştır, bu da bir KG tarafından zaman alır.
Yine de, otomatikleştirilebilen tekrarlayan görevler ve görevlerle, uzun vadede otomasyon daha iyi bir seçenektir.
Otomatik testler tüm sorunların cevabı değildir
Otomatik testlerin mevcut teknolojilerle yapamayacağı şeyler var. Örneğin, test tasarımı veya kullanıcı dostu olma söz konusu olduğunda manuel testlerin yerini alamazlar - bu şeyler insan içgörülerini gerektirir. Ancak, bir uygulamanın tasarımı ve kullanım kolaylığı testleri de her zaman QA'lar tarafından gerçekleştirilmez: şirket çalışanlarına ek olarak bir test kullanıcı grubundan kullanıcı geri bildirimi alınabilir. Bu test grubuna ödeme yapılabilir veya ödenmeyebilir.
Otomatik testin yetersiz kaldığı bir başka durum da tamamen yeni işlevlerin test edilmesidir. Bir KG uzmanının bir test komut dosyasını nasıl programlayacağını bilmesi için, hangi sonuçları beklemeleri gerektiğini bilmeleri gerekir .
Çoğu yazılım testi otomatikleştirilebilir. Fakat hepsi değil. Hala manuel testin tercih edilen yöntem olduğu durumlar vardır. Manuel testin otomatik teste göre avantajlarından biraz bahsedelim.
Manuel testin faydaları

Modern yazılım geliştirmenin gerçeği, çoğu testin hala manuel olarak yapılmasıdır. Nedenleri bir şirketten diğerine değişir. Biz burada bunlardan sadece birkaçını vurgulayacağız.
Manuel testin uygulanması daha kolaydır
Otomasyon uzmanları yerine şirketinizi nitelikli manuel QA uzmanlarıyla donatmak oldukça basittir . Birçok manuel test görevi, koda erişim olmadan ve kodlama bilgisi olmadan yapılabilir. Bu nedenle, test etme bazen yazılım geliştirmeye giriş yolu olarak kabul edilir - minimum düzeyde bilgi ile başlayabilir ve yol boyunca beceriler kazanabilirsiniz . Bu, piyasada otomasyon uzmanlarından daha iyi manuel QA'ların olduğu anlamına gelir.

Son derece karmaşık görevler için manuel test doğru seçimdir
Son derece karmaşık özellikleri test ederken, manuel testleri çalıştırma süresi ve bunu yapma maliyeti bazen otomasyon komut dosyaları yazmak için gereken zamandan ve paradan daha az olabilir. Ayrıca, bu tür görevler, özellikleri nedeniyle genellikle yalnızca bir kez tamamlanır. Bu, otomasyonu maliyet açısından verimsiz hale getirir.
Bununla birlikte, yüksek nitelikli bir otomasyon uzmanı karmaşık senaryoları genç bir KG'den daha hızlı ve daha hassas bir şekilde oluşturabildiğinden, bu en azından kısmen KG'nizin becerilerine de bağlı olacaktır. Ayrıca her bir otomasyon komut dosyasını oluşturmanın faydasını da hesaplamanız gerekecektir.
Manuel test, belirli görevler için daha uygundur
Arayüz tasarımı, kullanıcı deneyimi ve kullanılabilirlik hala komut dosyaları tarafından test edilemez. Bu testler, bazen kalite güvence uzmanlarından, bazen de bir test kullanıcı grubundan olmak üzere insan geri bildirimi gerektirir.
Başka bir durum, bir testin belirli bölümlerine ekstra dikkat gösterilmesi gerektiğidir - böyle bir test için bir komut dosyası yazmak çok karmaşıktır ve genellikle ne arayacağını bilen bir uzman kullanmak kadar güvenilir değildir.
Bazen KG'ler, testleri spontane, alışılmadık bir şekilde ve hazırlık yapmadan da gerçekleştirir. Buna geçici test denir. Geçici testler, beklenmeyen kusurları bulmanıza yardımcı olabilir. Bu tür testler için, nasıl bir sonuç bekleyeceğinizi bilmediğiniz için bir komut dosyası yazmak imkansızdır. Ayrıca, bu tür komut dosyaları muhtemelen yalnızca bir kez kullanılacaktır .
Örnek: Maymun testi adı verilen bir tür geçici test, sistemi bozmak için ne yapılması gerektiğini bulmayı amaçlar. Sistemin çökmesini tetikleyen herhangi bir şey olup olmadığını görmek için rastgele eylemler gerçekleştirilir.
Manuel testin eksiklikleri

Otomasyon testinin artık manuel teste göre sıklıkla tercih edilmesinin nedeni budur.
Manuel test doğal olarak daha yavaştır
Bir insan QA'sının tamamlanması birkaç saat, hatta günler sürebilen aynı görev, bir makine için yalnızca dakikalar hatta saniyeler alacaktır. Bilgisayarlı sistemler ve komut dosyaları, verileri bir insandan daha hızlı analiz eder. Manuel test, özellikle tekrarlayan görevlerde sıkıcı ve zaman alıcıdır, uygun hazırlıkla yürütülen test otomasyonu ise hızlı ve basittir.
Manuel test hatalara açıktır
İnsanlar, her güncellemeden sonra bir özelliği yeniden test etmek gibi tekrar tekrar yapılan görevler söz konusu olduğunda ayrıntıları gözden kaçırabilir.
Dikkati tek bir görevde birden çok noktaya dağıtmak da bir QA için sorun yaratabilir ve test sonuçlarını daha az güvenilir hale getirebilir. Karmaşık özelliklerle, duruma göre manuel ve otomatik test arasında karar vermeniz gerekir. Bazen, özellikle bir test yalnızca bir kez çalıştırılıyorsa, komut dosyalarının karmaşıklığı nedeniyle otomasyon irrasyonel olarak maliyetli ve zaman alıcı olabilir.
Uzun vadede, yalnızca manuel test yaptırmak daha pahalı olabilir
Otomatik testlerle bir şirketin, hem yazılıma hem de kalifiye personel işe almak için başlangıçtan itibaren bazen önemli miktarda yatırım yapması gerektiği doğrudur (otomasyon QA'ları manuel uzmanlardan daha maliyetlidir).
Ancak proje için gereken testlerin türüne ve sayısına bağlı olarak manuel testler de mali bir yük olabilir. Bir proje büyük olduğunda ve testlerin tamamlanması çok zaman aldığında veya birden çok kez tekrarlandığında, maliyeti birdenbire yükselir . Bu konu, her iki seçeneğin maliyetini değerlendirmek ve hangisinin ekonomik olarak en uygun olduğunu bulmak için proje planlamasının başında ele alınmalıdır. Genellikle en iyi karar, manuel ve otomatik testi birleştirmektir.
Manuel teste karşı otomatik test - hesaplaşma
Şimdi manuel test ile otomatik testin yan yana karşılaştırmasını görelim.
| Manuel test | Otomatik test |
|---|---|
Tamamlanması çok zaman alır | Tamamlanması çok daha az zaman alır |
Programlama becerileri gerektirmez | Programlama becerileri gerektirir |
Daha düşük başlangıç maliyeti ancak testler ne kadar uzun süre çalıştırılırsa, maliyet o kadar yüksek olur | Daha yüksek başlangıç yatırımı gerektirir, ancak çok sayıda tekrarlayan test içeren uzun vadeli projeler için daha karlıdır |
İnsan faktörü nedeniyle daha yüksek hata olasılığı | Testler iyi yapılandırılmışsa daha kesin ve güvenilir |
Karmaşık görevler ek uzmanlar gerektirir | Karmaşık görevler ek hazırlık süresi gerektirir |
Performans, yük veya stres testi için uygun değil | Kullanılabilirlik, kullanıcı arayüzü veya kullanıcı deneyimi testi için uygun değil |
Manuel testi nerede kullanmalısınız?

Manuel olarak daha iyi çalıştırılan bazı testler:
- Keşif testi. Bu, tamamen yeni özelliklerin ilk testidir. İlgili işlevsellik yeni olduğundan ve hazır test senaryoları bulunmadığından, bu tür bir testi otomatikleştirmek imkansızdır.
- Görsel GUI ve kullanılabilirlik testi. Kullanıcı arayüzlerini ve kullanıcı deneyimlerini test etmek, görsel bir değerlendirme içerir ve insan gözlemi gerektirir.
- Geçici test. Bunlar, gereksinimlere veya belgelere bağlı kalmadan yapılan ve beklenmedik hataları ortaya çıkarmayı amaçlayan kendiliğinden yapılan testlerdir.
Otomatik testi nerede kullanmalısınız?

Test otomasyonu günümüzde giderek daha fazla kullanılmaktadır ve otomatik testin üstesinden gelebileceği yeni durumlar ortaya çıkmaktadır. Aşağıda, otomatik testin önerildiği yerlere ilişkin bazı örnekler verilmiştir:
- Duman testi temel işlevselliği kontrol eder. Genellikle biraz standartlaştırılmış ve yeniden kullanılabilir.
- Regresyon testi , uygulamanın kendisinde veya işletim sisteminde yapılan güncellemelerden sonra mevcut işlevselliği yeniden test eder ve herhangi bir çakışma olup olmadığını bulmak için tasarlanmıştır.
- Performans/yük testi , aynı anda çok sayıda kullanıcı tarafından yoğun kullanıma yönelik uygulamaları test etmek için kullanılır. Yük testi, uygulamanın çöküp çökmediğini görmek için yüksek bir yükü simüle eder.
- Stres testi , yük testine benzer ve uygulamada sanal bir yük oluşturmayı gerektirir. Bununla birlikte, uygulamanın belirli bir yüke dayanıp dayanamayacağını görmek için yük testi yapılırken, stres testi, yükün sınırının nerede olduğunu bulmayı amaçlar. Başka bir deyişle, uygulamayı kırılma noktasına getirir.
- Tekrarlanan yürütme. Bazı testler, belirli geliştirme noktalarında tekrar tekrar çalıştırılır veya farklı uygulamalar için yeniden kullanılabilen standart testler.
Peki karar ne?
Manuel ve otomatik testi karşılaştırdıktan sonra, otomatik testin manuel testten daha iyi olup olmadığını kesin olarak söyleyemeyiz.
Yazılım testi, karmaşık ve çok çeşitli bir süreçtir. Neyin test edildiğine bağlı olarak, hangi aşamada ve hangi amaçla farklı testler yapılacaktır. Ve bu, elbette, manuel ve otomatik test arasındaki seçimi etkiler. Bazı testler otomatik olmaktan daha iyidir ve diğerleri yine de manuel olarak yapılmalıdır .
Yazılım geliştirme şirketlerinin becerilerini geliştirmelerinin en iyi yolu , manuel ve otomatik test uzmanlarını birleştirmek , test görevlerini aralarında akıllıca bölmek ve her iki yöntemden de en iyi şekilde yararlanmaktır. Her proje, manuel ve otomatik testleri farklı oranlarda birleştirebilir ve en iyisi bir projenin test stratejisini baştan oluşturmaktır.
