Какво е “системно тестване“?

+3 гласа
555 прегледа
попитан 2016 юли 28 в Тестване на софтуер от Suzana.Velcheva. (1,250 точки)

Някой може ли да ми обясни малко повече за системното тестване? + какво представляват:

Usability testing, Load testing, Regressive testing , Recovery testing, Migration testing, Functional testing , Hardware/Software testing

1 отговор

+2 гласа
отговорени 2016 юли 29 от Daniel Ivanov (11,160 точки)
редактиран 2016 август 27 от Daniel Ivanov

Системното тестване е поредица от различни тестове, чиято единствена цел е да изтества цялата компютърна система преди да бъде пусната на пазара.
Системния тестинг спада към black box testing категорията на софтуерното тестване.
Какво постигаме със системното тестване?
Тестват се следните неща:
• Тестване на напълно интегрираните проложения, включвайки външната периферия с цел проверка на това как компонентите си взаимодействат един с друг и как взаимодействат с цялата система.Нарича се все още End to End scenario testing. Понеже е проверка на цялостната система се тестват вече компонентите, които са минали Integration testing-а .
• Проверка на всеки input (всяко позволено въвеждане), за да се провери дали output-а или това, което ви връща е наистина вярно.
• Тестване на това дали клиентите са доволни от приложението.
 
 
 
Каква е йерархията на софтуерното тестване?


Като при почти всеки технически процес и софтуерното тестване си има свой предопределен ред, в който нещата трябва да бъдат направени. Това, което съм ти направил по-долу е списък с категории на софтуерното тестване, подредено в хронологичен ред. Това са стъпките, през който се минава, за да се изтества един продукт и да може да се пусне на пазара:
Unit testing (тестване на на единицата) – тестване на всеки един модул или блок на кода по време на разработване (develop-мънт). Юнит тестването обикновено се прави от програмиста, който пише кода.
Integration testing- тестването се прави преди, по време и след интеграцията на всеки един нов модул към компютърната система. Прави се на всеки индивидуален фрагмент. Един софтуер може да има няколко различни фрагмента/модула, които обикновено са правени от различни програмисти и затова е важно да се тества влиянието на всеки 1 от тях върху другите и цялата система.
System testing –  това го казахме.
Acceptance testing (тестване за одобрение) – бета тестване на продукта, направено от самите крайни потребители.
 
 
Типове системно тестване


Има повече от 50 вида системно тестване, ако решиш можеш да ги видиш тук. Не е пълен, има още 4-5 някъде, които не са сложени в списъка, но да не се отплескваме от темата. Най-често срещаните в големите компании са тези:
1. Usability testing – тестване за използваемост – насочено е най-вече върху това колко лесно потребителя може да използва даденото приложение, с други думи дали клиентът може да го използва и ако някои неща изглеждат като затруднения- те да бъдат премахнати или улеснени.
2. Load testing – прави се, за да се види как ще се държи програмата при реални обстоятелства (например с голям брой потребители, което би довело до натоварена мрежа и т.н.)
3. Regressive testing – цъкни, там съм обяснил какво означава :)
4. Recovery testing – букв. превод „тестване на възстановяването на софтуера“ – прави се, за да се види дали едно софтуерно решение е надеждно и дали може да се възстанови след неизправности в системата – било то спиране на тока, спиране на интернета или при повреда на хардуера,хакване и т.н.
5. Migration testing – букв. превод „миграционно тестване“ – прави се, за да се види дали един софтуер може да бъде преместен  от по-стара система инфраструктура към по-нова без проблеми.
6. Functional testing – функционално тестване – още познато като тестване на пълната функционалност на системата и има за цел да провери дали случайно има липсващи функции, които биха били нужни, за да се постигне пълната функционалност на приложението.
7. Hardware/Software testing – хардуерно и софтуерно тестване – Известните ни IBM (International Business Machines) го наричат „HW/SW Testing”. Тук тестърът се фокусира върху взаимодействието м/у хардуера и софтуера по време на системното тестване.
 
На въпроса “Кой типове системно тестване да използвам?“ отговарям така:
Има над 50 вида тестване, както вече казах и дадох и линкче и кои от тях да ползваш се определя от следните неща:
• Зависи за кого работиш – всяка компания има своя практика и използва различни типове – те ти ги определят, ти просто работиш с тях.
• Зависи от времето, което имаш за тестване. Може и да успееш да използваш и 50-те и няколко там типа, но дали ще имаш времето? Ключов фактор в програмирането и тестването е efficiency-то , тоест възможно най-много добре свършена работа за възможно най-малко време.
• Зависи от ресурсите и бюджета – може компанията да няма нужните ресурси – примерно вашата компания е малка и няма парите за толкова много копия оригинален тестов софтуер и други.
• Зависи и не на последно място от образованието – може да не знаеш как да ползваш даден туул/дадена програма за тестване.

...