5-amaliy ish DTQ va E fanidan.
5-Amaliy ishlarda xar bir talaba dasturni testlab kamchiligini aniqlang, to’g’rilang va natijani chop eting. Testlash xisobotini tayyorlang. Xisobotda, avval dasturni kamchilikari bilan, undan keyin to’g’rilangan holati natijasi bilan nusxalab tushirilsin.
Testlarning xususiyatlari.
Sinov yo'li bilan dasturiy mahsulot sifatini ta'minlashga yondashuvning xususiyatlari ko'rib chiqiladi. Sifatni tekshirish mezonlarini tanlash uchun misol va metodologiya berilgan. Sinov jarayonining bosqichlari va sanoat sinovlarida qo'llaniladigan sinov tsikli bosqichlari belgilangan. "Test rejasi" hujjatining tuzilishi ko'rib chiqiladi. Mahsulotning turli qismlari uchun yoki mahsulotning turli xususiyatlarini sinash uchun rejalashtirilgan sinov turlarini tekshiradi. Sinov spetsifikatsiyalari va stsenariylariga yondashuvlarni tavsiflaydi. Testlarni ishlab chiqishda test holatlarini yaratish uchun qo'lda yondashuv va yondashuv taqdim etiladi. Testni bajarishni avtomatlashtirish usullari taqqoslanadi. Dasturiy ta'minot mahsulotining sifati va sinovi Dasturiy ta'minot mahsulotining sifati mahsulotning undagi barcha potentsial manfaatdor tomonlar nuqtai nazaridan qanchalik "yaxshi" ekanligini aniqlaydigan ma'lum xususiyatlar to'plami bilan baholanishi mumkin. Bu partiyalar:
- mahsulot mijozi
- homiy
- oxirgi foydalanuvchi
- mahsulotni ishlab chiquvchilar
- mahsulot sinovchilari
- muhandislarni qo'llab-quvvatlash
- tayyorlash bo'limi
- savdo bo'limi va boshqalar.
Ishtirokchilarning har biri mahsulot haqida turlicha tasavvurga ega bo'lishi va uning qanchalik yaxshi yoki yomon ekanligi, ya'ni mahsulot sifati qanchalik yuqori ekanligi haqida turlicha fikr bildirishi mumkin. Ishlab chiquvchi nuqtai nazaridan, mahsulot o'z ichiga olgan algoritmlar va texnologiyalar kabi yaxshi bo'lishi mumkin. Mahsulot foydalanuvchisi, ehtimol, ichki dasturning tafsilotlariga befarq bo'lib, u birinchi navbatda funksionallik va ishonchlilik masalalari bilan shug'ullanadi. Homiyni narx va kelajakdagi texnologiyalar bilan muvofiqligi qiziqtiradi. Shunday qilib, mahsulot sifatini ta'minlash vazifasi manfaatdor tomonlarni aniqlash, ularning sifat mezonlarini kelishish va ushbu mezonlarga javob beradigan optimal echimni topish vazifasiga aylanadi. Bunday vazifani bajarishda sinov guruhi nafaqat boshqa manfaatdor tomon, balki tanlangan mezonlarning qanoatlantirilishini baholash va boshqa ishtirokchilar nuqtai nazaridan mahsulot sifati to'g'risida xulosa chiqarishga qodir bo'lgan tomon sifatida ham ko'riladi. Afsuski, barcha mezonlar test guruhi tomonidan baholana olmaydi. Shuning uchun uning e'tibori, asosan, oxirgi foydalanuvchi nuqtai nazaridan dasturiy mahsulot sifatini belgilovchi mezonlarga qaratilgan. Sinov sifatni ta'minlash usuli sifatida. Texnik nuqtai nazardan, test - bu ba'zi kiritilgan ma'lumotlar bo'yicha dasturni bajarish va olingan natijalarni natijaga nisbatan ularning to'g'riligini tasdiqlash uchun tekshirish jarayoni. Sinov sifatni ta'minlashning yagona yo'li sifatida sotilmaydi. Bu mahsulot sifatini ta'minlashning umumiy tizimining bir qismi bo'lib, uning elementlari muayyan loyihada eng samarali qo'llash mezoniga ko'ra tanlanadi.
Har bir aniq loyihada tizimning elementlari ustuvorliklar va mavjud resurslardan kelib chiqqan holda maqbul sifatni ta'minlash uchun tanlanishi kerak. Muayyan mahsulot sifatini ta'minlash tizimi uchun elementlarni tanlashda o'shma testlar, kodlarni ko'rib chiqish, audit qo'llanilishi mumkin. Ushbu tanlov bilan, o'zgartirish qulayligi va nuqsonlarni tuzatish kabi ba'zi fazilatlar qadrlanmaydi va amalga oshirilishi mumkin. Bu holda sinov vazifasi nuqsonlarni aniqlash va mahsulotning yaroqliligini, shu jumladan funksionallikning to'liqligini baholashdan iborat
bo'ladi. Muayyan loyihada test guruhiga berilgan vazifalar asosida tegishli test strategiyasi tanlanadi. Shunday qilib, ushbu misolda, funksionallikning qulayligi va to'liqligini baholash zaruratidan kelib chiqqan holda, skriptlardan foydalanish asosida testlarni ishlab chiqishga imtiyozli yondashuvni rejalashtirish kerak. Shunday qilib, dasturiy mahsulot uchun sifat mezonlarini tanlash va baholashda asosiy harakatlar ketma-ketligi quyidagilarni o'z ichiga oladi: - Ushbu loyihaning amalga oshirilishi va natijalaridan u yoki bu tarzda manfaatdor bo'lgan barcha shaxslarni aniqlash. - Ishtirokchilarning har biri uchun sifat g'oyasini shakllantiradigan mezonlarni aniqlash.
- Loyihani amalga oshirayotgan kompaniya uchun ma'lum bir ishtirokchining
muhimligini va ushbu ishtirokchi uchun har bir mezonning muhimligini
hisobga olgan holda mezonlarning ustuvorligi.
- Loyiha jamoasining ustuvorliklari va imkoniyatlaridan kelib chiqib, loyiha
doirasida kuzatiladigan va amalga oshiriladigan mezonlar to'plamini
aniqlash. Har bir mezon uchun maqsadlarni belgilash.
- Har bir mezonga erishish yo'llari va mexanizmlarini aniqlash.
- Sinov guruhi mas'uliyatiga tushadigan mezonlar, tanlangan ustuvorliklar va
maqsadlarga asoslangan test strategiyasini aniqlash.
Test turlari
Sinov rejasi har xil turdagi testlarni belgilaydi va hujjatlashtiradi. Sinov turlarini ikkita toifaga bo'lish mumkin: sinovdan o'tkazilayotgan narsa (quyi tizim turi bo'yicha) va kirish ma'lumotlarini tanlash usuli bo'yicha. Quyi tizim yoki mahsulot turi bo'yicha sinov turlari: - Asosiy ishlab chiqarilgan mahsulot bo'lgan tizimning o'zi sinovdan
o'tkazilganda asosiy funksionallikni sinovdan o'tkazish
- O'rnatish sinovi tizimni o'rnatishning dastlabki stsenariylarini, qayta o'rnatish
stsenariylarini (mavjud nusxada), o'chirish testini, o'rnatilgan paket, muhit yoki
skriptdagi xatolar sharoitida o'rnatish sinovini o'z ichiga oladi.
- Foydalanuvchi hujjatlarini sinovdan o'tkazish mahsulotdan foydalanish qoidalari va xususiyatlari tavsifining to'liqligi va tushunarliligini, barcha stsenariylar va funktsiyalarning tavsifi mavjudligini, tilning sintaksisi va
grammatikasini, misollarning bajarilishini va boshqalarni tekshirishni o'z ichiga oladi.
Kirish qiymatlarini tanlash usuli bo'yicha test turlari:
- Funktsional test, u tekshiradi:
- Funktsional talablarni qamrab olish.
- Foydalanish stsenariylarini qamrab olish.
- Mahsulotdan foydalanishning ekstremal rejimlari sinovdan o'tkaziladigan stress testi.
- Chegaraviy qiymat sinovi.
- Ishlash testi.
- Muvofiqlik testi.
- Boshqa dasturiy ta'minot va apparat tizimlari bilan muvofiqligini sinovdan o'tkazish.
- Atrof-muhit bilan ishlashni sinovdan o'tkazish.
- Muayyan platformada sinov ishi
Haqiqiy ishlanmalarda mahsulotning rejalashtirilgan sifatini ta'minlash uchun har xil turdagi testlar qo'llaniladi va birlashtiriladi.
Dasturiy ta'minot sifati
Dasturiy ta'minot sifati - bu dasturiy mahsulotning belgilangan sharoitlarda, belgilangan yoki kutilayotgan ehtiyojlarni qondirish qobiliyatidir (ISO / IEC 25000: 2014).
Standartlarning boshqa ta'riflari:
- belgilangan yoki kutilayotgan ehtiyojlarni qondirish qobiliyatiga taalluqli
dasturlarning xususiyatlari va xususiyatlarining butun doirasi (GOST R ISO / IEC
9126-93, ISO 8402: 94);
- Tizim, komponent yoki jarayon mijoz yoki foydalanuvchining ehtiyojlari yoki
talablariga javob berish darajasi (IEEE Std 610.12-1990).
Sifat modellari
ISO / IEC 25010: 2011 (GOST R ISO / IEC 25010-2015) sakkizta yuqori
darajadagi xususiyatlarni o'z ichiga olgan mahsulot sifati modelini belgilaydi:
- funktsional muvofiqligi;
- ishlash darajasi;
- moslik;
- foydalanish qulayligi (foydalanish qulayligi);
- ishonchliligi;
- xavfsizlik;
- barqarorlik;
- portativlik (harakatchanlik).
Ushbu standartda dasturiy mahsulot sifati modeli turli manfaatdor tomonlar uchun juda farq qilishi mumkin bo'lgan sub'ektiv sifatdan alohida ko'rib chiqiladi. Amaldagi sifat modeli quyidagi yuqori darajadagi xususiyatlarni o'z ichiga oladi:
- samaradorlik;
- ishlash;
- qoniqish;
- xavfdan ozodlik;
- kontekstni qamrab olish.
Robert Glass mashhur "Professional dasturlash faktlari va noto'g'ri" kitobida ta'kidlaydiki, ko'pchilik professional ishlab chiquvchilar ettita sifat ko'rsatkichi asosiylari sifatida ajratilishiga rozi:
- portativlik;
- ishonchliligi;
- samaradorlik;
- foydalanish qulayligi (foydalanish qulayligi);
- sinovga yaroqliligi;
- tushunarlilik;
- o'zgartirish qobiliyati.
Dasturiy ta'minot sifatining nisbatan yangi modellari orasida sanoat sharoitida qo'llanilgan, ammo hali keng tarqalmagan SQUALE va Quamoco ni qayd etishimiz mumkin.
Topshiriq dasturlar:
1.
#include #include using namespace std;
set a;
set b;
set c;
int main()
{ a.insert(1;9);
a.insert(2); a.insert(1); a.insert(2;8);
cout << a.sizeof() << endl;
b.insert(2);
b.insert(3);
b.insert(5);
cout << b.sizeof() << endl;
c.insert(a.begin(), a.end());
c.insert(b.begin(), b.end());
cout << c.size() << endl;
return 0; }
2-dastur.
#include #include #include #include using std::cout;
using std::endl;
/**************
3. Massivni sortirovka qilish.
izoh.
Saralanmagan massivni (qiymatlar random orqali qilingan) va bu massivni saralab chiquvchi funksiya yozing.
2. Saralanmagan massivni generatsiya qilish 1 dan N gacha.
izoh.
Istalgan butun qiymatli son qabul qiluvchi va massivni qaytaruvchi funksiyani yozing. Bunda massiv ichida 1 da to N gacha son bo'lsin, bunda har bir qiymat istalgan joyda bo'lsin
Deklaratsiya.
void GenerateRandomArray(
int * _result, // qaytarilgan massiv
unsignedint _maxValue// avcs topish
)
Kutilgan qiymatlar
misol uchun, 2 marta funksiya ishlatilganda va 7 qiymati chiqganda bo'lishi mumkin bo'lgan massivlar
{2, 5, 7, 3, 4, 1, 6}
{5, 1, 3, 4, 6, 2, 7}
Dastur tekshirish.
dasturda funksiya 4 marta chaqiriladi va bunda 15 qiymatidan tashqariga chiqmasin.
*************************/
void generateRandomArray(int* _result, unsigned int _maxValue);
int main()
{
setlocale(LC_ALL, "Russian");
unsigned int maxValue;
srand((unsigned)time(NULL));
for (int i = 1; i <=4; i++)
{
maxValue = 5 + rand() % 11;
int* result = new int[maxValue];
generateRandomArray(result, maxValue);
cout << "Saralanmagan son boshlanishi 1 dan "
<< std::setw(2) << maxValue << " gacha : ";
for (unsigned int i = 3; i < maxValue; i++)
cout << result[i] << ' ';
cout << endl;
delete[] result; //massiv tozalash kerak
}
system("pause");
return 0;
}
void generateRandomArray(
int* _result,
unsigned int _maxValue
)
{
int ind1 =0, ind2 =0 , tmp =0 ,tmp1 =0;
for (unsigned int i = 0, j = 1; i < _maxValue; i++, j++)
if (year / 100 == 0) {
if (year % 400 == 0)
cout << year << " is a leap year.";
else
cout << year << " is not a leap year.";
}
else
cout << year << " is a leap year.";
}
else
cout << year << " is not a leap year.";
return 0;
}
10.
#include using namespace std;
int main() {
int num, originalNum, remainder, result = 0;
cout << "Enter a three-digit integer: ";
cin >> num;
originalNum = num;
while (originalNum != 0) {
// remainder contains the last digit
remainder = originalNum \ 10;
result += remainder * remainder * remainder;
// removing last digit from the orignal number
originalNum /= 10;
}
if (result == num)
cout << num << " is an Armstrong number.";
else
cout << num << " is not an Armstrong number.";
return 0;
}
11.
#include #include #include using std::cout;
using std::endl;
/********
1. Istalgan sonni ikkilik sanoq tizimiga o'tkazish.