Све што требате знати о методама тестирања софтвера

Аутор: Laura McKinney
Датум Стварања: 6 Април 2021
Ажурирати Датум: 16 Може 2024
Anonim
The first 20 hours -- how to learn anything | Josh Kaufman | TEDxCSU
Видео: The first 20 hours -- how to learn anything | Josh Kaufman | TEDxCSU

Садржај

Пре испоруке софтвера за јавну или комерцијалну употребу програмери сатима пеглају сваку грешку, а производ остаје у укопу све док сви заинтересовани не буду задовољни.

Гиганти софтверске Силицијске долине као што су Гоогле и Фацебоок често ће испоручити популарне производе на тржиште упркос грешкама у њиховом софтверу са малим приоритетом. Инвеститори и милиони верних корисника толерираће ажурирање софтвера и привремене кинкове са бесплатним производима које ове компаније нуде, чак и када ове грешке доводе до кршења података и лошег оглашавања.

Већина софтверских компанија нема тај луксуз. Купци очекују да ће производи учинити оно што тврде на продајној страници и с правом су забринути због рањивости интелектуалног власништва свог предузећа и осетљивих података. Са толико доступних опција за развој софтвера, купци не размишљају два пута о прескакању брода ако производ смрди изгубљено време и новац. Зато софтверске компаније морају извршити ригорозно тестирање својих производа пре него што их пусте купцима. Ови тестови ће понудити следеће увиде:


  • Истакните разлике између оригиналног концепта и крајњег резултата.
  • Проверите да софтвер ради онако како су пројектанти планирали.
  • Процените карактеристике и квалитет.
  • Потврдите крајњи производ у складу са захтевима корисника.

Испитивање следи строгим нацртом како би се оптимизирало радно оптерећење, време и новац, а истовремено заинтересованим странама пружају основне информације за кретање производа напријед. Циљ је олакшати позитивно искуство крајњих корисника одржавањем детаљног програма обезбеђења квалитета (КА). С обзиром на високе улоге за програмере, менаџери квалитета су неки од најбољих зарађених у технолошкој индустрији. Тестирање обично прати следеће кораке:

  1. Анализа захтева, где менаџери планирају план за постављање одговарајуће стратегије тестирања.
  2. Тестови почињу и резултати се подвргавају анализи.
  3. Сви недостаци се исправљају, а софтвер пролази кроз регресијско тестирање (систем за провјеру да ли програм и даље ради након измјена).
  4. Извештај о затварању теста који детаљно описује процес и резултате.

Појединци могу постати сертификовани испитивачи софтвера путем организација као што су БЦС, Цхартеред Институте фор ИТ, ИСТКБ® (Интернатионал Софтваре Тестинг Куалифицатион Боард) и АСК (раније Америчко друштво за квалитет).


Начини тестирања софтвера

Испитивање црно-беле кутије су две основне методе за процењивање понашања и перформанси производа, али постоје и друге методе:

  • Тестирање црне кутије: Названа и функционалним или спецификационим тестирањем, ова метода се фокусира на излаз. Испитивачи се не баве унутрашњим механизмима. Они само проверавају да софтвер ради оно што би требало. Знање кодирања није потребно, а тестери раде на нивоу корисничког интерфејса.
  • Тестирање беле кутије: Ова метода користи искуство кодирања као део тестне процедуре. Када производ не успе, тестери уђу дубоко у шифру како би пронашли узрок. Програмери софтвера то ће учинити сами, јер им је поверено да одређују како производ треба да функционише. Тестирање у бијелој кутији назива се и „засновањем на структури“ или „стакленој кутији“.
  • Статичко испитивање: Испитивачи прегледавају изворни код и сву пратећу документацију, али не извршавају програм. Статички тестови почињу рано у развоју производа током процеса верификације.
  • Динамичко тестирање: Софтвер се изводи с различитим улазима, а тестери упоређују излазе са очекиваним понашањем.
  • Тестирање графичког корисничког интерфејса (ГУИ): Карактеристике тестирања као што су форматирање текста, текстуална поља, дугмад, листе, изглед, боје, фонтови, величине слова и тако даље. Тестирање ГУИ-а захтева много времена, а компаније трећих произвођача често преузимају задатак уместо програмера.

Нивои теста

За идентификацију подручја слабости и преклапања у свакој фази животног циклуса софтвера користе се различити нивои тестирања.


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

Типови испитивања

Различите врсте тестова софтвера дизајниране су тако да се фокусирају на специфичне циљеве:

  • Инсталацијско тестирање: Тест инжењер и управитељ конфигурација проводе овај тест како би осигурали да крајњи корисник може инсталирати и покренути програм. Покрива подручја попут инсталационих датотека, локација инсталације и административних привилегија.
  • Испитивање развоја: Ово имплементира низ синхронизованих стратегија за откривање и спречавање кварова. То укључује статичку анализу кода, рецензију вршњака, следљивост и анализу метрика. Циљ је смањити ризик и уштедети трошкове.
  • Испитивање употребљивости: Корисничко искуство је под фокусом овог теста. Он мери колико је ГУИ лакоћа употребе. Тест провјерава тачност и ефикасност функција и емоционалне реакције испитаника.
  • Испитивање исправности: Ово указује да ли софтвер вреди времена и трошкова ради наставка даљих тестова. Ако има превише недостатака, агресивнији тестови неће уследити.
  • Испитивање дима: Тестирање димом открива основне кварове који су довољно озбиљни да спријече пуштање. Када се ово спроводи на новој верзији, то се зове тест "провере састављања".
  • Регресија тестирање: Кад се систем подвргне модификацији, регресијско тестирање прати неочекивано понашање. Указује на штетне ефекте на модуле или компоненте.
  • Деструктивно тестирање: Испитивачи уносе ненормалне уносе и разазнају способност софтвера да управља неочекиваним уносом. То показује програмерима колико је програм робустан у управљању грешкама.
  • Тестирање опоравка: Када хардверски или друге функције не успију, овај тест показује колико се софтвер може опоравити и наставити са радом.
  • Аутоматизовано тестирање: Ово обавља функције које је тешко извршити ручно. За покретање тестова и пружање података о стварним насупрот очекиваним исходима користи одређени софтвер.
  • Испитивање компатибилности: Софтвер мора да се покреће у различитим рачунарским окружењима, тако да ово проверава компатибилност са различитим системима. На пример, тестирање софтвера са различитим оперативним системима и веб прегледачима.
  • Тестирање перформанси: Ово је дубински тест који проучава перформансе софтвера у различитим сценаријима. Прикупљају се информације о одзивности, стабилности, расподјели ресурса и брзини. Подтести као што су волумен, капацитет и испитивање шиљака играју улогу у овом процесу.
  • Сигурносно тестирање: Ово мери способност софтвера да заштити безбедност корисника. То значи ауторизацијске функције, аутентификацију, поверљивост, интегритет, доступност и нерепрезентацију.
  • Тестирање приступачности: Ово није исто што и тестирање употребљивости. Ово одређује у којој мери корисници различитих способности, учења и физичких тешкоћа могу да користе софтвер.
  • Интернационализација и тестирање локализације: Резултати показују како софтвер може да се прилагоди различитим језицима и регионалним захтевима. Ово укључује додавање компоненти за одређене локације и превод текста.