Scrum sprint'lerinde test etme ve Scrum'da kullanıcı öyküleri yazma


15

Şirketimde yeni bir projenin geliştirme ekibi lideriyim. Bu, şirketin Scrum'ı kullanacağı ilk projedir. Bir şelale / yinelemeli SDLC'miz var. BA'lar dokümanları yazıyor, geliştirici ve teste devrediyor, geliştirici gelişmeye başlıyor ve iterasyonlarda teste başlayacak. Test kullanıcıları, geliştiricilerin geliştirmeye devam ettiği bir sürümü test etmek için uzun zaman alır, aynı zamanda mevcut sürüm için hata düzeltmeleri de yapar. bir kaç sorum var

  1. 5 öykü içeren bir sprint'te test için ne zaman serbest bırakılır? Bir hikaye geliştirici tarafından tamamlanır tamamlanmaz mı yoksa tüm hikayeler tamamlandıktan sonra mı yoksa sprint bitmeden önce test için gerekli zamanı verir.
  2. BA kullanıcı hikayeleri yazarsa, ayrıntı ne olmalıdır. Geleneksel olarak, tüm UI düzeni, davranışı, metni vb. İle sonlandırılacak bir özellik yazmak uzun zaman alır. Sanırım sorum, uygulanamaz ve test edilebilir hikayelerin nasıl yazılacağı.
  3. Test ekibimiz teknik değildir. Scrum için otomatik UI testine sahip olmak ne kadar önemli. Kullanıcı arayüzü WPF'ye dayanmaktadır.

Çevik yöntemler (TDD, kod incelemeleri, yeniden düzenleme vb.) Kullanarak sağlam geliştirme deneyimi var ama scrum için yeni.

edit: Yinelemelere göre, 100 gereksinim varsa, 100 gereksinimin tamamı tamamlanana kadar beklemek yerine 30, 35, 35 gereksinimlerini bitirdiğimizde teste bırakabileceğimizi kastediyorum.


4
We have a waterfall/iterative SDLC.Bunun üzerinde durun. Şelale, tanım gereği, ardışık bir süreçtir, yinelemeli bir süreç değildir. Değiştirilmiş şelaleler olmasına rağmen (sashimi modeli veya alt projelerle birlikte şelale), hepsi sıralıdır. Mevcut sıralı işleminizden yinelemeli işlemlere doğru ilerlemeye mi çalışıyorsunuz?
Thomas Owens

1
@Pratik İşler sizin için nasıl çalıştı? KG ekibiyle daha iyi işbirliği yapmayı başardınız mı?
flup

Yanıtlar:


11

Test geliştirmeden ayrıysa, iki ayrı scrum ekibiniz var. Bir elin diğerine çalışması kötü bir fikirdir.

Kişisel geliştiriciler gerekir kendi testleri yazmak, bu diğer takımdan ayrı. Bu diğer "test" ekibini müşterileriniz gibi görmelisiniz.

Bir sprint'te ... test için ne zaman serbest bırakacaksınız?

Sprint bittiğinde. Tamamen bitti. Bu, kendi birim testinizi yaptığınız ve çalıştığından emin olduğunuz anlamına gelir . Geliştirme ekibiniz tamamlandıktan sonra, "test" veya "dağıtım" için veya kuruluşta başka ne olursa olsun diğer ekiplere yayınlarsınız.

Sanırım sorum, uygulanamaz ve test edilebilir hikayelerin nasıl yazılacağı.

Bu takımdan takıma değişir. BA, geliştirme ekibinin bir parçasıdır. Doğru miktarda ayrıntı elde etmek için bir ekip (BA artı geliştiriciler) üzerinde çalışmalısınız. BA'dan ekibin geri kalanına doğru bilgileri almak bir takım çabasıdır.

Scrum için otomatik UI testine sahip olmak ne kadar önemli.

