Тестването “Smoke testing” е процес, който се използва за тестване на софтуер, за да се определи дали внедрената софтуерна компилация е стабилна или не.
Когато тествате софтуера, извършвате серия от тестове, предназначени да оценят всяка от основните функционалности на софтуера.
Инструментите за тестване “Smoke” проверяват дали най-важните функции на софтуера работят. Съществуват множество различни подходи към димното тестване, а съвременните технологии правят автоматизираното димно тестване възможно за повечето софтуерни продукти.
В тази статия ще се потопим в димното тестване, за да разгледаме видовете, процесите и подходите към димното тестване, които използват софтуерните тестери. Ще разгледаме и съвременните инструменти за димно тестване, включително автоматизацията на димното тестване.
Накратко, ще научите всичко, което някога ще ви е необходимо да знаете за изпитването на дим.
Какво представлява димното тестване в софтуерното инженерство?
Тестването “Smoke” е процес на тестване на софтуера, за да се гарантира, че той отговаря на основните изисквания за функционалност и стабилност. По същество това е вид миниатюрно, бързо регресионно тестване, което включва тестване на най-важните функции на софтуера, за да се уверите, че те работят на базово ниво.
Тестването на димки е важна ранна стъпка в процеса на осигуряване на качеството, тъй като показва дали екипът трябва да продължи с по-нататъшно тестване или да върне продукта на разработчиците незабавно.
Ако продуктът не премине успешно димния тест, това означава, че първоначалната версия има съществени недостатъци, които трябва да бъдат отстранени, преди да се пристъпи към по-нататъшно тестване.
Кога е необходимо да се направи проверка на димността?
Тестваме софтуера на пулверизация, когато се разработват нови функционалности и се интегрират в съществуваща компилация, както и преди новата компилация да бъде внедрена в QA. Извършването на “smoke testing” на този етап предотвратява разхищението на пари и други ресурси за тестване на качеството на софтуера със сериозни проблеми.
За да се извърши тест за проверка на качеството, екипът по разработката разполага новата софтуерна сглобка в отдела за проверка на качеството и подгрупа от тестови случаи се взема и изпълнява върху сглобката. Екипът по осигуряване на качеството тества приложението по отношение на най-важните му функционалности. Ако тестът за проверка на качеството премине успешно, екипът за осигуряване на качеството ще продължи с функционалното тестване, а ако то е неуспешно, компилацията се предава обратно на екипа за разработка за по-нататъшно развитие.
Подобни тестове се извършват всеки път, когато се добавят нови функции към дадена софтуерна компилация.
Възможно е екипите за осигуряване на качеството да тестват софтуера и в други случаи, като например:
● Преди да предадете нов код в хранилище
● Преди голяма серия от тестове, включително тестване за регресия и приемане
● След разгръщане на нова софтуерна компилация
Ако не извършите “smoke test” в тези моменти, може да се окаже, че на по-късни етапи от тестването на функционалността ще откриете сериозни дефекти, които могат да повлияят на датата на пускане на новата версия или да причинят по-сериозни нарушения в графика.
Кога не е необходимо да правите димни тестове
При тестването на софтуер е важно да се извършва димково тестване винаги, когато се правят промени в софтуерния код или се добавят нови функции към дадена компилация.
Това е също така важна подготвителна стъпка за тестване на функционалността, тъй като не позволява на екипите по осигуряване на качеството да губят времето си за тестване на софтуер, който не е готов.
Ако софтуерът ви не отговаря на тези критерии, може да не се налага да извършвате димни тестове на този етап… въпреки че автоматизираните инструменти за димни тестове позволяват лесно и рентабилно да се извършват редовни димни тестове, за да се гарантира, че софтуерът винаги функционира правилно.
Кой участва в изпитването на дим
Тестването на пушека се извършва от инженерите по осигуряване на качеството или от ръководителя по осигуряване на качеството; това е първият етап от тестването на осигуряването на качеството и се извършва в среда за осигуряване на качеството.
Екипът по осигуряване на качеството отговаря за тестването на софтуерната разработка и оценяването на нейната работа при различни условия и натоварвания. По време на тестовете за устойчивост инженерите по осигуряване на качеството търсят “спирачки” или грешки, които спират разработката и трябва да бъдат отстранени, преди да продължи тестването.
Когато сравнявате тестовете за проверка на състоянието и тестовете за нормална работа и тестовете за регресия, е важно да вземете предвид не само какво се тества, но и кой извършва тестовете.
Тестването на дим при тестването на софтуер винаги се извършва от специалисти по осигуряване на качеството. По този начин се прави разлика между “smoke testing” и “sanity testing”, което представлява тестване в средата за разработка и обикновено не включва екипа по осигуряване на качеството.
Жизнен цикъл на димния тест
Жизненият цикъл на димния тест илюстрира къде се извършва димният тест по време на разработването на продукта и тестването на качеството. Разбирането на всеки етап от този цикъл ще ви помогне да разберете повече за това как димното тестване се вписва в процеса на тестване и какви са разликите между димното тестване и тестването за надеждност и регресионното тестване.
1. Код
Първият етап от изграждането на всеки софтуер винаги е писането и създаването на код. Кодът служи като градивен елемент на всеки софтуер и екипът по разработката трябва да напише кода, преди той да бъде тестван за стабилност и функционалност.
2. Единично тестване
Тестването на единици обикновено се извършва от разработчиците, въпреки че понякога инженерите по осигуряване на качеството също могат да извършват някои тестове на единици. Тестването на единици гарантира, че различните единици или елементи на кода работят според очакванията, преди отделните единици да бъдат интегрирани заедно в една софтуерна сглобка.
Тестването на единици обикновено се извършва успоредно с разработката, тъй като при него се откриват грешки и пропуски в кода, които могат да бъдат отстранени незабавно.
3. Интеграционно тестване
Интеграционното тестване е процесът на тестване на съвместната работа на отделните единици, когато са интегрирани в един софтуер.
Дори ако всяко отделно звено функционира добре, често могат да възникнат проблеми, когато тези звена се интегрират едно с друго. Интеграционното тестване обикновено се извършва от разработчиците, въпреки че различните подходи към този вид тестване означават, че то може да се извършва на различни етапи от процеса на създаване на софтуера.
4. Тестване на нормалността
Тестването за нормалност е вид регресионно тестване и обикновено е последният вид регресионно тестване. Това се случва по време на етапа на разработване на компилацията, след като са отстранени всички грешки, установени при регресионното тестване.
Тестването за надеждност обикновено е много бързо и има за цел просто да гарантира, че софтуерът работи безпроблемно и че всички открити грешки са отстранени по подходящ начин.
Понякога се бъркат тестовете за нормалност и тестовете за безпогрешност, но е важно да запомните, че тестовете за нормалност се извършват в средата за разработка, докато тестовете за безпогрешност се извършват в средата за осигуряване на качеството.
5. Изпитване на дим
Тестването “Smoke” е първият етап от тестването на ОК и първият вид тест, който се извършва в среда за ОК.
Тестването на димки обикновено се извършва преди тестването за проверка на изправността и регресионното тестване, въпреки че обикновено се извършва от екипите по осигуряване на качеството. Това е бърз и прост процес на тестване – в наши дни повечето екипи за осигуряване на качеството използват автоматизирано димно тестване при тестването на софтуер – който определя дали компилацията е стабилна и дали трябва да се провеждат допълнителни тестове.
Тъй като димното тестване е най-бързият и най-простият тест, когато се сравнява димното тестване с тестването за изправност и регресионното тестване, е разумно да се извърши първо, преди да се премине към други, по-сложни тестове.
6. Функционално изпитване
Функционалното тестване е следващият етап от жизнения цикъл на тестването на софтуера и се извършва в средата на QA.
Функционалното тестване проверява всяка функция на софтуерното приложение спрямо неговите изисквания и се фокусира върху функциите, използваемостта, достъпността и условията за грешки.
Функционалното тестване може да започне, след като тестът за проверка е преминал успешно.
Приложения за изпитване на дим на различни нива
Димното изпитване е приложимо на три различни нива на изпитване: димно изпитване на ниво приемане, димно изпитване на ниво система и димно изпитване на ниво интеграция.
1. Ниво на приемно изпитване
Тестването на пушека на ниво приемане обикновено се извършва, когато софтуерната компилация се предоставя на QA. Този тип тест за проверка на качеството просто проверява основната функционалност на компилацията и дали тя съответства на очакваната функционалност.
2. Ниво на тестване на системата
Тестването на ниво система включва тестване на най-важните работни процеси на системата. Това се извършва след като е тествана самата система и преди да бъде извършен пълен регресионен тест на системата.
На системно ниво автоматизираното димно тестване е най-разпространената форма на димно тестване.
3. Ниво на интеграционно тестване
На ниво тестване на интеграцията тестовете “smoke tests” гарантират, че всички крайни функционалности на софтуера работят според очакванията и че основната интеграция е функционална.
Този тип тестване обикновено се извършва при внедряването на отделни модули или при интегрирането на няколко модула в една софтуерна компилация.
Ръчни срещу автоматизирани димни тестове
Когато софтуерните екипи започнат да извършват димни тестове, те трябва да вземат решение дали ще извършват ръчни или автоматизирани димни тестове.
Макар че автоматизираните тестовете за проверка обикновено предлагат по-бързи и по-икономични резултати, тяхното създаване и прилагане може да отнеме време. Много екипи започват със създаването на ръчни тестове, преди да обмислят автоматизацията на по-късен етап.
1. Ръчно изпитване на дим
Ръчните димни тестове са доста лесни за проектиране и обикновено могат да се изпълняват от нетехнически специалисти извън екипите за осигуряване на качеството или за разработка. Това означава, че ръчните димни тестове често са предпочитани в по-малките компании, които все още не разполагат със специален ръководител по осигуряване на качеството.
При ръчното провеждане на “smoke test” е важно да се тестват определен брой случаи на употреба, които обхващат достатъчно от основните функции на софтуера, без да обхващат толкова много, че провеждането на “smoke test” да отнеме твърде много време. Идеалният брой случаи на употреба обикновено се счита за между 20 и 50.
Предимства на ръчното извършване на димни тестове
Извършването на ръчни димни тестове в отдела за осигуряване на качеството има множество предимства в сравнение с автоматизираните димни тестове. Ръчните “smoke” тестове често предлагат по-подробна информация за производителността и функционалността на софтуера в сравнение с автоматизираните тестове.
Неинженери могат да извършват ръчно тестване
Докато автоматизираните димни тестове обикновено изискват експертни познания на софтуерни инженери и разработчици, ръчните димни тестове могат да се извършват от членове на екипа с по-малко специализирани познания.
Обикновено това е от полза за по-малките екипи, където ресурсите вече са натоварени и времето на специалистите е изключително ценно.
Можете да създадете персонализиран димен тест за всяко задание
Ако искате да сте сигурни, че вашият димен тест точно покрива най-важните функции на всяко софтуерно приложение и се фокусира върху тези функции, които са по-важни за всяка компилация, създаването на ръчен димен тест позволява на тестващите да адаптират теста към всеки проект.
Подобни ръчни димни тестове могат да предложат по-полезни резултати в сравнение с някои автоматизирани тестове, но това означава, че тяхното създаване и изпълнение отнема изключително много време.
Ръчните тестове разкриват качествени данни
Когато стартирате автоматизиран тест за проверка, всичко, което можете да очаквате да получите, са количествени данни за това кои аспекти на теста са преминали успешно и кои не.
Когато членовете на екипа извършват ръчно тестване, те могат да използват своята проницателност, интуиция и преценка, за да преценят не само дали компилацията преминава или не, но и как и/или защо.
Предизвикателствата на ръчното димно тестване
Ръчното провеждане на димното тестване също е свързано с много предизвикателства, поради което много компании избират да използват автоматизирано димно тестване, когато това е възможно.
Ръчното тестване на дима е задълбочено, но също така отнема много време.
Ръчните димни тестове отнемат време
Извършването на ръчни димни тестове отнема значително повече време от автоматизираните тестове и изисква много повече внимание от страна на екипа ви.
Докато автоматизираните тестове могат просто да се изпълняват във фонов режим, екипът ви ще трябва да отдели специално време за провеждане на ръчен тест.
Ръчните тестове не могат да се изпълняват твърде често
Поради огромното количество време и ресурси, които изискват ръчните димни тестове, те не могат да се провеждат толкова редовно, колкото автоматизираните димни тестове.
Когато извършват ръчен тест за проверка, софтуерните тестери трябва да отделят часове, до половин ден, в зависимост от сложността на теста.
Това премахва възможността за ежедневно изпитване на дима, което се счита за най-добрата практика в индустрията.
Винаги има място за грешки
Тъй като ръчното тестване се извършва от хора, винаги има вероятност да бъдат допуснати грешки по време на ръчните димни тестове.
Поради тази причина ръчното тестване обикновено не е толкова изчерпателно, колкото автоматизираното тестване, особено когато става въпрос за откриване на фини грешки, които е по-лесно да бъдат пропуснати, или когато се извършва изключително повтарящо се тестване, което може да накара тестерите да загубят фокус по време на тестването.
Кога да използвате ръчно димно тестване
Ръчното тестване на дим се използва най-често в по-малки екипи, които може да нямат ресурсите да отделят инженери за автоматизирано тестване на дим, или в случаи, когато се иска или е необходима допълнителна човешка проницателност и преценка.
По тази причина ръчното димно тестване често се прилага в димни тестове на интеграционно ниво.
2. Автоматизирано димно тестване
Автоматизираното “smoke testing” може да се приложи от софтуерни инженери с необходимите умения за кодиране, за да създадат и изпълнят серия от подходящи случаи на употреба за всяка софтуерна компилация.
Автоматизираното димово тестване е много по-бързо от ръчното тестване, като обикновено отнема не повече от 30 до 60 минути, и може да се извършва във фонов режим, докато всички членове на екипа за разработка и осигуряване на качеството продължават да изпълняват ежедневните си задачи.
Поради тази причина автоматизираното димово тестване стана обичайно в софтуерната индустрия, тъй като все повече фирми се стремят да подобрят ефективността на работното място.
Предимства на автоматизацията на smoke тестовете
Автоматизацията на тестовете на дим предлага много предимства за компаниите, които разполагат с време и ресурси, за да я приложат. Тя е бърза и ефективна, а поради липсата на стрес за екипите и ресурсите, автоматизираните тестове могат да се провеждат редовно дори в малки компании.
Автоматизираното тестване е бързо
Автоматизираното дим тестване е много по-бързо от ръчното тестване, като повечето автоматизирани тестове отнемат не повече от 30 до 60 минути.
За сравнение, ръчните тестове могат да отнемат часове.
Автоматизираните “smoke” тестове изискват минимални ресурси и след като бъдат въведени, се изпълняват много лесно.
Автоматизацията прави възможни ежедневните димни тестове
Най-добрите практики в индустрията изискват ежедневни димни тестове, особено когато се работи по софтуер, който постоянно се променя.
Ръчните димни тестове отнемат твърде много време, за да се провеждат ежедневно, но автоматизираните димни тестове се извършват лесно в началото на всеки работен ден.
Автоматизацията елиминира човешките грешки
Автоматизираните тестове се изпълняват от предварително подготвени скриптове, създадени по строго определени стандарти. Това означава, че вероятността автоматизираният тест да пропусне сериозна грешка или важен проблем е много малка.
Автоматизацията може да имитира тестове за натоварване и производителност
Тестовете за натоварване и производителност оценяват доколко добре работи дадено приложение, когато много потребители го използват едновременно. Автоматизираното димово тестване може да имитира допълнителното натоварване от множество потребители по начин, по който ръчното тестване не може, и да предостави допълнителен слой данни за производителността на софтуера при определени условия.
Предизвикателствата пред автоматизацията на димните тестове
Автоматизацията на тестовете за дим не е лишена от предизвикателства. Внедряването на автоматизирано дим тестване може да отнеме повече време и ресурси, особено в по-малки екипи с по-малко инженери на разположение.
Технически изисквания
Автоматизираните димни тестове изискват повече технически познания и умения за кодиране, отколкото ръчните димни тестове. Софтуерните инженери трябва да разполагат с време и знания, за да знаят как да създават автоматизирани тестове, преди те да бъдат приложени, а не всички екипи непременно разполагат с необходимите ресурси за това.
Липса на човешка проницателност
Автоматизираното тестване дава цялостна представа за функционалността на дадено софтуерно приложение, а при провеждането на автоматизиран тест “дим” тестващите софтуера получават представа за основните функции на софтуера, което е крайната цел на теста “дим”.
Автоматизираните тестове обаче не дават никаква представа за по-обстоятелствените аспекти на работата на софтуера, като например използваемост и достъпност.
Кога да приложите автоматизация на димния тест
Автоматизацията често се използва при димното тестване, тъй като целта на димното тестване е просто да се провери основната функционалност, а това е нещо, в което автоматизираното тестване е сравнително добро.
Екипите с достатъчно технически умения за прилагане на автоматизирано димно тестване най-вероятно ще разполагат с време и ресурси, за да инвестират в този процес, а по-големите и утвърдени компании вероятно ще изпитват по-голям натиск да спазват стандартите за най-добри практики за ежедневно димно тестване.
Автоматизация на димното тестване срещу ръчно димно тестване
Няма правилен или грешен начин за провеждане на димното тестване и това, което работи добре за един екип, може да не работи добре за друг.
Преди да извършат тест за проверка, софтуерните екипи трябва да обмислят своите цели, ресурси и дългосрочни планове на проекта. Процесът на ръчно тестване на софтуера може да бъде образователен за младите специалисти, които започват да се занимават с осигуряване на качеството, но за по-утвърдените екипи рядко има полза от това да изберат ръчното тестване пред автоматизираното.
Хибридни изпитвания на дим
Третият вариант за екипите, които не могат да изберат между ръчно и автоматизирано тестване на дим и тестване на изправността, е да изберат хибридно тестване.
Хибридното тестване съчетава аспектите на ръчното и автоматизираното тестване, за да повиши цялостната производителност и ефективност на тестовете. Когато се използва хибридният метод за изпитване на дим, по-голямата част от изпитването може да бъде автоматизирана, но някои аспекти да се извършват ръчно. Това позволява на екипите да съсредоточат по-голямо внимание върху онези аспекти на сглобяването, които се нуждаят от това, като същевременно поддържат ниски общите изисквания за време на теста.
Видове изпитване на дим
Изпитването на дим може да бъде разделено на две категории – официално и неофициално изпитване на дим. Дали димното тестване е официално или неофициално, зависи от това дали е инициирано официално от ръководителя на отдела за осигуряване на качеството или просто се извършва като част от разработката.
1. Официални изпитвания на дим
При официалното тестване “smoke test” разработчиците на софтуер предават софтуерната разработка на инженера по осигуряване на качеството или на ръководителя по осигуряване на качеството за официално тестване. Ръководителят по осигуряване на качеството възлага на тестерите задачата за димното тестване и изисква от тях да извършат димното тестване с помощта на инструменти за димно тестване, като например автоматизация, или ръчно.
При провеждане на официални димни тестове тестерите по осигуряване на качеството съставят резултатите от теста в официален доклад, който може да бъде анализиран от ръководителя по осигуряване на качеството.
Формалните “smoke tests” се провеждат във важни моменти от процеса на създаване на софтуера, например преди да се извърши функционално тестване на нови функции.
2. Неформални изпитвания на дим
Неофициалните димни тестове са димни тестове, извършвани върху софтуерна компилация по време на процеса на разработване или осигуряване на качеството, които не са официално докладвани или изисквани от ръководителя по осигуряване на качеството.
Ежедневните димни тестове, които много софтуерни екипи провеждат по протокол, са пример за неформални димни тестове.
Неформални тестове могат да се извършват ad hoc, когато инженерите по осигуряване на качеството смятат, че това може да бъде полезно.
Какво ви е необходимо, за да започнете да тествате дима
Преди да започнете димното тестване при тестването на софтуер, е важно да съберете всички необходими неща, включително файлове с данни и умения във вашата организация.
Какво ще ви е необходимо за провеждане на димния тест зависи от това дали планирате да провеждате автоматизирано или ръчно димно тестване и какви инструменти за тестване използвате, за да улесните процеса.
1. Списък с тестови случаи
Преди да започнете димен тест, ще ви е необходим изчерпателен списък на всички тестови случаи, които искате да бъдат оценени от димния тест.
Случаите за тестване са отделни набори от действия, които искате да тествате, за да прецените дали резултатът от предприемането на тези действия съответства на очакваните резултати.
Например един много прост тестови случай може да бъде, че софтуерът зарежда главното табло при отваряне на приложението.
2. Тестови файлове
Преди да можете да стартирате теста за проверка, трябва да съберете всички тестови файлове, върху които ще стартирате теста за проверка. Възможно е да използвате командния ред на софтуера за димни тестове, който използвате, за да съберете всички файлове на едно място.
Начинът, по който събирате файловете си, и мястото, където ги съхранявате, зависи от начина на работа на вашата организация.
3. Инструменти за изпитване на дим
Можете да извършите основен димен тест, без да използвате конкретни инструменти, но използването на инструменти за димен тест може да ви помогне да подобрите точността на резултатите и да ускорите процеса на димен тест.
Първо проучете онлайн инструментите за димни тестове и изберете софтуер, който автоматизира или оптимизира димния тест в зависимост от конкретните ви нужди и бюджет.
Процесът на изпитване на дим
Най-добрият начин за провеждане на smoke test е различен за различните организации и ако сте начинаещ в областта на smoke test, може да искате да експериментирате с различни подходи, за да видите кое е най-подходящо за вашия екип.
По-долу е представен пример за провеждане на основен “smoke test” за оценка на основните функции на вашия софтуер.
Стъпка 1: Изберете тестовите си случаи
Първата стъпка при провеждането на smoke test е да изберете тестовите случаи, върху които ще се проведе smoke test.
При проектирането на димен тест софтуерните инженери и инженерите по осигуряване на качеството трябва да обмислят кои функции на софтуера са най-критични за него и как най-добре да тестват тези функции. Не губете време в тестване на функции, които не са важни за функционирането на софтуера.
Стъпка 2: Изграждане на димни тестове
След като определите тестовите случаи, които ще използвате, можете да напишете тестови скриптове за тяхното тестване. Използвайте един скрипт за димни тестове, за да увеличите гъвкавостта при изпълнението на теста.
Ако решите да автоматизирате димното тестване, няма да се налага винаги да пишете ръчни тестови скриптове всеки път, когато искате да стартирате димен тест. Можете да използвате пакети за автоматизация на тестването на софтуер, за да автоматизирате подобни скриптове.
Стъпка 3: Извършване на димни тестове
След като сте създали скриптовете за димни тестове, можете да ги стартирате в компилацията си, за да откриете грешки и други основни недостатъци. Това не трябва да отнема повече от 30 до 60 минути, а след като тестовете приключат, можете да прецените резултатите, за да определите следващите си стъпки.
Стъпка 4: Отстраняване на всички грешки
Целта на димното тестване при разработката на софтуер е да се идентифицират всички основни грешки или проблеми, преди да се пристъпи към пълно тестване на качеството.
Ако тестовете за проверка на качеството разкрият съществени проблеми, които нарушават основните функции на софтуерната ви разработка, е важно да изпратите софтуера и анализа си обратно на екипа за разработка за отстраняване на грешки, преди да продължите с проверката на качеството.
Най-добри практики за изпитване на дим
Тестването “Smoke Testing” е надежден начин за идентифициране на основни грешки в софтуерните компилации на всички етапи на разработка. Следването на най-добрите практики в индустрията е най-добрият начин да се гарантира, че вашите димни тестове са ефективни, точни и продуктивни.
1. Извършвайте често димни тестове
Невинаги е възможно да изпълнявате димни тестове всеки ден, особено ако използвате ръчни тестове, а не автоматизирани димни тестове.
Изпълнявайте тестовете “smoke tests” колкото се може по-често и всеки път, когато въвеждате промени в софтуера си. След като сте в състояние да го направите, ежедневното провеждане на димни тестове се счита за най-добра практика.
2. Никога не прескачайте етапите на тестване
Ако бързате, може да е изкушаващо да прескочите някои от етапите на тестване, за да напреднете по-бързо в процеса на разработка, но както тестовете за проверка, така и тестовете за регресия са от съществено значение за поддържане на разработката в правилна посока.
Преди да преминете към следващия етап, винаги тествайте с димки и тестове за надеждност.
3. Тествайте всяка промяна
Не съществува едно-единствено приложение за изпитване на дим. Можете и трябва да използвате тестовете “smoke tests”, за да тествате всяка промяна, която правите в дадена софтуерна компилация, и да тествате софтуера си между различни етапи на разработка.
Тестовете “Smoke” трябва да предшестват тестовете за интеграция, тестовете за производителност и функционалните тестове.
4. Проследяване на резултатите от тестовете
Стандартната практика е да се тестват резултатите от официалните димни тестове, но дори когато се провеждат неофициални димни тестове, инженерите трябва да водят някакъв запис на резултатите.
Това улеснява предаването на резултатите на разработчиците и проследяването на това кои функции не са преминали теста.
5. Извършете два пъти теста за дим
Двукратното провеждане на теста може да изглежда излишно, но ако наистина искате да уловите всяка грешка по време на теста, най-добре е да го проведете два пъти.
Това гарантира, че тестовете за проверка имат всички шансове да уловят основни грешки и проблеми, които могат да причинят допълнителни проблеми, ако не бъдат отстранени незабавно.
6. Изберете правилния тип димен тест
Дали трябва да използвате ръчно или автоматизирано smoke тестване зависи от размера и нуждите на екипа ви. Уверете се, че сте избрали най-добрия тип тестване за вашия проект, за да оптимизирате ефективността, без да правите компромис с точността на резултатите.
Видове резултати от димния тест
Когато провеждате димен тест, можете да очаквате, че вашият димен тест ще доведе до един от двата различни резултата за всеки тестов случай, който оценявате: положителен или отрицателен.
1. Предайте
Един от възможните резултати за всеки тестов случай, който изпълнявате, е тестът да премине успешно. Това означава, че действителният резултат от теста съвпада с очаквания резултат от теста.
Например, ако стартирате тест за това какво се случва, когато заредите приложението и то се зареди на екрана, който трябва да се отвори при зареждане, скриптът ви трябва да покаже това като положителен резултат.
2. Fail
Ако вашият тест “smoke test” се провали за конкретен тестови случай, това обикновено означава, че действителният резултат от теста не е съвпаднал с очаквания резултат от теста.
Например, ако тествате приложение за пазаруване и един от тестовите случаи, които изпълнявате, тества функционалността за добавяне на елементи в кошницата за пазаруване, тестът е неуспешен, ако елементите, които добавяте в кошницата, не се появяват в нея, както очаквате.
Примери за тестови случаи за димово тестване
Когато се опитвате да измислите кои тестови случаи да включите в теста за проверка, напишете списък с основните функционалности на софтуера и помислете кои от тях са от съществено значение за работата и използването на софтуера.
Някои примери за тестови случаи за димно тестване могат да ви помогнат да определите кои тестови случаи да използвате във вашия собствен димен тест.
1. Потвърждаване на идентификационните данни за вход
Ако приложението ви изисква потребителите да влизат в него, може да искате да създадете тестови случай, който да проверява дали процесът на валидиране на идентификационните данни за влизане в системата работи както трябва.
За да направите това, създайте скрипт, който автоматизира действията по влизане в системата, стартиране на теста и проверка на резултатите. Ако софтуерът влезе в системата, както се очаква, този случай на тестова проверка преминава успешно.
2. Създаване на нов документ
Можете да създадете тестови случай, за да оцените дали софтуерът ви позволява на потребителите да създават нов документ правилно. Създайте скрипт, който автоматизира създаването, именуването и запазването на документи в софтуера, и го стартирайте.
Всички сериозни проблеми, които възникват и възпрепятстват този процес, означават, че димният тест е неуспешен.
3. Излизане от системата
Ако приложението ви има функция за влизане, то трябва да има и функция за излизане. Изпълнете скрипт, за да тествате какво се случва, когато потребителите щракнат върху “Излизане”.
Ако потребителят не може да излезе успешно от системата, когато щракне върху този бутон, тестът за проверка не успява.
Видове грешки и бъгове, открити чрез димното тестване
Тестовете “Smoke” могат да ви помогнат да идентифицирате грешки и бъгове, които нарушават основната функционалност на вашия софтуер. В зависимост от това кога провеждате теста и какво искате да проверите, можете да откриете различни видове грешки и бъгове чрез теста.
1. Функционални грешки
Функционалните грешки са грешки, които възникват, когато софтуерът ви не се държи така, както очаквате, или когато не функционира правилно.
Повечето тестови случаи, за които ще използвате smoke тестове, са функционални тестове, така че функционалните грешки е най-вероятно да бъдат идентифицирани чрез подобни smoke тестове.
2. Логически грешки
Логическите грешки представляват недостатъци в логиката на кода и също могат да доведат до неправилно поведение на софтуера. Логическите грешки могат да доведат до некоректни резултати от действията или дори до срив на софтуера.
Често срещана логическа грешка е безкрайният цикъл, който кара софтуера да повтаря едни и същи действия отново и отново, докато се срине.
3. Грешки в интеграцията
Ако провеждате тест на ниво интеграция, може да откриете грешки в интеграцията по време на теста. Това се случва, когато два отделни набора от кодове не се интегрират безупречно един с друг. Те могат да бъдат причинени от широк кръг проблеми със съвместимостта на кода, а отстраняването им може да изисква сложни решения.
Общи показатели за димното тестване
При провеждането на димен тест екипите за осигуряване на качеството могат да използват метрики, за да оценят резултатите от димния тест и да преценят дали тестът е преминал успешно или не.
Освен дали софтуерът е в състояние да изпълнява правилно основните си функции, показателите на тестовете за дим могат да оценяват скоростта и времето за зареждане на софтуера, наред с други неща.
1. Скорост на софтуера
Тестовете “Smoke” могат да се използват за проверка на това дали скоростта на софтуера и времето за зареждане отговарят на определени критерии, посочени в отделните тестови случаи.
Например, ако тествате поведението на софтуера при зареждане на приложението и то се зареди според очакванията, но зареждането му отнема две минути, можете да отбележите това като неуспех, тъй като не отговаря на очакваното време за зареждане.
2. Надеждност
Двукратното провеждане на smoke test може също така да ви помогне да тествате надеждността на вашия софтуер. Ако някои тестови случаи преминат успешно веднъж, но веднъж се провалят, това означава, че някаква грешка в кода причинява грешки, които може да не се появяват всеки път, когато се използва софтуерът, но все пак могат да причинят сериозни проблеми на потребителите.
Най-добрите безплатни инструменти за тестване на дим
Инструментите за димни тестове могат да ви помогнат да провеждате димни тестове по-ефективно и бързо, за да извлечете максимална полза от димните си тестове.
По-долу са представени някои от най-добрите инструменти за димни тестове, които днес са достъпни безплатно.
5 най-добри безплатни инструмента за тестване на дим
1. Безплатно издание на ZAPTEST
ZAPTEST е безплатен инструмент, който позволява на потребителите да автоматизират тестването на софтуер и RPA, без да плащат нито цент.
Можете да използвате безплатното издание на ZAPTEST, за да извършвате прости димни тестове на множество платформи, включително мобилни, уеб, API и LOAD платформи.
Ако искате да изпробвате автоматизирано димно тестване, безплатното издание на ZAPTEST може да ви помогне да се убедите в предимствата на автоматизацията от първа ръка. Освен това е лесен за използване, дори и да не сте от техническите среди, тъй като има безкодов интерфейс и използва най-модерната технология за компютърно зрение.
Най-важното е, че ZAPTEST FREE е добре…. безплатно завинаги! За разлика от тях, много инструменти за димово тестване и автоматизация на софтуера имат първоначален период на тестване, след който се налага да плащате абонаментни такси.
2. Селен
Selenium е безплатен инструмент с отворен код, който можете да използвате за провеждане на различни видове тестове на вашия софтуер, включително димни и регресионни тестове. Той работи с много различни езици за програмиране и е особено подходящ за тестване на уеб приложения.
3. Appium
Ако искате да извършвате тестове за проверка на надеждността на мобилните приложения, Appium е по-добър избор от Selenium. Appium е лесен за инсталиране и използване и може да се използва за извършване на прости димни тестове на приложения, разработени за iOS и Android.
4. Testlink
Testlink е безплатен уеб базиран инструмент за управление, който позволява на потребителите да изготвят планове за тестване и тестови случаи в рамките на една структурирана рамка. Testlink може да ви помогне да планирате димните си тестове, както и да очертаете очакванията и показателите си, преди да започнете димните тестове.
5. QA Wolf
QA Wolf е безплатен инструмент за тестване от край до край, който позволява на потребителите да създават автоматизирани QA димни тестове заедно с други функционални тестове. QA Wolf може да се използва дори от хора без технически умения или умения за кодиране, което означава, че е чудесно въведение в автоматизацията на тестове за повечето екипи по осигуряване на качеството.
Най-добрите инструменти за димово тестване в предприятието
Ако сте готови да инвестирате малко пари в инструментите си за димово тестване, можете да закупите корпоративни инструменти, които имат по-широки възможности за димово тестване и по-задълбочени резултати.
По-долу е представен списък с пет от най-добрите инструменти за автоматизация на димни тестове в предприятията на пазара.
5 най-добри инструмента за автоматизация на димни тестове в предприятието
1. Издание ZAPTEST ENTERPRISE
Изданието ZAPTEST ENTERPRISE е пакет за тестване на софтуер и RPA, който може напълно да автоматизира всеки тип тест, включително smoke testing.
Безплатната версия е подходяща за по-малки компании, които искат да разберат какво може да прави ZAPTEST, но ако търсите платено решение, което е лесно за използване и подходящо за тестване на всякакъв софтуер или приложение, на всяка платформа, браузър или устройство, И с внедряване на 1SCRIPT във всички тях, тогава ZAPTEST ENTERPRISE е чудесно място, откъдето да започнете.
2. SoapUI
SoapUI е корпоративен инструмент за тестване, който улеснява управлението и изпълнението на цялостни QA тестове на софтуер. Инсталирането на този инструмент е сравнително лесно, но той има своите ограничения, което е отразено в цената му.
3. Тест
Testim е платен инструмент за димни тестове, който използва изкуствен интелект за създаване на безкодови тестове, оценяващи функционалността на вашия софтуер. Javascript API на Testim може да се използва за преработване, персонализиране и отстраняване на грешки в тестовете.
4. Робот T-Plan
T-Plan Robot е корпоративен инструмент за тестване, който QA инженерите могат да използват за автоматизиране на скриптирани потребителски действия и автоматизиране на роботизирани процеси (RPA) в Windows, Mac, Linux и Mobile. Можете да използвате T-Plan Robot, за да автоматизирате димни тестове на редица приложения и да създавате автоматизирани скриптове, които могат да се изпълняват в ключови моменти от разработката.
5. Контрол на качеството на дъждовните гори
Rainforest QA е инструмент за димни тестове за осигуряване на качеството, който позволява на потребителите да управляват и прилагат ръчни и автоматизирани димни тестове от едно табло за управление. Това го прави идеален за организации, които искат да изпробват хибридния подход, и е подходящ за огромен набор от платформи, включително облачни приложения, Windows и Mac.
Кога трябва да се използват корпоративни и безплатни инструменти за димни тестове?
Корпоративните и безплатните инструменти за тестване на дим могат да изпълнят подобни нужди по малко по-различен начин. Обикновено безплатните инструменти служат като отличен вход за организации, които се справят с ръчното димно тестване, но искат да проучат по-подробно автоматизираното димно тестване.
Те могат да бъдат по-подходящи и за много малки стартиращи предприятия, в които все още няма средства за платени инструменти.
Инструментите за тестване в предприятията обикновено стават по-жизнеспособна опция с разрастването на компаниите. Те предлагат редица предимства в сравнение с безплатните инструменти, като обикновено предлагат по-голяма гъвкавост, по-добра поддръжка и по-удобни за потребителя интерфейси, които улесняват извършването на автоматизирано димно тестване дори от нетехнически специалисти.
Контролен списък за изпитване на дим
Преди да започне димен тест, екипът за осигуряване на качеството на софтуера може да използва този контролен списък, за да се увери, че е обхванал всяка стъпка от процеса на димен тест.
● Определете инструментите за димното тестване, които ще използвате
● Изберете дали ще създадете ръчен или автоматичен тест
● Изберете тестовите случаи, които искате да тествате
● Създаване на тестови скриптове за всеки случай
● Идентифициране на изискванията за преминаване за всеки тестови случай
● Извършване на димни тестове
● Анализ на резултатите
● Обратна връзка към разработката и ОК
Заключение
Тестването на димки е съществена стъпка в разработването на софтуер и осигуряването на качеството. Тя гарантира, че продуктът е функционален, преди да се извърши по-нататъшно тестване, което предотвратява риска екипите за осигуряване на качеството да губят време и ресурси за провеждане на интензивни функционални тестове на компилации, които все още не са стабилни.
Тестването на димки е сравнително бърз и прост процес, който трябва да се извършва от софтуерните екипи възможно най-често.
Тъй като предприятията се стремят да постигнат оптимална ефективност чрез използване на усъвършенствани инструменти, които поддържат хиперавтоматизация, RPA и други свързани технологии, автоматизираното димно тестване става все по-често срещано в организации от всякакъв мащаб.
Както ръчното, така и автоматизираното димово тестване все още имат място в съвременните среди за осигуряване на качеството, но тъй като автоматизираното тестване става все по-разпространено, няма съмнение, че то ще се превърне в норма.
Често задавани въпроси и ресурси
Кои са най-добрите курсове за автоматизация на димни тестове?
Ако искате да научите повече за автоматизацията на димни тестове, някои примери за онлайн курсове, които можете да посетите, са:
● Курсове за изпитване на дим на Coursera
● Курсове за изпитване на дим в Udemy
● Курсове за изпитване на дим на Skillshare
Един от най-добрите курсове за начинаещи е Certified Tester ISTQB Foundation Level (CTFL), който се предлага в Udemy.
Всеки от тези онлайн ресурси предлага курсове за тестване на дим за ученици с различни умения и може да е възможно да посещавате както безплатни, така и платени курсове в тези сайтове.
Ако искате да се сертифицирате, потърсете курсове, които са акредитирани от CAST.
Кои са най-добрите книги за изпитване на дим?
Ако искате да научите повече за димното тестване, можете да прочетете книги за софтуерно тестване и димно тестване, за да разберете подходите и предимствата на димното тестване. Някои от най-добрите книги за изпитване на дим включват:
● “Изкуството на софтуерното тестване” от Гленфорд Джей Майерс, Том Баджет и Кори Сандлър
● Софтуерно тестване, от Рон Патън
● Автоматизация на софтуерното тестване, Марк Фюстър и Дороти Греъм
Въпреки това има много фантастични книги за тестване на софтуер, които могат да ви помогнат да разберете повече за това как, какво и какво се прави в тестването.
Изберете книга, която ви допада и в която подробно са разгледани темите, които ви интересуват най-много.
Кои са 5-те най-важни въпроса на интервюто за димни тестове?
Ако обмисляте да се явите на интервю за позиция, която може да включва димни тестове, подгответе се за интервюто, като подготвите отговорите си на често срещани въпроси, като например:
● Кога е подходящото време за провеждане на изпитване за дим?
● Как ще решите кои тестови случаи да използвате в теста за проверка?
● По какво се различава димното тестване от други видове тестване, като например тестването за изправност?
● Какви познания по кодиране са необходими за провеждане на димни тестове?
● Какво бихте направили, ако димната проба е неуспешна?
Кои са най-добрите уроци в YouTube за тестване на дим?
Ако обичате да се учите визуално, можете да използвате тези видеоклипове в YouTube, за да научите повече за димните тестове:
● Учебник за тестване на дим на Edureka
● Какво представлява изпитването на дим?
● Тестване на дим срещу тестване на нормалността
Как да поддържате димните тестове?
Поддръжката на smoke тестовете се състои в това да се гарантира, че създадените от вас smoke тестове ще останат здрави и актуални, докато проектът за изграждане на софтуер продължава.
Ежедневно изпълнявайте тестовете за проверка и създавайте нови тестови случаи, когато са необходими.
Можете също така да увеличите ползите от димните си тестове, като работите в тясно сътрудничество с онези разработчици, чийто принос не успява да подобри качеството на техния код.
Какво представлява димното тестване в софтуерното инженерство?
Тестването на дим в софтуерното инженерство се нарича още тестване за проверка на сглобяването и представлява прост и бърз тест, който гарантира, че сглобяването на софтуера е стабилно.
Тестването “Smoke” се използва за тестване на основните функционалности на дадена компилация и служи като предварителен тест преди провеждането на по-нататъшно тестване на качеството.
Тестване на дим срещу тестване на нормалността
Тестовете за проверка на състоянието на софтуера са два вида тестове, които включват бързо тестване на основните функционалности на даден софтуер или продукт.
Въпреки това, докато при тестовете за проверка се проверява дали основните функционалности на софтуера се държат според очакванията, при тестовете за проверка на изправността обикновено се проверява дали при отстраняване на грешки са отстранени установените проблеми.
Тестването на димките е по-формален и документиран процес, който обикновено се извършва преди дадена компилация да бъде проверена като стабилна, докато тестването на нормалността е неформален тип тест, който може да се извърши като част от регресионното тестване на относително стабилни компилации.
Тестване на дим срещу регресионно тестване
Тестовете за проверка и регресия са два вида тестове, които проверяват дали софтуерът продължава да функционира правилно след извършването на нови промени.
Въпреки това тестовете “smoke testing” са сравнително бързи и недълбоки тестове, които просто проверяват основните функции и гарантират, че софтуерът е стабилен.
Тестването за регресия е тест на по-дълбоко ниво, който отнема много повече време и оценява сглобката в повече детайли.
Тестване на дим срещу тестване за надеждност срещу регресионно тестване
Когато сравнявате тестовете за проверка на надеждността с тестовете за регресия, е важно да разберете, че и трите вида тестове са необходими за доброто разработване на софтуер и осигуряване на качеството.
Тестовете за проверка на състоянието на софтуера предлагат бърз начин да се провери дали софтуерът функционира нормално, докато тестовете за регресия предлагат по-задълбочен поглед върху работата на продукта.
Екипите за осигуряване на качеството първо проверяват софтуера на базата на дим и ако софтуерът премине успешно тази проверка, може да се пристъпи към тестване на нормалността, а по-късно и към регресионно тестване.
Автоматизираното димово тестване с помощта на инструменти за димово тестване става все по-често срещано явление, но някои видове тестване, като например регресионното тестване, все още не могат да бъдат напълно автоматизирани поради сложния характер на теста.
И накрая, ако търсите инструменти за извършване на тестове на платформи Windows, iOS, Android, тестове на потребителския интерфейс, Linux и много други, изтегляйте ZAPTEST БЕЗПЛАТНО!