Скачиваний:
0
Добавлен:
25.02.2026
Размер:
156.14 Кб
Скачать

14-lekciya. Programmalıq támiynattı islep shıǵıw processinde sapanı basqarıw. Miynetti shólkemlestiriw.

Joba:

1.Islep shıǵıw metodologiyaları (Waterfall, Agile) hám sapanı basqarıw.

2.Kod sapasın támiyinlew usılları: Kodqa sholıw (Code Review) hám Jup programmalastırıw (Pair Programming).

3.Miynetti shólkemlestiriw: Komanda rolleri hám psixologiyalıq aspektler.

4.Sapa metrikaları hám KPI (Key Performance Indicators) islep shıǵıwshılar ushın.

Islep shıǵıw metodologiyaları hám sapa

Sapanı basqarıw (Quality Control) programmalıq támiynattı islep shıǵıw (Software Development) metodologiyasına tikkeley baylanıslı. "Kaskadlı" (Waterfall) metodologiyada sapa basqarıw – bul islep shıǵıwdan keyingi bólek basqısh. Kod jazılıp bolǵannan keyin, testerler onı tekseredi. Bul usıldıń kemshiligi – qáteler kesh tabıladı hám olardı ońlaw qımbatqa túsedi ("1-10-100 qaǵıydası"). Sapa menedjeri (QA) bul modelde "dárwazashı" (gatekeeper) wazıypasın atqaradı: ónim sapalı bolmasa, keyingi basqıshqa ótpeydi.

"Agile" (Iykemli) metodologiyasında (Scrum, Kanban) sapa basqarıw – bul processke integraciyalanǵan úziliksiz is-háreket. Sapa tek testlew basqıshında emes, al hárbir "sprint" (qısqa cikl) ishinde támiyinlenedi. Agile-diń "Definition of Done" (DoD - Pitiw kriteriyası) koncepciyası bar. Wazıypa (Task) tek kod jazılǵanda emes, al testlenip, hújjetlestirilip, standartqa sáykes kelgende ǵana "pitti" dep esaplanadı. Sapa – bul komandanıń ulıwma juwapkershiligi. Agile-de "Test-Driven Development" (TDD) keń qollanıladı. Bul usılda dáslep test jazıladı (ol qulaydı), keyin kod jazıladı (testten ótedi), hám kod jaqsılanadı (refactoring). TDD sapanıń eń basınan ("Shift Left") támiyinleniwin kepilleydi. Sonday-aq, "Behavior-Driven Development" (BDD) usılı biznes talapların (User Stories) testlerge aylandırıp, programmist hám klient arasındaǵı túsinispewshilikti (qátelerdi) azaytadı.

Sapanı basqarıwda "Texnikalıq qarız" (Technical Debt) túsinigi áhmiyetli. Tez islep shıǵıw ushın sapadan (waqıtsha) bas tartıw múmkin, biraq bul "qarızdı" keyinirek "procentleri" menen (qayta islew) tólew kerek. Metodologiyanıń wazıypası – texnikalıq qarızdıń basqarılıwshı dárejede bolıwın

támiyinlew. Waterfall-da qarız kóbinese proekt sońında "jarıladı", al Agile-de ol hár sprintte "tólenip" barıladı.

Kod sapasın támiyinlew: Review hám Pair Programming

Kodtıń sapası – ónim sapasınıń fundamenti. Kod sapasın támiyinlewdiń eń effektli usılı – "Kodqa sholıw" (Code Review). Bul processte bir programmisttiń jazǵan kodın basqa programmist (Reviewer) oqıp shıǵadı. Code Review maqseti – qátelerdi tabıw, kod stili (Coding Style) standartlarına sáykesligin tekseriw hám arxitekturalıq qátelerdiń aldın alıw. Code Review tek "tekseriw" emes, al "bilim almasıw" (Knowledge Sharing) quralı. Jas qánigeler tájiriybelilerden úyrenedi, komanda bir-biriniń kodınan xabardar boladı. Zamanagóy islep shıǵıwda Code Review "Pull Request" (PR) arqalı avtomatlastırılǵan. Kod tiykarǵı bazaǵa (Main Branch) qosılmastan burın, ol minnetli túrde Review-dan ótiwi shárt. Statikalıq analizatorlar (Linter, SonarQube) stilistikalıq qátelerdi (bos orınlar, qawsırmalar) avtomat túrde tekseredi, al adamlar logikalıq hám arxitekturalıq aspektlerge itibar qaratadı. "Ego-less programming" (Menmenliksiz programmalastırıw) – kodqa aytılǵan sındı jeke almay, onı ónimniń sapasın jaqsılaw ushın paydalı dep qabıllaw kerek.

Kod sapasın támiyinlewdiń taǵı bir usılı – "Jup programmalastırıw" (Pair

Programming). Bunda eki programmist bir kompyuterde birge isleydi: biri

("Aydawshı" - Driver) kod jazadı, ekinshisi ("Navigator") kodtı baqlaydı, strategiyanı oylaydı hám qátelerdi izleydi. Olar waqtı-waqtı menen orın almasıp turadı. Pair Programming kodtıń sapasın júdá joqarılatadı (on-line Code Review), biraq eki adamnıń waqtın aladı. Bul usıl quramalı hám qáwipsiz kod jazıwda (mısalı, bank tranzakciyaları) oǵada nátiyjeli.

"Kodtıń iyesi kim?" degen sorawǵa "Jámáátlik iyelik" (Collective Code Ownership) principi juwap beredi. Kodqa heshkim jeke iyelik etpeydi, qálegen adam qálegen jerdi ońlawı múmkin (eger testler ótse). Bul "avtobus faktorın" (Bus Factor – bir adam ketsa, proekt toqtap qalıwı) azaytadı hám kodtıń sapasın hámme ushın birdey áhmiyetli etedi.