Esansiyel. Herhangi bir UI gelişimi için tamamen gereklidir. Geliştiriciler "test ekibine" verilmeden önce tüm testleri kendileri yapmalıdır . Bir kullanıcı arayüzü varsa, bunu test etmeleri gerekir. Kullanıcı arayüzü yoksa, otomatik kullanıcı arayüzü testi gerekli değildir. Test gerekli ve bir kullanıcı arayüzü test edilmelidir. Otomatik test, mevcut en iyi uygulamadır.


Sonuç olarak. Ayrı bir "test" ekibi ve her küçük detayı yazan bir BA Scrum için en uygun organizasyon değildir. Scrum, hem organizasyonlarınızı hem de süreçlerinizi yeniden düşünmeniz gerektiği anlamına gelir.


6
After you're development team is done, you release it to other teams for "testing" or "deployment" or whatever else happens in the organization. Bu, Yinelemeli Şelalenin farkı nedir? Bu durumda sürat gerçekten çok kısa bir Şelale İterasyonudur. Bu tür, Agile ve Scrum IMO'nun en güçlü yönlerinden birini yener, tüm BA'ların, Geliştiricilerin ve QA'nın aynı ekipte birlikte olduğu ve hepsi de serbest bıraktıkları sprint'e sahip oldukları. Projelerde ortaya çıkan engelleri yıkıyor.
maple_shaft

4
Otomatik kullanıcı arayüzü testinin neden gerekli olduğunu açıklayabilir misiniz? Scrum, herhangi bir teknik uygulamayı gerektirmeyen bir proje yönetimi çerçevesidir. Scrum ile ilgili olarak bulabildiğim testlere tek atıf Scrum Ekibinin çok işlevli bir ekip olduğudur. Otomatik test yapmayı tercih etsem de, Scrum herhangi bir otomatik test veya herhangi bir test gerektirmez, ancak geçen testler Bitti Tanımı'nın bir parçası olmalıdır. Sadece yapılan herhangi bir testin ekip tarafından yapıldığını söylüyor. Sonuç olarak haklısınız - mevcut organizasyonel yapı Scrum için uygun değil.
Thomas Owens

2
Soru, doğrudan orijinal gönderiden kopyalanarak vurgulandı: " Scrum için otomatik UI testinin yapılması ne kadar önemli ." Scrum için bu hiç önemli değil.
Thomas Owens

2
Cevabınızdaki ifadeler, otomatik UI testinin Scrum sürecinin bir parçası olduğu anlamına geliyor ve öyle değil. Ancak bu, geliştirme ekibi tarafından kaliteyi artırmak için yapılması iyi bir şey olmadığı anlamına gelmez. Kötü bir şekilde ifade edilen bir soru olduğunu kabul ediyorum, ancak "Scrum için bu gerekli" ve "otomatik kullanıcı arayüzü testini tamamlamak bir hikaye için yapılan tanımımın bir parçası olmalı" arasındaki ayrımın yapılması gerektiğini kabul ediyorum. Sonuçta, cevap değişmez, ancak neden gerekli olduğu konusunda daha açık hale gelir.
Thomas Owens

9
Essential. Completely required.Scrum süreç çerçevesi tarafından "zorunlu" veya "tamamen gerekli" olmadığını yansıtacak şekilde değiştirilmesi gerekir. Şu anda, bilgisiz bir okuyucu bu yanıtı okuyacak ve otomatik kullanıcı arayüzü testi yapmıyorsanız Scrum yapmadığınız sonucuna varabilir. Bu yanlış bir sonuçtur, ancak bu cevabın ifadesi göz önüne alındığında tamamen anlaşılabilir. "Yapmanız gereken bir şey" ile "zorunlu bir şey" arasında açık bir ayrım vardır.
Thomas Owens

9

