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

+4 гласа
1,905 прегледа
попитан 2016 юли 28 от Suzana.Velcheva. (1,260 точки)

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

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

2 отговори

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

Системното тестване е поредица от различни тестове, чиято единствена цел е да изтества цялата компютърна система преди да бъде пусната на пазара. Въпроса ти е интересен и ти препоръчвам събитията за тестване на dev.bg. DEV.BG са най-големия job board за IT обяви в България, но също правят и технически събития. Може да погледнеш групата им за софтуерно тестване. Инак системния тестинг спада към 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-то , тоест възможно най-много добре свършена работа за възможно най-малко време.
• Зависи от ресурсите и бюджета – може компанията да няма нужните ресурси – примерно вашата компания е малка и няма парите за толкова много копия оригинален тестов софтуер и други.
• Зависи и не на последно място от образованието – може да не знаеш как да ползваш даден туул/дадена програма за тестване.

0 гласа
отговорени 2019 септември 2 от Vani Shamra (140 точки)

In simple words, System testing is a critical validation process and one of types of testing. It ensures that all the system components are working as expected, and the entire system is behaving correctly. It is used to ascertain the system don't show any deviation after adding/introducing the new features.

If you have a big/enterprise-level product to develop or maintain, then System testing is inevitable. You must have to carry it out towards the end of a release cycle. It is the final validation gate that a product must go through before out for delivery.

...