Samarali QA eng yaxshi amaliyotlar

Effective dasturida ishlaganimda 30 dan ortiq turli loyihalarda qatnashganman. Ularning barchasi butunlay boshqacha edi: veb va mobil, katta va kichik, murakkab va sodda. Biz loyihalarni noldan qurardik, yangi xususiyatlarni qo'shib, mavjud loyihalarni saqlab turardik.

Sifatni ta'minlash, sinov, menejment va ishlab chiqarishni rivojlantirish jarayonida juda ko'p murakkab holatlar bo'lgan va endi bizning jamoamiz Per Aspera ad Astra-dan o'tgan kabi.

Hozirgi kunda bu erda hech qanday maxsus ish qilinmagandek tuyuladi, lekin hozirgi va keyin samarali bo'lgan davrni taqqoslasak, biz oldinga juda katta qadam qo'ydik. Xatolar, jamoaning istaklari va takliflarini tahlil qilib, men sifatni ta'minlash uchun quyidagi eng yaxshi amaliyotlar ro'yxatini tayyorladim. Ushbu ro'yxatning maqsadi yosh jamoalarga tadqiqotga ko'p vaqt sarflamasdan ular uchun nima foydali bo'lishi mumkinligini tushunishga yordam berishdir. Ba'zi tajribali odamlar uchun bu velosipedni ixtiro qilish kabi ko'rinishi mumkin :) Mana, ketamiz!

Biznes maqsadlarini tushuning va qabul mezonlarini aniq qiling

Bu loyihaning asosidir va rivojlanish boshlanishidan oldin aniqlanishi kerak. Loyiha jamoasi nima qilish kerakligini, maqsadli auditoriya / xususiyat iste'molchisi va nima qilish kerakligini tushunish kerak.

Biznes maqsadlarini tushunish sizga 'Biz nima qilishimiz kerak va undan kim foydalanadi?' Kabi savollarga javob berishga yordam beradi. Qabul qilish mezonlari sizga biznesning maqsadlariga mos yoki mos kelmasligini tushunishga yordam beradi. O'z tajribamdan ayta olamanki, biznes maqsadlari va qabul qilish mezonlari mijoz yoki mijozning vakili tomonidan tasdiqlanishi kerak. Bundan tashqari, aniq va shaffof biznes maqsadlari va qabul qilish mezonlariga asoslanib, malakali autsorsing dasturiy ta'minot ishlab chiqaruvchi kompaniyalar biznes g'oyasini yangilashlari yoki yaxshiroq echimni taklif qilishlari mumkin.

CI / CD - doimiy integratsiya / uzluksiz joylashtirish

Tanish ovozlar ... shunday emasmi? Hozirgi dasturiy ta'minotni ishlab chiqishda eng asosiy narsalardan biri, QA jamoasi nuqtai nazaridan, biz eng so'nggi xususiyatlar va tuzatishlar bilan osongina o'rnatilishimiz mumkin.

Rivojlanish tsiklida bizning rivojlanish guruhimiz turli xil xususiyatlar bilan bog'liq juda ko'p git filiallariga ega bo'lishi mumkin, ammo faqat bitta filial eng yangilangan kodni o'z ichiga oladi. CI vositasi ushbu filialni tekshiradi va kod o'zgartirilganda u yangi qurishni yaratadi va uni belgilangan tarqatish xizmatiga taqdim etadi.

Biz TeamCity va Jenkinsni sinab ko'rdik. Bularning ikkalasi ham ajoyib vositalar. TeamCity-da yanada chiroyli UI mavjud, ammo Jenkins mutlaqo bepul, shuning uchun biz Jenkinsni tanladik.

Ilovalarni tarqatish xizmatlari

Umuman olganda, bu hech qanday maxsus narsa emas, lekin kaput ostida, sozlangan dasturlarni tarqatish xizmatlari bilan doimiy integratsiya sizga istalgan sinov moslamasi yoki atrof-muhitga so'nggi qurishni olishning eng oson va tezkor usulini taqdim etadi. Qurilmani bitta qurilmaga USB orqali yuborish yaxshi. Ammo siz 10 xil qurilmadan foydalangan holda tuzilishni tekshirishingiz kerak bo'lsa nima bo'ladi? Gap shundaki.

