Testin Temel Sorunu

Giriş

İyi günler Habrovsk sakinleri. Az önce bir fintech şirketindeki boş QA Lideri pozisyonu için bir test görevini çözüyordum. Elektrikli su ısıtıcısını test etmek için eksiksiz bir kontrol listesi ve test senaryosu örnekleri içeren bir test planı oluşturmak olan ilk görev, önemsiz bir şekilde çözülebilir:

Ancak ikinci bölümün şu soruya dönüştüğü ortaya çıktı: "Tüm test kullanıcılarının daha verimli çalışmasını engelleyen ortak sorunlar var mı?"

Aklıma gelen ilk şey, test sırasında karşılaştığım az çok fark edilen sorunları listelemek, küçük şeyleri ayıklamak ve gerisini özetlemek oldu. Ancak tümevarım yönteminin, test yapanların "hepsi" için değil, en iyi ihtimalle yalnızca "çoğunluğu" için geçerli olan bir soruyu yanıtlayacağını hemen fark ettim. Bu nedenle konuya diğer taraftan, tümdengelimli yaklaşmaya karar verdim ve olan da buydu.

tanımlamak

Yeni bir problemi çözerken genellikle yaptığım ilk şey, sorunun neyle ilgili olduğunu anlamaya çalışmaktır ve bunu yapabilmek için onu ortaya koyan kelimelerin anlamını anlamam gerekir. Anlaşılması gereken anahtar kelimeler şunlardır:

  • sorun
  • testçi
  • testçi işi
  • test cihazı verimliliği

Wikipedia'ya ve sağduyuya dönelim:
Sorun (eski Yunanca πρόβλημα) geniş anlamda - çalışma ve çözüm gerektiren karmaşık teorik veya pratik bir konu; bilimde - herhangi bir olgunun, nesnenin, sürecin açıklanmasında karşıt konumlar şeklinde ortaya çıkan ve onu çözmek için yeterli bir teori gerektiren çelişkili bir durum; hayatta sorun insanların anlayabileceği bir biçimde formüle edilir: "Neyi biliyorum, nasıl yapılacağını bilmiyorum" yani neyin elde edilmesi gerektiği biliniyor ama nasıl yapılacağı bilinmiyor. . Geç geliyor. enlem. sorun, Yunanca'dan. πρόβλημα “öne atılmış, öne yerleştirilmiş”; προβάλλω'dan “öne at, önüne koy; suçlamak".

Aslında "sorun" = "başa çıkılması gereken herhangi bir şey" pek bir anlam ifade etmiyor.
Testçi - bir bileşenin veya sistemin test edilmesine katılan bir uzman (tüm test uzmanlarıyla ilgilendiğimiz için türlere ayırmayacağız), bunun sonucu:
Testçinin çalışması — Testle ilgili bir dizi faaliyet.
Yeterlik (enlem. etkili) - elde edilen sonuç ile kullanılan kaynaklar arasındaki ilişki (ISO 9000: 2015).
Sonuç - niteliksel veya niceliksel olarak ifade edilen bir dizi eylem (sonuç) veya olay zincirinin (serisi) sonucu. Olası sonuçlar arasında avantaj, dezavantaj, kazanç, kayıp, değer ve zafer yer alır.
"Sorun"un da pek bir anlamı yok: Çalışma sonucunda ortaya çıkan bir şey.
Kaynak - bir kişinin veya kişilerin herhangi bir faaliyetini gerçekleştirmenin niceliksel olarak ölçülebilir olasılığı; İstenilen sonucu elde etmek için belirli dönüşümlerin kullanılmasına izin veren koşullar. Testi yapan kişi bir kişidir ve hayati kaynaklar teorisine göre her kişi dört ekonomik varlığın sahibidir:
nakit (gelir) yenilenebilir bir kaynaktır;
enerji (yaşam gücü) kısmen yenilenebilir bir kaynaktır;
zaman sabit ve temelde yenilenemeyen bir kaynaktır;
bilgi (enformasyon) yenilenebilir bir kaynaktır, büyüyebilen ve yok edilebilen insan sermayesinin bir parçasıdır[1].

Bizim durumumuzda verimlilik tanımının tamamen doğru olmadığını, çünkü ne kadar çok bilgi kullanırsak verimliliğin o kadar düşük olduğunu belirtmek isterim. Bu nedenle verimliliği “elde edilen sonuçlar ile harcanan kaynaklar arasındaki oran” olarak yeniden tanımlayacağım. O zaman her şey doğrudur: Bilgi çalışma sırasında israf edilmez, ancak testçinin temelde yenilenemeyen tek kaynağı olan zamanının maliyetlerini azaltır.

karar

Bu nedenle, test uzmanlarının çalışmalarının etkinliğini bozan küresel sorunlarını arıyoruz.
Bir test uzmanının çalışmasına harcanan en önemli kaynak onun zamanıdır (geri kalanı öyle ya da böyle azaltılabilir) ve verimliliğin doğru hesaplanmasından bahsedebilmemiz için sonucun da zamana indirgenmesi gerekir. .
Bunu yapmak için, testçinin çalışmasıyla uygulanabilirliğini garanti ettiği bir sistemi düşünün. Böyle bir sistem, ekibinde bir test cihazının da bulunduğu bir projedir. Proje yaşam döngüsü kabaca aşağıdaki algoritma ile temsil edilebilir:

  1. Gereksinimlerle Çalışmak
  2. Teknik şartnamelerin oluşturulması
  3. Gelişme
  4. Test
  5. Üretime sunma
  6. Destek (madde 1'e git)

Bu durumda, tüm proje yinelemeli olarak aynı yaşam döngüsüne sahip alt projelere (özelliklere) bölünebilir.
Proje açısından bakıldığında, ne kadar az zaman harcanırsa uygulanması o kadar etkili olur.
Böylece, proje açısından bir test cihazının mümkün olan maksimum verimliliğinin tanımına geliyoruz - bu, test süresinin sıfır olduğu projenin durumudur. Tüm testçilerin ortak sorunu bu süreye ulaşamamaktır.

Bununla nasıl başa çıkılır?

Sonuçlar oldukça açıktır ve birçok kişi tarafından uzun süredir kullanılmaktadır:

  1. Geliştirme ve test etme neredeyse aynı anda başlamalı ve bitmelidir (bu genellikle departman tarafından yapılır) QA). İdeal seçenek, geliştirilmekte olan tüm işlevselliğin hazır olduğunda zaten otomatik testler tarafından kapsanması, bir tür test kullanılarak regresyon (ve mümkünse ön işleme) testi halinde organize edilmesidir. CI.
  2. Bir proje ne kadar çok özelliğe sahipse (ne kadar karmaşıksa), yeni işlevselliğin eskisini bozmadığını kontrol etmek için o kadar fazla zaman harcanması gerekecektir. Dolayısıyla proje ne kadar karmaşıksa o kadar fazla otomasyon gerekir gerileme testi.
  3. Üretimde bir hatayı kaçırdığımızda ve bir kullanıcı bu hatayı bulduğunda, 1. noktadan başlayarak proje yaşam döngüsü boyunca ek zaman harcamak zorunda kalırız (Gereksinimlerle çalışmak, bu durumda kullanıcılar). Bir hatanın gözden kaçırılma nedenleri genel olarak bilinmediğinden elimizde tek bir optimizasyon yolu kalıyor; kullanıcılar tarafından bulunan her hatanın, bir daha görünmeyeceğinden emin olmak için regresyon testine dahil edilmesi gerekiyor.

Kaynak: habr.com

Yorum ekle