Vereceğim cevapların çoğu, Yineleyen bir Şelale yöntemine karşı Çevik bir yazılım geliştirme yöntemiyle ilgilidir. Scrum sadece popüler bir Agile uygulamasıdır.

  1. Tipik Scrum'da ayrı bir test aşaması yoktur, çünkü tüm sprint boyunca resmi testler yapılmalıdır. Bir geliştirici bir Kullanıcı Hikayesini bitirdiğinde, KG kaynağının test senaryoları önceden hazırlanmış olmalı ve o noktada teste başlamalıdır. Test senaryoları geçerse, kullanıcı hikayesini kabul eder ve bir sonrakine geçer. Tüm Kullanıcı Hikayeleri tamamlandıktan ve Kabul Edildikten sonra sprint sona erer ve bir sonrakine başlarsınız. Bu elbette Sürekli Entegrasyona bağlıdır, bu nedenle geliştirme değişiklikleri KG için hemen kullanılabilir. Regresyon testinin mümkün olduğunca hızlı ve ağrısız olmasını sağlamak için daha fazla geliştirme TDD yönergelerine uymalıdır.

  2. BA'ların kullanıcı hikayeleri yazması iyi bir fikirdir, ancak daha ayrıntılı ve spesifik kontrol için Kullanıcı Öyküleri resmi Gereksinim belgelerine eşlik edebilir. Kullanıcı Hikayesi rol ile tek bir kullanıcı açısından yazılmalıdır. Kullanıcının bakış açısından bir ihtiyacı ifade eder, bu yüzden yazılım şu anda bu ihtiyacın tüm yönlerini karşılıyorsa, kullanıcı hikayesi karşılanmaktadır. Kullanıcı hikayeleri, alt kullanıcı hikayelerinden ve atanabilir Görevlerden oluşabilir. Birden çok kullanıcı hikayesi için Görevler'de çakışma olabilir.

  3. Otomatik UI testi iyi bir şey olabilir, ancak şahsen TDD yöntemleri üzerinde daha fazla çaba ve tüm İş Mantığının% 100 birim testi kapsamının daha önemli olduğunu hissediyorum. Çoğu yazılım geliştirme ekibi, İş Mantığının% 100 kapsamını elde edemez gibi görünüyor, bu yüzden bence Otomatik Kullanıcı Arayüzü Testi, BL için daha fazla birim testi yazmak için kullanılabilecek değerli bir zaman kaybı olacaktır. Bence bir lüzum değil.


1 ile ilgili gerçek bir soru: KG, her bir Kullanıcı Hikayesini yapılır yapılmaz test ederse, bir sonrakine geçerse , aynı sprint içindeki ikinci bir hikayenin (belki ince yollarla) bir tanesinin kırılmadığını nasıl kontrol edersiniz? test edilmiş olan Kullanıcı Hikayeleri? Bir çeşit "aynı sprint içinde gerileme". Elbette otomatik test paketlerinden değil manuel KG'den bahsediyorum.
Andres F.

@AndresF. TDD sürecini CI ile birlikte takip ederseniz, bir check-in mevcut işlevselliği bozarsa, birim testleri başarısız olur ve insanlar bilgilendirilir. Tabii ki bu sadece iş mantığının% 100 test kapsamı mevcutsa etkilidir, ancak basit mantık, çevre veya entegrasyon sorunları ve sunum mantığında hala yakalanmayan yeni kullanıcı hikayesi geliştirmede getirilen hatalar olabilir. S.Lott tarafından önerilen otomatik UI testi, bunların çoğunu yakalamak için uzun bir yol kat ediyor, ancak sonuçta, hızlı bir duman testinden biraz daha fazlası bu sorunları tespit etmeli. devamı ...
maple_shaft

... devamı. Bunun tekrar eden bir sorun olduğunu düşünüyorsanız, kodunuzu özellikle kırılgan hale getiren sıkı bağlantı ve düşük uyum gibi daha derin tasarım kusurlarına veya sorunlara sahip olabilirsiniz.
maple_shaft

@maple_shaft: Bunu söylemek kolay, ancak KG testlerinin ortasında bir sürümden hoşlanmıyor. Ayrıca CI derlemesini sık sık kontrol ediyoruz ancak serbest bırakma sadece talep üzerine yapılır. Mevcut test ekibi otomatik kullanıcı arayüzü testi yazamaz. Tamamen manuel test yapıyorlar. Bunu değiştirmek benim için zor olurdu.
softveda

