Распрацоўка праграмнага забеспячэння ператварылася ў часы вадаспаду Agile і DevOps. Натуральна, тэсціраванне як дысцыпліна таксама мела некалькі асноўных зрухаў, каб прыстасаваць новыя спосабы працы і дастаўкі праграмнага забеспячэння.
Аднак па-ранейшаму існуе велізарнае непаразуменне і няправільнае ўспрыманне ролі тэстараў і забеспячэння якасці ў цэлым.
У гэтым пасце мы разгледзім, як развівалася тэставанне, асабліва за апошняе дзесяцігоддзе, і тое, што трэба зрабіць спецыялістам па кантролі якасці, каб быць наперадзе гульні.
Тэставанне можа стаць толькі больш цікавым!
Хоць дзейнасць па тэсціраванні праграмнага забеспячэння змянілася, каб адаптавацца да новых спосабаў працы, я ўсё яшчэ бачу шмат старамодных поглядаў на тэсціраванне і ролю кантролю якасці.
Непрыемна бачыць, што ў ІТ-індустрыі па-ранейшаму шмат людзей, якія разглядаюць пытанні якасці і тэсціравання як асноўны вынік. Тэстары часта разглядаюцца як проста функцыянальныя тэстары, якія тэстуюць толькі пасля таго, як распрацоўшчыкі скончаць працу над функцыяй. 'Забеспячэнне якасці' ўспрымаецца як тэставанне, пошук і паведамленне пра памылкі і прадастаўленне зялёнага святла для выпуску.
Яшчэ больш турбуе тое, што такое ўспрыманне ролі забеспячэння якасці з'яўляецца галоўным сярод тэсціроўшчыкаў і саміх спецыялістаў па кантролі якасці.
Гістарычна склалася так, што, прымаючы вядучую ролю ў заключнай фазе праекта вадаспада, тэставанне будзе трымацца справа ад жыццёвага цыкла праекта. Пасля папярэдняга вызначэння патрабаванняў тэсціроўшчыкі прымуць эстафету каманды распрацоўшчыкаў па заканчэнні фазы распрацоўкі і запусцяць працяглыя, падрабязныя сцэнарыі тэстаў, часта ўручную, і звычайна праз закрытыя групы і групы МСП.
Справы тэстаў былі старанна спланаваны загадзя, сцэнарыі выконваліся спецыялістамі, дэфекты былі выяўлены і паведамляліся, а цыклы выпрабаванняў запускаліся і паўтараліся да дасягнення зададзеных узроўняў якасці.
У першую чаргу паміж распрацоўшчыкамі і тэсціроўшчыкамі заўсёды было дакладнае раздзяленне, без перакрыцця абавязкаў і мерапрыемстваў. Сапраўды, падчас асобнага, абгрунтаванага этапу тэсціравання дзейнасць была сканцэнтравана выключна на функцыянальнай праверцы праграмнага забеспячэння з асноўнай мэтай пошуку і паведамлення пра дэфекты.
З'яўленне гнуткіх метадалогій і спосабаў працы зліло дзейнасць па распрацоўцы і тэсціраванні да такой ступені, што тэставанне праграмнага забеспячэння ўжо не было самастойнай фазай. Замест гэтага тэсціраванне стала імпліцытнай дзейнасцю падчас кадавання і распрацоўкі праграмнага забеспячэння.
У некаторых выпадках бывае цяжка зразумець адрозненне паміж 'выпрабавальнікам' і 'распрацоўшчыкам', паколькі кожны з іх зможа бесперашкодна ажыццяўляць дзейнасць адзін аднаго.
'Якасць' перастала стаць выключнай адказнасцю тэсціроўшчыкаў і стала агульнай адказнасцю ўсіх, хто ўдзельнічае ў распрацоўцы і пастаўцы прадукту.
Разам з гэтай эвалюцыяй адбыўся перанос тэставых абавязкаў злева ад распрацоўкі, па сутнасці, якасць выпечкі з самага пачатку.
Фокус перайшоў ад пошуку дэфектаў убудаванага праграмнага забеспячэння да прадухілення траплення дэфектаў у праграмнае забеспячэнне.
З агульнай мэтай забяспечыць не толькі тое, каб прадукт ці функцыя функцыянавалі і адпавядалі патрабаванням, але і адпавядалі мэты і забяспечвалі высокі ўзровень задавальнення карыстальнікаў.
Звязаныя:
Удзел тэстараў у дапрацоўцы матэрыялаў, аглядах кодаў, адзінкавым тэсціраванні і такіх практыках, як TDD, BDD і бесперапыннае тэсціраванне, гарантавала, што тэсціраванне і якасць былі на першым плане і былі ўбудаваны ў распрацоўку.
Але, нягледзячы на тое, што Agile прайшоў доўгі шлях, спалучаючы дзейнасць і практыку распрацоўкі і тэсціравання, каманда аператараў па-ранейшаму была засланена. Два напрамкі працы (Dev & Ops) часта не ведалі пра дзейнасць адзін аднаго.
Калі што-небудзь пойдзе не так на вытворчасці, расследаванне зойме шмат часу. Распрацоўшчыкі не мелі ўяўлення пра тое, як эфектыўна працуе іх дадатак у вытворчасці ў больш доўгай перспектыве; не было ні празрыстасці, ні яснасці супрацоўніцтва паміж дзвюма камандамі.
DevOps мае на ўвазе супрацоўніцтва каманд распрацоўшчыкаў і аператараў пры стварэнні, пастаўцы, абслугоўванні і падтрымцы праграмнага забеспячэння. Ён мае на ўвазе бесперапыннае аб'яднанне рэсурсаў, працэсаў і самога прадукту.
DevOps дазваляе метады пастаяннай інтэграцыі і дастаўкі каштоўнасці для канчатковага карыстальніка.
Рух DevOps прывёў новы погляд на тэставанне і стварыў новыя магчымасці для саміх тэстараў.
У гэтую новую эру тэстары павінны быць узгоднены як з распрацоўкай, так і з аперацыямі.
Кампанія тэсціравання больш не абмяжоўваецца прадуктам, але і тэсціраваннем інфраструктуры, у якой прадукт у канчатковым выніку выконваецца.
Бесперапынная інтэграцыя (CI) і пастаянная дастаўка (CD) сталі дэ-факта стандартам у распрацоўцы і пастаўцы праграмнага забеспячэння, і таму вялікая колькасць высілкаў цяпер ідзе на забеспячэнне канвеера CI / CD, асяроддзя і інфраструктуры.
Гэта пазваночнік, які падтрымлівае развіццё і роды.
Калі правесці іх грэбаванне грэбаваннем, гэта можа прывесці да нестабільнага асяроддзя, шмат намаганняў будзе выдаткавана на расследаванне неаднаразовых праблем інфраструктуры і, у канчатковым рахунку, высокая рызыка для развіцця і хуткай дастаўкі.
Нягледзячы на тое, што шмат зроблена для ўбудавання якасці на кожным этапе распрацоўкі, і, як следства, тэставанне мае значна шырэйшы спектр, я ўсё яшчэ лічу, што службы забеспячэння праводзяць большую частку свайго часу ў пошуках функцыянальных праблем і канцэнтрацыі на праверцы праграмнага забеспячэння.
Большасць служб якасці не разумеюць важнасці сваёй ролі і ўплыву, які яны могуць аказаць на развіццё і пастаўкі.
Нягледзячы на значныя зрухі ў практыцы распрацоўкі за апошнія дзесяць гадоў, я адчуваю, што тэстыроўшчыкі па-ранейшаму па-старому глядзяць на сваю ролю і, такім чынам, застаюцца замацаванымі ў старой эпосе тэсціравання.
Тэсціраванне як прафесія і роля выпрабавальніка падвяргаецца небяспецы на працягу некаторага часу з ростам 'аўтаматызаванага тэсціравання'. І сапраўды, многія прафесіяналы галіны па-ранейшаму лічаць, што роля тэстара заключаецца ў простай праверцы прыкладання, якое ствараюць распрацоўшчыкі, і ўсё гэта можна аўтаматызаваць.
Калі распрацоўшчыкі лепш падыходзяць і больш кемлівыя пісаць код, неабходны для аўтаматызаванага тэсціравання, то якая ўвогуле патрэба ў тэстары ў камандзе?
Прыйшоў час, калі мы змянілі гэтае ўспрыманне. Мы павінны прызнаць розніцу ў кошце і навыках паміж 'тэставаннем' і 'забеспячэннем якасці', паколькі, калі тэставанне - гэта функцыянальная праверка і праверка праграмнага забеспячэння, забеспячэнне якасці - гэта не адна дзейнасць. Якасць кантролю - гэта шэраг працэсаў, уключаючы тэсціраванне, і перадавыя практыкі для забеспячэння якаснага прадукту для карыстальнікаў.
Мы павінны імкнуцца да якаснага развіцця і разглядаць прафесію кантролю якасці як асноўную і асноўную функцыю ў распрацоўцы і пастаўцы праграмнага забеспячэння, такім чынам, Сучаснае тэсціраванне .
Якасць кантролю цяпер з'яўляецца ключавым кампанентам распрацоўкі ад пачатку да канца працы на працягу ўсяго працэсу. І, нягледзячы на тое, што звычайная мова кажа, што ўсе ў камандзе дастаўкі нясуць адказнасць за пастаўку якаснага прадукту, я цвёрда веру, што адказнасць за кантроль за тым, каб каманда прытрымлівалася практыкі якасці.
Там, дзе тэставая прафесія часта разглядалася як шлях доступу да распрацоўкі, кіравання праектамі альбо іншых - звычайна больш прыбытковых - дысцыплін, новы кантроль якасці - гэта высокакваліфікаваная роля, якая патрабуе цэласных ведаў пра практыку распрацоўкі.
Гэта патрабуе шырокага разумення праблем практыкі кадавання, ацэнкі метадаў і асяроддзя разгортвання, а таксама стандартаў прадукцыйнасці і бяспекі, метадаў і праблем.
Гэта Т-вобразная роля, якая дазваляе рэсурсу не толькі прымяніць свае глыбокія веды і вопыт для выканання сваіх асноўных задач, але і прымяніць больш шырокія кантэкстныя веды ў галіне архітэктуры і развіцця.
Размяшчаючыся ў цэнтры любога праекта, сучасны кантроль якасці павінен добра разумець архітэктуру, прадукцыйнасць, бяспеку і воблачныя прапановы, быць тэхнічна спраўным і мець прагу вывучэння новых тэхналогій, каб заставацца ў гульні.
нататка:Яшчэ адна вобласць, якая хутка становіцца вельмі папулярнай і важнай тэставаннем якасці дадзеных, тэставаннем вялікіх дадзеных, азёр і сховішчаў дадзеных.Прыйшоў час змяніць уяўленне пра ролю кантролю якасці і пра тое, што робяць тэсціроўшчыкі. Гэта павінна пачацца з саміх выпрабавальнікаў. Адпраўной кропкай з'яўляецца глыбокая клопат аб якасці.
Тэстары не толькі для таго, каб правесці функцыянальнае тэсціраванне і паведаміць пра памылкі. Роля кантролю якасці значна большая. Нас ставяць на праект забяспечыць якасную практыку .
Калі мы глыбока тэстуем прыкладанне, мы павінны мець глыбокія веды пра ўсю працу сістэмы, а не проста глядзець на прыкладанне як на чорную скрыню.
Каб мець гэтыя глыбокія веды, мы павінны пастаянна вучыцца і ісці ў нагу з новымі тэхналогіямі і спосабамі працы. Самае галоўнае, што пытанні якасці павінны быць адаптыўнымі.
Калі службы кантролю зразумеюць іх мэту ў праекце і пачнуць верыць, што іх роля з'яўляецца цэнтральнай часткай распрацоўкі і пастаўкі праграмнага забеспячэння, калі мы прымаем сучасныя прынцыпы тэсціравання, толькі тады мы можам змяніць успрыманне навакольных.