Добавил:
bekan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Programmalıq támiynat sapasın támiyinlew / 6-ameliy_ST
.pdf
6-ámeliy. Programmalıq támiynattı testlew túrleri. Aq hám qara qutı
testlewi. Testlerdi jobalastırıw.
Jumıstıń maqseti: Programmalıq támiynattı testlewdiń (Software Testing)
tiykarǵı usılların úyreniw. "Aq qutı" (White Box) hám "Qara qutı" (Black Box)
testlew texnikaların ámeliyatta qollanıw. Birlik testlerdi (Unit Tests) jazıw, test
scenariylerin (Test Cases) dúziw hám kodtıń qamtılıwın (Code Coverage)
analizlew kónlikpelerin qáliplestiriw.
Teoriyalıq bólim:
1. Testlew túrleri:
Funkcional: Ne isleytuǵının tekseriw.
Funkcional emes: Qalay isleytuǵının (tezlik, qáwipsizlik) tekseriw.
2. Aq qutı (White Box): Ishki kodtı, logikanı, tarmaqlanıwlardı (if-else)
tekseriw. Tester kodtı biledi.
3. Qara qutı (Black Box): Tek Kirisiw (Input) hám Shıǵıw (Output)
tekseriledi. Ishki kod belgisiz.
4. Test jobalastırıw: Test Plan, Test Case, Bug Report.
ÁMELIY BÓLIM:
C++ kodların testlew mısalların kórip shıǵamız.
1-mısal: Aq qutı testlewi (Unit Test)
Másele: `max(a, b)` funkciyasınıń barlıq tarmaqlanıwların tekseriw.
Kod:
int max(int a, int b) {
if (a > b) return a; // 1-tarmaq
else return b; // 2-tarmaq
}
Testler:
1. `max(10, 5) -> 10` (1-tarmaqqa kirdi).
2. `max(5, 10) -> 10` (2-tarmaqqa kirdi).

3. `max(5, 5) -> 5` (2-tarmaq, shegara).
2-mısal: Qara qutı testlewi (Ekvivalentlik klassları)
Másele: `baha(ball)` funkciyası (0-100).
Ekvivalentlik klassları:
* Teris: -1, -50 (Qáte).
* Durıs: 0-100 (50, 75).
* Úlken: 101, 150 (Qáte).
Testler: `baha(-1)`, `baha(50)`, `baha(101)`.
3-mısal: Test Case dúziw
Test Case #1: Login.
* Maqset: Durıs parol menen kiriw.
* Kirisiw: User="admin", Pass="12345".
* Kútilgen nátiyje: "Xosh keldińiz".
* Haqıyqıy nátiyje: (Programma orınlanǵannan keyin jazıladı).
4-mısal: Assertions (Tastıyıqlaw)
C++ te `assert` arqalı avtomat tekseriw.
Kod:
#include <cassert>
int add(int a, int b) { return a + b; }
int main() {
assert(add(2, 3) == 5); // Durıs

assert(add(-1, 1) == 0); // Durıs
// assert(add(2, 2) == 5); // Qáte! Programma toqtaydı.
return 0;
}
5-mısal: Shegaralıq mánisler (Boundary Value Analysis)
Másele: Massiv (uzınlıǵı 5).
Shegaralar:
* Index -1 (Qáte).
* Index 0 (Min).
* Index 4 (Max).
* Index 5 (Qáte).
ÁMELIY TAPSÍRMALAR
1-tapsırma: Birlik Test (Aq qutı).
`isEven(int n)` (jup san) funkciyasın jazıń.
Oǵan 3 test (Unit Test) jazıń: 1) Jup san, 2) Taq san, 3) 0.
2-tapsırma: Ekvivalentlik klassları (Qara qutı).
"Jas tekseriw" funkciyası (18-65 jas aralıǵı jumısqa alınadı).
Ekvivalent klasslardı anıqlań hám hár birine 1 test mánisin tańlań (Mısalı: 10, 30,
80).
3-tapsırma: Test Case.
"Registraciya forması" (Email, Parol) ushın 2 Test Case (Unamlı hám Unamsız)
jazıń. (Kestede: ID, Maqset, Qádemler, Kútilgen nátiyje).

4-tapsırma: Shegaralıq analiz.
`substring(str, start, length)` funkciyası ushın shegaralıq mánislerdi anıqlań.
(start=0, start=length-1, length=0).
5-tapsırma: Test scenariyi.
Bankomat sistemasın testlew ushın "Aqsha sheshiw" scenariyin jazıń.
1. Karta salıw.
2. Pin kod jazıw (Qáte/Durıs).
3. Summa tańlaw (Balans jetkilikli/Jetkiliksiz).
4. Chek alıw.
Соседние файлы в папке Programmalıq támiynat sapasın támiyinlew