@Pratik Bana inanmanın ne kadar zor olduğunu anlıyorum. Acıyı biliyorum. Sprint'i uzatabilir, ancak sprint başına test ortamına üç veya dört sürüm atabilirsiniz. Bu şekilde test ekibi bir test vakasının ortasında gün için ayrılabilir ve ortamın bir gecede değişmediğinden emin olabilirsiniz.
maple_shaft

4
  1. Scrum'da, her sprint sonunda potansiyel olarak sevk edilebilir bir yazılım artışı üretmeniz gerekiyor . Sonuç olarak Scrum, belirli bir kullanıcı hikayesini gerçekleştirmek için gereken her becerinin ekipte bulunması gereken tüm ekip veya çapraz fonksiyonel ekip kavramını teşvik eder .

    Mevcut projemde, tamamen test edilmiş bir hikaye yapılan tanımımızın bir parçası olduğundan, test ekiplerini ekiplere yerleştirdik. Bir sprint'in ilk birkaç gününde, geliştiriciler ilk kullanıcı hikayeleri üzerinde çalışmaya başlarken, test kullanıcıları test senaryoları hazırlayacak ve bazı test verileri ayarlayacaktır. Kullanıcı öykülerinden birinin geliştiricisi biter bitmez bunu test ederler.

  2. Bu, Scrum IMO'daki en büyük zorluklardan biridir. Uygulanabilir, test edilebilir bir kullanıcı hikayesi elde etmek için gerekli miktarda spesifikasyonu bulmanız gerekir. Çok fazla açık analiz, dokümantasyon ve şartname, sprint boyunca kaçınılmaz olarak yanlış kanıtlayacak katı bir planla sonuçlanacaktır. Tersine, Ürün Sahibi tarafından açıkça tanımlanmayan ve ifade edilmeyen bir kullanıcı hikayesi, Sprint sırasında geliştiriciler ve PO arasında doymuş bir iletişim bant genişliğine ve geliştirme sırasında gecikmelere neden olurken PO, sprint'in yarısı boyunca kullanıcı hikayeleri hakkında kararlar verir. .

    Bizim durumumuzda, bir kullanıcı hikayesinin "/ ... istiyorum ... böylece ..." ve 2 / bir dizi kabul şeklinde bir açıklama olması için doğru miktarda ayrıntı tanımladık. kriterleri. Biz nadiren kullanıcı arayüzünün maketlerini yaparız, sprint planlaması sırasında olabilir, ancak daha sonra atılan daha fazla taslaktır.

  3. Deneyimlerime göre, otomatik UI testi son derece zaman alıcı ve son derece kırılgandır. Bunu WPF'de yapmanın yolları var, ancak bu tür testlerin bakım maliyetini bu şekilde gitmeden önce dikkatle düşünmeliyim.


2

Daha kısa ve daha kısa yinelemelerde çalışmak, tüm bu aktarımları daha pahalı hale getirir. Aptalca ve basit bir kurala uyarak bu maliyetleri azaltabilirsiniz: parti boyutlarını ikiye bölün, bunu rahat hale getirmek için çalışma şeklinizi değiştirin, mutlu olana kadar tekrarlayın.

5 katlı sprint örneğinizi alın. Takımlarınız 5 hikayenin de kodunu yazmaya alışkınsa, 5 hikayenin tümünü test ederseniz, toplu iş boyutu 5 hikayedir. Bunu yarıya indir. Bir sonraki süratte, ilk önce en acil olan 3 hikaye üzerinde çalışın ve onları mümkün olduğunca erken test etmeye hazırlayın. Testçiler bu 3 hikayeyi test ederken, geri kalanlar kalan 2 hikayeyi test için hazır hale getirebilir. Bu bazı büyüyen ağrılara neden olur. Bunu daha rahat hale getirmek için çalışma şeklinizi değiştirin.

