Скачиваний:
0
Добавлен:
20.09.2026
Размер:
244 Кб
Скачать
☆
9-ámeliy jumıs. Programmalıq támiynat talapların testlew. Testlerdi
islep shıǵıw.
Jumıstıń maqseti: Programmalıq támiynat talapların (Requirements)
tekseriw hám olardı testlew ushın test scenariylerin (Test Cases) islep shıǵıw.
Talaplardıń sapasın (Validation) bahalaw, testlewdiń "V-model"i menen islesiw
hám test qamtıwın (Test Coverage) analizlew. Talaplardan testke (Traceability)
ótiw hám "Test-Driven Development" (TDD) usılın ámeliyatta qollanıw.
Teoriyalıq bólim:
tekseriw (Static Testing).
2. Traceability (Izge tusiw): Talap -> Test Case -> Kod baylanısı.
3. Test Case (Test scenariyi): ID, Kirisiw, Háreket, Kútilgen nátiyje.
4. TDD: Test -> Kod -> Refactor.
ÁMELIY BÓLIM:
Talaplardı analizleymiz hám C++ kodı ushın testler jazamız. Talaplar analizi (Review) Talap: "Paydalanıwshı jasın kirgizsin". (Jaman talap). Sorawlar: * Qanday tip? (San ba, tekst pe?) * Shegaralar qanday? (0-150 jas).
* Teris san bolsa ne boladı?
Dúzetilgen Talap: "Jası pútin san bolıwı kerek, 0 den 120 ǵa shekem. Eger qáte
bolsa, 'Qáte jas' xabarı shıǵıwı kerek." Test Case Dúziw Talap: "Parol 8 belgiden kem bolmasın hám san bolıwı kerek".
| ID | Kirisiw (Parol) | Kútilgen Nátiyje | Tipi |
|----|----------------|------------------|------|
| T1 | "pass1234" | Qabıl etiledi | Positive |
| T2 | "short1" | Qáte (Uzınlıq) | Negative |
| T3 | "password" | Qáte (San joq) | Negative |
| T4 | "12345678" | Qabıl etiledi | Positive |
TDD (Test-Driven Development) Mısalı Másele: `isPrime(n)` funkciyasın jaratıw. 1-qádem: Test jazıw (Qulaydı).
#include <cassert>
bool isPrime(int n);
int main() {
assert(isPrime(7) == true);
assert(isPrime(4) == false);
assert(isPrime(1) == false); // Shegara
return 0;
}
2-qádem: Minimal kod jazıw (Test ótedi).
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
Traceability Matrix (Sáykeslik kestesi)
| Talap ID | Talap Táriypi | Test Case ID |
|----------|---------------|--------------|
| R-01 | Parol uzınlıǵı > 8 | TC-01, TC-02 |
| R-02 | Parol san bolıwı kerek | TC-03 |
Bul keste barlıq talaplardıń testlengenin dálilleydi.
Mock Object (Test ushın imitaciya) Másele: `WeatherService` ti testlew (Internet joq).
Kod:
class IWeather {
public:
virtual int getTemp() = 0;
};
class MockWeather : public IWeather {
public:
int getTemp() override { return 25; } // Feyk maǵlıwmat
};
void testApp(IWeather* w) {
if (w->getTemp() > 20) cout << "Kún ıssı";
}
int main() {
MockWeather mock;
testApp(&mock); // Haqıyqıy servissiz testledik
return 0;
}
ÁMELIY TAPSÍRMALAR
1-tapsırma: Talaplardı testlew.
Talap: "Sistema login qabıllawı kerek". Bul talaptaǵı 3 kemshilikti tabıń hám onı "SMART" formatında qayta jazıń.
2-tapsırma: Test Case dúziw.
"Kalkulyator bóliw ámeli" ushın 4 test case jazıń (Kestede).
1. Normal (10/2).
2. Bólshek (5/2).
3. Nolge bóliw (5/0).
4. Noldi bóliw (0/5).
3-tapsırma: TDD (Faktorial).
`factorial(n)` funkciyası ushın dáslep `assert` testlerin jazıń (-1, 0, 1, 5 ushın). Keyin kodtı jazıń.
4-tapsırma: Birlik test (Unit Test).
`string reverseString(string s)` funkciyasın jazıń. Oǵan tómendegi testlerdi qollanıń:
1. "Hello" -> "olleH".
2. "" (Bos) -> "".
3. "A" -> "A".
Barlıq testler ótkenin skrinshot etiń.
Соседние файлы в папке Programmalıq támiynat sapasın támiyinlew