Све што требате знати о методама тестирања софтвера
Садржај
Пре испоруке софтвера за јавну или комерцијалну употребу програмери сатима пеглају сваку грешку, а производ остаје у укопу све док сви заинтересовани не буду задовољни.
Гиганти софтверске Силицијске долине као што су Гоогле и Фацебоок често ће испоручити популарне производе на тржиште упркос грешкама у њиховом софтверу са малим приоритетом. Инвеститори и милиони верних корисника толерираће ажурирање софтвера и привремене кинкове са бесплатним производима које ове компаније нуде, чак и када ове грешке доводе до кршења података и лошег оглашавања.
Већина софтверских компанија нема тај луксуз. Купци очекују да ће производи учинити оно што тврде на продајној страници и с правом су забринути због рањивости интелектуалног власништва свог предузећа и осетљивих података. Са толико доступних опција за развој софтвера, купци не размишљају два пута о прескакању брода ако производ смрди изгубљено време и новац. Зато софтверске компаније морају извршити ригорозно тестирање својих производа пре него што их пусте купцима. Ови тестови ће понудити следеће увиде:
- Истакните разлике између оригиналног концепта и крајњег резултата.
- Проверите да софтвер ради онако како су пројектанти планирали.
- Процените карактеристике и квалитет.
- Потврдите крајњи производ у складу са захтевима корисника.
Испитивање следи строгим нацртом како би се оптимизирало радно оптерећење, време и новац, а истовремено заинтересованим странама пружају основне информације за кретање производа напријед. Циљ је олакшати позитивно искуство крајњих корисника одржавањем детаљног програма обезбеђења квалитета (КА). С обзиром на високе улоге за програмере, менаџери квалитета су неки од најбољих зарађених у технолошкој индустрији. Тестирање обично прати следеће кораке:
- Анализа захтева, где менаџери планирају план за постављање одговарајуће стратегије тестирања.
- Тестови почињу и резултати се подвргавају анализи.
- Сви недостаци се исправљају, а софтвер пролази кроз регресијско тестирање (систем за провјеру да ли програм и даље ради након измјена).
- Извештај о затварању теста који детаљно описује процес и резултате.
Појединци могу постати сертификовани испитивачи софтвера путем организација као што су БЦС, Цхартеред Институте фор ИТ, ИСТКБ® (Интернатионал Софтваре Тестинг Куалифицатион Боард) и АСК (раније Америчко друштво за квалитет).
Начини тестирања софтвера
Испитивање црно-беле кутије су две основне методе за процењивање понашања и перформанси производа, али постоје и друге методе:
- Тестирање црне кутије: Названа и функционалним или спецификационим тестирањем, ова метода се фокусира на излаз. Испитивачи се не баве унутрашњим механизмима. Они само проверавају да софтвер ради оно што би требало. Знање кодирања није потребно, а тестери раде на нивоу корисничког интерфејса.
- Тестирање беле кутије: Ова метода користи искуство кодирања као део тестне процедуре. Када производ не успе, тестери уђу дубоко у шифру како би пронашли узрок. Програмери софтвера то ће учинити сами, јер им је поверено да одређују како производ треба да функционише. Тестирање у бијелој кутији назива се и „засновањем на структури“ или „стакленој кутији“.
- Статичко испитивање: Испитивачи прегледавају изворни код и сву пратећу документацију, али не извршавају програм. Статички тестови почињу рано у развоју производа током процеса верификације.
- Динамичко тестирање: Софтвер се изводи с различитим улазима, а тестери упоређују излазе са очекиваним понашањем.
- Тестирање графичког корисничког интерфејса (ГУИ): Карактеристике тестирања као што су форматирање текста, текстуална поља, дугмад, листе, изглед, боје, фонтови, величине слова и тако даље. Тестирање ГУИ-а захтева много времена, а компаније трећих произвођача често преузимају задатак уместо програмера.
Нивои теста
За идентификацију подручја слабости и преклапања у свакој фази животног циклуса софтвера користе се различити нивои тестирања.
- Испитивање јединице: Програмери тестирају најосновније дијелове кода попут класа, интерфејса и функција / поступака. Они знају како њихов код треба да реагује и могу прилагодити у зависности од излаза.
- Тестирање компонената: Овај корак је такође познат као "модул" или "програм" тестирање. Слично је с тестирањем јединице, али садржи виши ниво интеграције. Модули софтвера тестирају се на оштећења како би се потврдила њихова појединачна функција.
- Интеграцијско тестирање: Ово идентификује грешке када су модули интегрисани. Различите методе интеграционих тестова укључују „одоздо према горе“, „одоздо према горе“ и „функционално инкрементално“.
- Тестирање система: Компоненте пројекта тестирају се као цјелина у различитим окружењима. Тестирање система спада под методу црне кутије и један је од завршних тестова у процесу. Утврдиће да ли је систем спреман да задовољи пословне и корисничке потребе.
- Алфа тестирање: Интерно особље тестира софтвер на локацији програмера у симулираном или стварном окружењу. Након тога, програмери исправљају грешке и друге проблеме.
- Бета тестирање: Такође познато и као теренско тестирање, клијенти тестирају производ на сопственим веб локацијама у стварним условима. Клијенти могу понудити групи крајњих корисника могућност да тестирају софтвер путем пререлеасе или бета верзије. Повратне информације о могућим побољшањима шаљу се програмеру.
- Прихватање тестирање: Такође у оквиру тестирања црне кутије, клијенти тестирају софтвер како би сазнали да ли је програмер у потпуности развио програм тако да одговара жељеним спецификацијама.
Типови испитивања
Различите врсте тестова софтвера дизајниране су тако да се фокусирају на специфичне циљеве:
- Инсталацијско тестирање: Тест инжењер и управитељ конфигурација проводе овај тест како би осигурали да крајњи корисник може инсталирати и покренути програм. Покрива подручја попут инсталационих датотека, локација инсталације и административних привилегија.
- Испитивање развоја: Ово имплементира низ синхронизованих стратегија за откривање и спречавање кварова. То укључује статичку анализу кода, рецензију вршњака, следљивост и анализу метрика. Циљ је смањити ризик и уштедети трошкове.
- Испитивање употребљивости: Корисничко искуство је под фокусом овог теста. Он мери колико је ГУИ лакоћа употребе. Тест провјерава тачност и ефикасност функција и емоционалне реакције испитаника.
- Испитивање исправности: Ово указује да ли софтвер вреди времена и трошкова ради наставка даљих тестова. Ако има превише недостатака, агресивнији тестови неће уследити.
- Испитивање дима: Тестирање димом открива основне кварове који су довољно озбиљни да спријече пуштање. Када се ово спроводи на новој верзији, то се зове тест "провере састављања".
- Регресија тестирање: Кад се систем подвргне модификацији, регресијско тестирање прати неочекивано понашање. Указује на штетне ефекте на модуле или компоненте.
- Деструктивно тестирање: Испитивачи уносе ненормалне уносе и разазнају способност софтвера да управља неочекиваним уносом. То показује програмерима колико је програм робустан у управљању грешкама.
- Тестирање опоравка: Када хардверски или друге функције не успију, овај тест показује колико се софтвер може опоравити и наставити са радом.
- Аутоматизовано тестирање: Ово обавља функције које је тешко извршити ручно. За покретање тестова и пружање података о стварним насупрот очекиваним исходима користи одређени софтвер.
- Испитивање компатибилности: Софтвер мора да се покреће у различитим рачунарским окружењима, тако да ово проверава компатибилност са различитим системима. На пример, тестирање софтвера са различитим оперативним системима и веб прегледачима.
- Тестирање перформанси: Ово је дубински тест који проучава перформансе софтвера у различитим сценаријима. Прикупљају се информације о одзивности, стабилности, расподјели ресурса и брзини. Подтести као што су волумен, капацитет и испитивање шиљака играју улогу у овом процесу.
- Сигурносно тестирање: Ово мери способност софтвера да заштити безбедност корисника. То значи ауторизацијске функције, аутентификацију, поверљивост, интегритет, доступност и нерепрезентацију.
- Тестирање приступачности: Ово није исто што и тестирање употребљивости. Ово одређује у којој мери корисници различитих способности, учења и физичких тешкоћа могу да користе софтвер.
- Интернационализација и тестирање локализације: Резултати показују како софтвер може да се прилагоди различитим језицима и регионалним захтевима. Ово укључује додавање компоненти за одређене локације и превод текста.