Програмирането често се асоциира с дълги часове писане на код и разрешаване на видно комплексни задачи. За успешното създаване на софтуерна програма, обаче, не е достатъчно умението да „кодиш“ на даден език за програмиране. Процесът е сложен и изисква последователното изпълнение на редица задачи.
Както в програмирането, така и в други области, най-често срещаната грешка при завършването на даден процес или програма е липсата на тест, който да провери дали всички елементи са правилно подредени и функционални. В програмирането, тази стъпка от завършването и пускането на програма е неизбежна. Тестовете могат да се окажат нашите най-добри приятели в програмирането защото именно те имат възможността да посочат къде се крият грешките ни или къде са възникнали “бъгове“, за които трябва да знаем.
Ако за пръв път се сблъскваш с термина софтуерно тестване не се тревожи, нека разгледаме какво носи той като смисъл и защо тази стъпка е основна в програмирането.
Какво означава софтуерно тестване?
Тестването на софтуера се определя като дейност, целяща да провери дали действителните резултати отговарят на очакваните резултати и да се гарантира, че софтуерната система е без дефект. То включва изпълнение на софтуерен компонент или системен компонент за оценка на еднo или повече свойства.
Тестването на софтуер също помага да се идентифицират грешки, пропуски или липсващи изисквания, които биха могли да си противоречатс действителните изисквания. То може да се извърши ръчно или с помощта на автоматизирани инструменти.
Софртуерното тестване представлява:
1) Разследване:
Процесът на тестване трябва да включва така нареченото „разследване“. Може би не винаги знаем какъв ще бъде резултатът, но нашата работа е да разкрием информация, която помага на програмистите или други хора, които участват в проекта, да вземат правилните решения. Процесът на разследване е много повече в сравнение със спецификация, която има очакван резултат.
По време на разследването е необходимо да мислим критично, да задаваме трудни въпроси, да анализираме рисковете, да забележим онези неща, които на пръв поглед изглеждат несъществени, но при внимателно разглеждане често се оказват много по-важни и нуждаещи се от допълнително проучване.
2) Проучване:
Списъкът с изисквания за дадена програма или софтуер никога не е изцяло завършен. Той винаги ще има изисквания, които не са посочени и които биха могли да се приемат или пропускат. Невъзможно е да наете всичко, което софтуерът ще направи предварително. Ето къде идва проучвателното тестване.
Проучвателните тестове се дефинират като едновременно обучение, дизайн и изпълнение на тестове . Тестерът изследва приложението, откри нова информация, изучава я и намира нови неща, които да бъдат тествани.
Тестването на софтуера не трябва да се възприема само като задача, при която тестерът работи използвайки списък с предварително подготвени тестове или тестови случаи. Рядко тестерите работят по критерии, които дават твърд резултат за преминаване или неуспех на софтуера. Ако имаш потребителска история като тестер или набор от налични изисквания, разбира се, е важно да се увериш, че това, което проверяваш, се придържа към тези фактори.
Би могло да е полезно да преоразмериш критериите за приемане като „критерии за отхвърляне“. Когато критериите за приемане не са изпълнени, продуктът не е приемлив, но ако са изпълнени, това не означава, че продуктът няма проблеми.
3) Смекчаване:
Една от причините да тестваме софтуер е да открием проблеми, рискове и друга информация за софтуерен продукт. Тази информация позволява да се предприемат действия, които да гарантират, че крайният потребител няма да бъде засегнат. Действието в следствие на тестване на софтуер може да бъде:
- Поправяне на бъгове
- Преоценка и промяна на първоначалните изисквания
- редоставяне на помощ от потребителя в рамките на продукта
- Създаване на потребителска документация
4) Съобщаване на известни проблеми на заинтересованите страни:
За софтуер от каквато и да е сложност ще бъде невъзможно да се премахнат всички проблеми, с които може да се сблъска потребителят, но чрез тестване можем да се опитаме да намалим риска от възникването на проблеми с които е вероятно да се слъскаме.
Защо се нуждаем от софтуерно тестване?
Както вече споменахме, софтуерното тестване е необходимо , за да се открият грешките в софтуера и да се провери дали софтуерът отговаря на изискванията на клиентите. Това помага на екипа, отговорен за разработка, да отстрани грешките, да достави качествен продукт и да си осигури стабилност в работата с клиента.
В процеса на разработка на софтуер има няколко точки, където човешката грешка може да доведе до софтуер, който не отговаря на изискванията на клиентите.
Например, клиентът или лицето, предоставящо изискванията от името на организацията на клиента, може да не знае какво точно се изисква или може да забрави да предостави някои подробности, които могат да доведат до липсващи функции в софтуера. От друга страна, човекът, който записва изискванията, може да тълкува погрешно или напълно да пропусне изискване, по време на документацията. Също така, по време на фазата на проектиране, ако има проблеми с дизайна, това може да доведе до грешки в бъдеще.
Тестерите могат да пропуснат бъгове по време на тестовата фаза поради човешка грешка, липса на време, недостатъчен опит и т.н. Клиентите може да не разполагат с честотна лента, за да тестват всяка характеристика на продукта и могат да пуснат продукта на крайните си потребители, което може да доведе до намиране на грешки в приложението, когато то вече е в активна фаза.
За да гарантираме, че даден софтуер покрива необходимото ниво на качество е задължително той да мине през софтуерно тестване. Следвайки този принцип, тестерите или програмистите, заели се с тази задача, се уверяват, че всеки един детайл в софтуера е в изрядно състояние и програмата функционира.
Виждаме как човешките грешки са често срещано явление и когато работим с компютри е добре да се придържаме към структурирани процеси за тестване, които да осигурят високо качество и успешност на нашите програми. През последните години софтуерното тестване се превърна в широко търсено умение и днес, то е прекрасна професия, осигуряваща поле за развитие, изява, креативно мислене и високо финансово възнаграждение.
Ако искаш да натрупаш нужните умения по софтуерно тестване за да направиш първите крачки към професия в областта, запиши се на курс по софтуерно тестване в компютърно образователен център Progress.