Mobil loyihalar uchun biz HockeyApp, Beta by mato (oldingi Crashlytics), Apple tomonidan sinov parvozi, Google tomonidan Play Console kabi bir nechta turli xil xizmatlarni sinab ko'rdik. Albatta, ko'proq xizmatlar mavjud, ammo ular eng ommabopi sifatida tanlandi. Endi men Test Flight va Play Console-ga ovoz bermoqdaman, chunki ushbu xizmatlar moslashuvchan, ichki va tashqi testerlarning xususiyatlarini va Apple va Google-ning rasmiy xizmatlarini va testerlarning elektron pochtalarini olish talab etiladi. Bu erda yagona cheklov shundaki, sizga Apple va Google ishlab chiqaruvchisining hisobi kerak bo'ladi, buning uchun Google uchun 25 dollar (bir martalik to'lov) va Apple uchun 99 dollar (har yili) turadi.

HockeyApp yoki Beta kabi boshqa xizmatlar, ayniqsa, iOS-da loyihaga yangi testerlarni qo'shish bilan bog'liq ba'zi qiyinchiliklarga duch kelishmoqda. Apple xavfsizlik xizmati tufayli, sinovchilar tomonidan o'z qurilmalarining UDID-ni ishlab chiqaruvchiga taqdim etish talab etiladi va ishlab chiqaruvchi ushbu UDID-larni loyihaga qo'shishi kerak. Biz o'z mijozlarimizga (odatda juda ko'p turli xil qurilmalarga ega va ularni doimiy ravishda o'zgartiradigan) mijozlarimiz bilan birgalikda ulashganimizdan, hammamiz ushbu UDID yig'ish faoliyatidan charchadik. Shuning uchun biz Test Flight va Play Console-ni tanladik.

Veb-loyihalar uchun hamma narsa biroz soddalashtirilgan, chunki biz ishlab chiqarish bo'limi o'zgarganda CI vositasi tomonidan yangilanadigan maxsus sinov muhitidan foydalanamiz.

Sinov hujjatlari

Bir necha yillar davomida bizning QA guruhi mijozlar yoki manfaatdor tomonlarga taqdim etilishi mumkin bo'lgan to'rtta eng muhim hujjatlarni aniqladi:

  • Qo'llab-quvvatlanadigan platformalar
  • Sinov rejasi
  • Sinov holatlari / varaqalar
  • Qaydlarni chiqarish

Qo'llab-quvvatlanadigan platformalar to'g'risidagi hujjat, loyiha boshlanib, mijoz bilan imzolangandan keyin imkon qadar erta tayyorlanishi kerak. Unda qo'llab-quvvatlanadigan apparat va dasturiy ta'minot konfiguratsiyasi, ma'lum cheklovlar va cheklashlar to'g'risidagi ma'lumotlar bo'lishi kerak. Shuningdek, u maqsadli auditoriya qurilmalariga asoslangan, chunki qurilmalar bozorlari turli mamlakatlarda turlicha.

Mijozlarimiz bilan imzolab, biz mahsulotning birinchi versiyasi keltirilgan konfiguratsiyalarda mukammal ishlashiga kafolat beramiz, bundan tashqari, mijozlarimizga mahsulot boshqa konfiguratsiyalarda ishlashi mumkinligini aytamiz, ammo ba'zi muammolar paydo bo'lishi mumkin. Va agar mahsulot va maqsadli auditoriya o'ssa, biz qo'shimcha platformalarni qo'llab-quvvatlashni tahlil qilishimiz va amalga oshirishimiz mumkin. Kelgusida ushbu hujjat ishlab chiqishda va bugfiksda ko'rsatilgan platformalarga e'tibor qaratishimizga imkon beradi.

Sinov rejasi ham dastlab tayyorlanishi va buyurtmachiga etkazilishi kerak. Ushbu hujjatda har bir turdagi tavsiflangan maqsad bilan mahsulotni ishlab chiqarish jarayonida foydalaniladigan barcha sinov turlari bo'lishi kerak. Sinov rejasida QA guruhi test sinovlari, sinov ishlari yoki nazorat varaqalari uchun nimani ishlatishini hal qilishi kerak. Odatda, bu loyihaning davomiyligi va funktsional murakkabligiga bog'liq. Qo'llab-quvvatlanadigan platformalar sinov rejasi bilan ham bog'lanishi kerak. Va nihoyat, sinov rejasida loyihani ishlab chiqish va chiqarilish vaqtidan keyingi sanalarda rejalashtirilgan sinov tadbirlari to'g'risidagi ma'lumotlar bo'lishi kerak.

