Тестирлөөнүн негизги маселеси

тааныштыруу

Кутмандуу күн, Хабаровск шаарынын тургундары. Азыр эле мен финтех компаниясынын QA Lead вакансиясына тест тапшырмасын чечип жаткам. Толук текшерүү тизмеси жана электр чайнекти сыноо үчүн сыноо учурларынын мисалдары менен тест планын түзүү үчүн биринчи тапшырманы майда-чүйдөсүнө чейин чечсе болот:

Бирок экинчи бөлүк суроо болуп чыкты: "Баардык сыноочулар үчүн алардын натыйжалуу иштөөсүнө тоскоол болгон кандайдыр бир көйгөйлөр барбы?"

Эң биринчи оюма келген нерсе, тестирлөө учурунда мен кездешкен аздыр-көптүр байкалган көйгөйлөрдүн баарын тизмектеп, майда-чүйдөсүнө чейин чыгарып, калганын жыйынтыктоо болду. Бирок мен индуктивдүү ыкма суроого жооп берерин тез түшүндүм, ал “бардыгына” тиешелүү эмес, эң жакшысы, тестирлөөчүлөрдүн “көпчүлүгүнө” гана тиешелүү. Ошондуктан, мен ага башка тараптан, дедуктивдүү түрдө мамиле кылууну чечтим жана ушундай болду.

аныктоо

Жаңы көйгөйдү чечүүдө мен эң биринчи кыла турган нерсе - бул эмне жөнүндө экенин түшүнүүгө аракет кылуу жана бул үчүн мен аны жараткан сөздөрдүн маанисин түшүнүшүм керек. Түшүнүү үчүн негизги сөздөр болуп төмөнкүлөр саналат:

  • маселе
  • Сыноочу
  • сыноочу жумуш
  • сыноочу натыйжалуулугу

Келгиле, Википедияга жана акылга кайрылалы:
Көйгөй (байыркы грек πρόβλημα) кеңири мааниде - изилдөөнү жана чечүүнү талап кылган татаал теориялык же практикалык маселе; илимде - кандайдыр бир кубулуштарды, нерселерди, процесстерди түшүндүрүүдө карама-каршы позициялар түрүндө пайда болгон жана аны чечүү үчүн адекваттуу теорияны талап кылган карама-каршы жагдай; жашоодо көйгөй адамдарга түшүнүктүү формада формулировкаланат: “Мен эмнени билем, кантип билбейм”, башкача айтканда, эмнени алуу керектиги белгилүү, бирок аны кантип жасоо керектиги белгисиз. . Кечтен келет. лат. көйгөй, грек тилинен. πρόβλημα “алдыга ыргытылган, алдына коюлган”; из προβάλλω “алдыга таштоо, алдыга коюу; күнөөлүү".

Бул анча деле мааниге ээ эмес, чындыгында, "көйгөй" = "чечилиши керек болгон бардык нерсе."
Сыноочу - бир компонентти же системаны тестирлөөгө катышкан адис (биз түрлөргө бөлүнбөйбүз, анткени бизди бардык тестерлер кызыктырат), анын натыйжасы:
Сыноочтун иши — тестирлөө менен байланышкан иш-чаралардын комплекси.
Натыйжалуулук (лат. effectivus) - жетишилген натыйжа менен колдонулган ресурстардын ортосундагы байланыш (ISO 9000: 2015).
Жыйынтык - сапаттык же сандык жактан туюнтулган иш-аракеттердин (натыйжалардын) же окуялардын тизмегинин (сериясынын) натыйжасы. Мүмкүн болгон натыйжаларга артыкчылык, кемчилик, пайда, жоготуу, баалуулук жана жеңиш кирет.
"Маселе" сыяктуу эле, бир аз маани бар: иштин натыйжасында чыккан нерсе.
каражат - адамдын же адамдардын кандайдыр бир иш-аракетин жүзөгө ашыруунун сандык жактан өлчөнгөн мүмкүнчүлүгү; каалаган натыйжаны алуу үчүн белгилүү бир кайра колдонууга мүмкүндүк берген шарттар. Сыноочу адам, ал эми турмуштук ресурстар теориясына ылайык, ар бир адам төрт экономикалык активдин ээси болуп саналат:
накталай акча (киреше) кайра жаралуучу ресурс болуп саналат;
энергия (жашоо күчү) жарым-жартылай кайра жаралуучу ресурс;
убакыт - бул туруктуу жана негизи калыбына келтирилбеген ресурс;
билим (маалымат) кайра жаралуучу ресурс болуп саналат, ал өсүп жана жок болушу мүмкүн адам капиталынын бир бөлүгү болуп саналат[1].

