Нивата на софтуерното тестване и ползата от автоматизацията му
Как да разберем дали нещо работи правилно? Много просто – ще го изпробваме. Ако е счупено – ще го поправим. Но ако го направим сто пъти подред, може да стане леко досадно, и по-лошо - да изпуснем нещо много малко, което впоследствие да опропасти цялата свършена работа. Точно затова софтуерните инженери автоматизират голяма част от тези процеси.
Автоматизираното тестване е всъщност поредица от скриптове, които минават през различни сценарии и преглеждат дали резултатите отговарят на очакваното. Ако не отговарят, скриптовете известяват за грешката, а инженерът я поправя. Цялата операция се извършва изцяло от компютъра, който може да премине през хиляди сценарии само за секунди и по този начин да засече и предотврати най-различни дефекти, без да се налага програмистът да минава през една и съща линия код отново и отново.
Софтуерното тестване се случва на няколко нива – компонентно тестване (unit testing), тестване на интеграционно ниво (integration) и системно тестване (end-to-end testing).
Компонентно тестване (Unit testing)
Чрез този вид тестване се проверяват отделни единици (компоненти) от код – най-малките градивни частици, които могат да бъдат тествани самостоятелно. Например, ако желаете да тествате компонент, който визуализира потребителско име и аватар, ще искате да проверите дали елементите се показват правилно, без значение в каква среда е поставен компонента. Важното е да работи правилно в изолирана среда. Ако снимката излиза и името се изписва – всичко е наред.
Тестване на интеграционно ниво (integration)
Този тип проверка е подобно на компонентното, но не се проверява само един компонент, а цяла група. Взимат се модулите, които са преминали през компонентното тестване, групират се и им се дават задачите, които са предвидени да изпълняват. Целта е да се разбере дали всяка единица взаимодейства с останалите както трябва.
Системно тестване (end-to-end testing)
Системното тестване, както можете да предположите, прави доста по-обстойна проверка на написания код. Този вид тестване цели да премине през цялостната апликация и да провери функционалността ѝ. Той пресъздава взаимодействието между потребителя и апликацията. Пример за системно тестване би било влизане на заглавната страница, кликване върху бутона Login, въвеждане на име и парола и влизане в личните данни на профила. Така се проверя последователността на действия и плавността между преминаването от едно към друго.
След пълното завършване, апликацията ще премине през ръцете на QA специалисти, които ще проверят дали всичко работи както трябва, но е невъзможно да се очаква от тях да засекат стоиците малки бъгове на най-ниските нива. Именно тогава автоматизацията е най-добрият ни приятел. Естествено, за да работи автоматизацията правилно, трябва да сме подготвили много добра стратегия.
В предстоящия ни курс QA Automation ще надградим тези знания и ще се задълбочим в автоматизирането на процесите. Ако вие имате познания по осигуряване качеството на софтуера, задълбочени познания върху обектно-ориентиран език за програмиране (C#, Python, Java, C++), базови познания върху Software Development Life Cycle (SDLC) и основни умения за тестване на уеб базирани системи, побързайте да се запишете сега! Курсът стартира на 12 януари!