Test ishlari / nazorat varaqalari har bir loyiha uchun zarur bo'lgan narsadir. Albatta, ushbu materiallarni tayyorlash uchun bir oz vaqt talab etiladi va ushbu hujjatni qo'llab-quvvatlash uchun qo'shimcha vaqt talab etiladi, ammo bu sizga daraxt tanasiga biron bir tur beradi va bu tanadan foydalanib siz osongina tasavvur qilishingiz va yangi sinov stsenariylarini faqat filiallarga qo'shish orqali yaratishingiz mumkin. magistralingiz. Keyinchalik siz tayyorlangan test ishlarini mijozlar tomonida yoki beta-testerlar bilan UAT jamoasi bilan baham ko'rishingiz yoki hatto loyihalarni ishlab chiqish guruhiga sinov misollarini ko'rsatishingiz mumkin. Dev jamoasi test sinovlarini talablarning bir qismi sifatida ishlatishi mumkin va bu ularga ba'zi muammolarni oldini olishga yordam beradi.

Samarali bo'lganda biz juda ko'p TMS-ni sinab ko'rdik va TestRail-ni sinov ishlarini boshqarish va boshqarish uchun eng mashhur, sozlanadigan, tez va qulay vositalardan biri sifatida tanladik. TestRail-dan foydalanish bizga sinov holatlari va nazorat varaqalarini yangilangan holda saqlashga imkon beradi. Biz uchun ushbu vosita juda yaxshi, ammo alternativalar hali ko'p. Bu erda asosiy masala - to'g'ri TMS-dan foydalanish va Google Docs va Spreadsheets-larni sinov holatlari va jurnal jurnallarida ishlatmaslik :)

Release Notes - bizning QA guruhimiz mijozlar uchun tayyorlagan va loyiha haqida haqiqiy ma'lumotlarni o'z ichiga olgan hujjat. Muayyan sprintda qanday funktsiyalar bajarildi, nima davom etmoqda, qanday masalalar, demo qurishni qaerdan va qanday yuklab olish mumkinligi ma'lum. Biz doimo yozuvlarni sprint va ozod qilish orqali tayyorlaymiz. Bu bizning mijozlarimizga rivojlanishning borishi haqida qo'shimcha shaffoflikni beradi.

Izlanish sinovlari

Hech qachon unutilmasligi kerak bo'lgan so'nggi narsa bu Izlanish Testi. Ushbu testning asosiy maqsadi mahsulotingizni yaxshiroq tushunish va unga foydalanuvchilar nuqtai nazaridan qarashdir. Tekshiruv va skriptli testlarni birlashtirish (skriptli test orqali men sinov holatlari yoki varaqlardan foydalanishni nazarda tutaman), tester va foydalanuvchilarning mahsulot haqidagi tasavvurlarini birlashtirgan holda va ish maqsadlarini yodda tutgan holda, ishlayotgan mahsulotingizni iloji boricha mukammal qilishingiz mumkin.

Izlanishlarni sinashning bir qismi sifatida, biz ham sinash usulidan foydalanamiz. Test Flight va Play Console-dan foydalanib, biz odatda loyihadan tashqarida bo'lgan va beta-tester sifatida ishlay oladigan samarali ishlaydigan tashqi testerlarni taklif qilamiz. Bu bizga mahsulot nuqtai nazarini foydalanuvchi nuqtai nazaridan bilib olishga va foydalanishga e'tibor berishga imkon beradi.

Samarali QA eng yaxshi amaliyotlarining qisqacha tavsifi:

  • Biznes maqsadlarini tushuning
  • Qabul qilish mezonlarini aniq qiling
  • Qo'llab-quvvatlaydigan platformalaringizni biling
  • Sinov rejasini tayyorlang
  • Sinov varaqalari / nazorat varaqalaridan foydalaning
  • Uzluksiz integratsiya + uzluksiz joylashtirishdan foydalaning
  • Sinov varaqalari / nazorat varaqalarini yangilab turing
  • Mijozlaringiz bilan reliz eslatmalarini baham ko'ring
  • Tekshiruv sinovlari haqida hech qachon unutmang

O'qiganingiz uchun rahmat! Ko'proq bilishni, rozi bo'lmaslikni yoki biron bir savolingiz bo'lsa, izoh berishdan charchamang :)