Биздин учурда натыйжалуулукту аныктоо таптакыр туура эмес экендигин белгилегим келет, анткени биз канчалык көп билимди колдонсок, эффективдүүлүктү ошончолук төмөндөтөт. Ошондуктан, мен натыйжалуулукту "жетилген натыйжалар менен сарпталган ресурстардын ортосундагы катыш" деп кайра аныктайт элем. Ошондо баары туура: иш учурунда билим текке кетпейт, бирок ал сыноочунун бирден-бир түп тамырынан бери кайра жаралбаган ресурсу - анын убактысынын чыгымын азайтат.

чечим

Ошентип, биз тестирлөөчүлөрдүн ишинин натыйжалуулугун төмөндөтүүчү глобалдык көйгөйлөрдү издеп жатабыз.
Сыноочунун жумушуна сарпталган эң маанилүү ресурс - бул анын убактысы (калганын тигил же бул жол менен кыскартууга болот) жана эффективдүүлүктү туура эсептөө жөнүндө айтуу үчүн, натыйжа да убакытка кыскарышы керек. .
Бул үчүн, сыноочу өз иши аркылуу жашоого жөндөмдүүлүгүн камсыз кылган системаны карап көрөлү. Мындай система – бул долбоор, анын курамына тестиер кирет. Долбоордун жашоо цикли болжол менен төмөнкү алгоритм менен көрсөтүлүшү мүмкүн:

  1. Талаптар менен иштөө
  2. Техникалык шарттарды түзүү
  3. дизайн
  4. тестирлөө
  5. Өндүрүшкө чыгаруу
  6. Колдоо (1-пунктка өтүү)

Бул учурда бүткүл долбоор рекурсивдүү түрдө ошол эле жашоо цикли менен чакан долбоорлорго (функцияларга) бөлүнүшү мүмкүн.
Долбоордун көз карашынан алганда, ага канча убакыт жумшалса, аны ишке ашыруу ошончолук натыйжалуу болот.
Ошентип, биз долбоордун көз карашынан алганда, тестиердин максималдуу мүмкүн болгон эффективдүүлүгүн аныктоого келе жатабыз - бул тестирлөө убактысы нөлгө барабар болгон долбоордун абалы. Бардык тестирлөөчүлөр үчүн жалпы көйгөй - бул убакытка жетише албагандыгы.

Муну менен кантип күрөшүү керек?

Корутундулар абдан ачык жана көптөр тарабынан көптөн бери колдонулуп келет:

  1. Иштеп чыгуу жана тестирлөө дээрлик бир убакта башталып, бүтүшү керек (бул көбүнчө бөлүм тарабынан жүргүзүлөт QA). Идеалдуу вариант болуп, иштелип жаткан бардык функциялар даяр болгонго чейин автотесттер менен камтылган, кандайдыр бир тестирлөөнүн жардамы менен регрессияга (жана, мүмкүн болсо, алдын ала тапшырууга) уюштурулган. CI.
  2. Долбоор канчалык көп өзгөчөлүктөргө ээ болсо (ал ошончолук татаал болсо), жаңы функция эски функцияны бузбасын текшерүүгө ошончолук көп убакыт сарпташы керек болот. Демек, долбоор канчалык татаал болсо, ошончолук автоматташтыруу талап кылынат регрессиялык тест.
  3. Өндүрүштөгү мүчүлүштүктөрдү сагынган сайын жана колдонуучу аны тапкан сайын, 1-пункттан баштап долбоордун жашоо циклине кошумча убакыт коротушубуз керек (Талаптар менен иштөө, бул учурда колдонуучулар). Мүчүлүштүктөрдү жок кылуунун себептери жалпысынан белгисиз болгондуктан, бизде бир гана оптималдаштыруу жолу калды - колдонуучулар тапкан ар бир мүчүлүштүк кайра пайда болбошуна ишенүү үчүн регрессиялык тестирлөөгө киргизилиши керек.

Source: www.habr.com

Комментарий кошуу