Örneğin, her hikaye üzerinde daha fazla kişi birlikte çalışacaktır, bu yüzden daha fazla eşleştirmeyi deneyin ve bunun daha düzenli çalışmanıza yardımcı olup olmadığını görün. Ya da belki de test kullanıcıları, 2. bölümde, 5. program üzerinde çalışmaya çalışırken bazı programcıları rahatsız eden sorunlar bulacaklardır. Bu nedenle, programcıları ve test uzmanlarını bir sonraki sprint'i "ilk parti" "böylece programcıların bir test cihazının bir testle kolayca yakalayabileceği bir hata yapma olasılığı daha düşüktür.

Programcılar bir sonraki hikaye grubu üzerinde çalışırken testçilerin küçük bir hikaye grubunu test etmesiyle ilgili büyük sorunları çözmek birkaç sprint gerektirebilir. Rahat hale geldiğinde, parti boyutunu tekrar yarıya kesin. Ve yeniden. Bir yıl kadar sonra, programcılar onlarla bitirdiklerine inandıklarından ve muhtemelen yol boyunca daha az hata yaptıklarından, ekip hikayeleri rahatça test edecek . Her hikaye daha erken yapılacaktır.

Tabii ki, bu noktada, artık ekibin ürün sahiplerinden aldığı veya ekibin operasyon organizasyonuna gönderdiği partilerle aynı şeyi yapabilirsiniz. Ve bunun gibi. Bu noktada, "BA'lar hikayeler için ne kadar detay yazmalı?" sorun.

Bu arada: testçilerin geri dönüş zamanlarını azaltabilmeleri için, nasıl otomatikleştirileceklerini öğrenme ve programcıların otomatikleştirmelerine yardımcı olacak bazı kombinasyonlarla bazı otomasyonları benimsemek zorunda kalacaklar. Toplu iş boyutunu azaltmaya çalıştıkça, bu sorunları ne zaman çözmeniz gerektiğini öğreneceksiniz. Bir kitabın ona ihtiyacınız olduğunu söylediği için otomasyon eklemeyin.

Umarım bu size yardımcı olur.


0

Sadece aşağıdaki gibi bazı deneyimleri paylaşmak istiyorum, size yardımcı olacağını umuyoruz.

5 öykü içeren bir sprint'te test için ne zaman serbest bırakılır? Bir hikaye geliştirici tarafından tamamlanır tamamlanmaz mı yoksa tüm hikayeler tamamlandıktan sonra mı yoksa sprint bitmeden önce test için gerekli zamanı verir.

Her büyük kullanıcı hikayesi için, birçok alt göreve bölünmelidir ve alt görevler geliştirici tarafından tamamen yapıldığında, hemen test etmek için QC'ye bırakılmalıdır. Bu alt görevler bitirme testi için testten sonra kusur düzeltilmelidir.

BA kullanıcı hikayeleri yazarsa, ayrıntı ne olmalıdır. Geleneksel olarak, tüm UI düzeni, davranışı, metni vb. İle sonlandırılacak bir özellik yazmak uzun zaman alır. Sanırım sorum, uygulanamaz ve test edilebilir hikayelerin nasıl yazılacağı.

Scrum'da, kullanıcı hikayeleri, hikayeleri çevreleyen sohbetler gerçekleştiği ve tamamlanması veya statik olması beklenmediği sürece herhangi bir biçimde olmalıdır. Basitçe bir kullanıcı hikayesi olarak adlandırılan küçük bir hikaye, iyi anlaşılan ve bir sprint içinde uygulanabilen hikayedir. Bir hikayenin önceliği YG'ye, işletme değerine veya kullanıcının önemli olduğu konusunda kabul ettiği başka bir şeye dayanabilir. Bu PO'nun faaliyetleri.

Test ekibimiz teknik değildir. Scrum için otomatik UI testine sahip olmak ne kadar önemli. Kullanıcı arayüzü WPF'ye dayanmaktadır

Scrum'da otomasyon testinin uygulanması oldukça zor bir faaliyettir. Çünkü tüm fonksiyonlar tamamlanmamıştır ve QC'nin test senaryosunu bazı otomatik test araçlarıyla uygulamasına izin vermek için gerçekten kararlı değildir. Regresyon adı verilen bir sprint için yapılmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.