Miynetti shólkemlestiriw: Komanda rolleri

Sapalı programma jaratıw ushın miynetti durıs shólkemlestiriw kerek. Komandadaǵı "Roller" anıq bólistiriliwi tiyis. 1) "Team Lead / Tech Lead" – texnikalıq sheshimlerge hám kod sapasına juwapker, mentorlıq qıladı. 2) "Senior Developer" – quramalı wazıypalardı sheshedi, arxitekturanı quradı. 3) "Middle/Junior Developer" – standart wazıypalardı orınlaydı, tájiriybe arttıradı.

4) "QA Engineer" – testlew strategiyasın dúzedi, qátelerdi tabadı. 5) "Project Manager / Scrum Master" – processlerdi basqaradı, tosıqlardı alıp taslaydı.

Komanda "Kros-funkcional" (Cross-functional) bolıwı kerek. Yaǵnıy, komanda ishinde ideyadan baslap relizge shekemgi barlıq basqıshlardı (analiz, dizayn, kod, test, deploy) orınlay alatuǵın qánigeler bolıwı shárt. Sapa ushın tek QA emes, al pútkil komanda juwapker. "Sapa – bólim emes, sapa – bul mádeniyat".

Miynetti shólkemlestiriwde "Psixologiyalıq qáwipsizlik" (Psychological Safety) zárúr. Google kompaniyasınıń izertlewleri ("Project Aristotle") kórsetkenindey, eń nátiyjeli komandalar – bul aǵzaları qáte islewden qorqpaytuǵın, óz pikirin erkin ayta alatuǵın komandalar. Eger programmist qáteni jasırsa (jazalanıwdan qorqıp), sapa túsedi. Qáte – bul úyreniw imkaniyatı. "Blameless Post-Mortem" (Ayıplawsız analiz) ámeliyatı – qáte bolǵanda "Kim qıldı?" emes, "Ne ushın process qátege jol qoydı?" dep talqılaw kerek.

Jumıs ortalıǵı hám "Flow" (Aǵım) jaǵdayı da sapaǵa tásir etedi. Programmistke kod jazıw ushın tınıshlıq hám úzilisiz waqıt kerek. Menedjerlerdiń wazıypası – jıynalıslardı azaytıw hám "Flow"dı qorǵaw. Sonday-aq, "Burnout" (Kásiplik janıw) mashqalasın qadaǵalaw kerek. Sharshaǵan programmist sapasız kod jazadı. Miynetti shólkemlestiriw – bul sapanıń insaniy resursı.

Sapa metrikaları hám KPI

Sapanı basqarıw ushın onı ólshew kerek. Islep shıǵıw processinde túrli "Metrikalar" qollanıladı. 1) "Kod qamtıwı" (Code Coverage) – testler kodtıń neshe procentin teksergenin kórsetedi (maqset > 80%). 2) "Ciklomatikalıq quramalılıq" (Cyclomatic Complexity) – kodtıń qanshelli quramalı ekenin ólsheydi (tómen bolsa jaqsı). 3) "Qáteler tıǵızlıǵı" (Defect Density) – 1000 qatar kodqa qansha qáte tuwrı keledi? 4) "Texnikalıq qarız indeksi" (Technical Debt Ratio) – kodtı ońlawǵa ketetuǵın waqıt. Islep shıǵıwshılar ushın "KPI" (Key Performance Indicators - Tiykarǵı nátiyjelilik kórsetkishleri) qoyıw – názik másele. Eger KPI "jazılǵan kod qatarları" (LOC) bolsa, programmistler kerek emes uzın kod jazadı. Eger KPI "tabılǵan qáteler sanı" bolsa, testerler mayda qátelerdi kóbeytedi. KPI sapaǵa baǵdarlanǵan bolıwı kerek: "Qátelerdiń qaytıp keliw (Reopen) procenti", "Kod Review-dan ótiw waqtı", "Relizdiń turaqlılıǵı".

Metrikalar "Jazalaw" ushın emes, "Jaqsılaw" ushın qollanılıwı kerek. Komanda óziniń "Velocity" (Tezlik) hám "Quality" (Sapa) kórsetkishlerin baqlap, hár sprintte olardı jaqsılawǵa háreket etiwi tiyis. Avtomatlastırılǵan Dashbordlar (Jira, SonarQube) sapanı real waqıt rejiminde kórsetip turıwı kerek.

"Kózge kórinbeytuǵın nárse basqarılmaydı". Sapanı basqarıw – bul balans. Biz "Tezlik", "Arzanlıq" hám "Sapa" (Iron Triangle) arasındaǵı teńsalmaqlılıqtı tabıwımız kerek. "Perfect" (Ideal) kod joq, "Good Enough" (Jetkilikli) kod bar. Islep shıǵıw processinde sapa basqarıw – bul biznes talapların texnikalıq sheberlik penen birlestiriw óneri.

BAQLAW SORAWLARÍ:

1.Agile hám Waterfall metodologiyalarında sapa basqarıw (QA) processiniń ornı qalay ózgeshelenedi?

2.Code Review (Kodqa sholıw) procesiniń kod sapasınan basqa qanday paydası bar?

3.Pair Programming (Jup programmalastırıw) usılınıń artıqmashılıqları hám kemshilikleri qanday?

4."Blameless Post-Mortem" ámeliyatı komandadaǵı psixologiyalıq ortalıqqa qalay tásir etedi?

5.Islep shıǵıwshılar ushın KPI retinde LOC (Kod qatarları sanı) qollanıw ne ushın nadurıs?

Соседние файлы в папке Programmalıq támiynat sapasın támiyinlew