Бағдарламалық жасақтама сенімділігін тексеру - Software reliability testing - Wikipedia

Бағдарламалық жасақтама сенімділігін тексеру - бұл белгілі бір уақыт аралығында қоршаған орта жағдайларын ескере отырып, бағдарламалық жасақтаманың жұмыс қабілетін тексеруге қатысты бағдарламалық жасақтаманы тестілеу саласы. Бағдарламалық жасақтама сенімділігін тексеру көптеген мәселелерді табуға көмектеседі бағдарламалық жасақтама және функционалдылық.

Шолу

Бағдарламалық жасақтаманың сенімділігі - бұл бағдарламалық қамтамасыздандырудың белгілі бір ортада және белгілі бір уақыт аралығында дұрыс жұмыс жасау ықтималдығы. Келесі формуланы қолдана отырып, істен шығу ықтималдығы барлық қол жетімді кіріс күйлерінің үлгісін сынау арқылы есептеледі. Сәтсіздік арасындағы орташа уақыт (MTBF) = Сәтсіздікке дейінгі орташа уақыт (MTTF) + орташа жөндеу уақыты (MTTR)

Ықтималдылық = Істен шыққан істер саны / Қаралатын істердің жалпы саны

Барлық мүмкін енгізу күйлерінің жиыны енгізу кеңістігі деп аталады. Бағдарламалық жасақтаманың сенімділігін табу үшін берілген кеңістіктен шығатын кеңістікті және бағдарламалық жасақтаманы табуымыз керек.[1]

Сенімділікті тексеру үшін мәліметтер әр түрлі даму кезеңдерінен жинақталады, мысалы, жобалау және пайдалану кезеңдері. Тесттер шығындар мен уақыт шектеулері сияқты шектеулерге байланысты шектеулі. Бағдарламалық жасақтама сенімділігін тексеру үшін бағдарламалық өнімдерден статистикалық үлгілер алынады. Жеткілікті мәліметтер немесе ақпараттар жиналғаннан кейін статистикалық зерттеулер жүргізіледі. Уақыт шектеулері тестілердің белгіленген күндерін немесе соңғы мерзімдерін қолдану арқылы шешіледі. Осы кезеңнен кейін бағдарламалық жасақтама тоқтатылады және нақты іске асыру кезеңі басталады. Шығындар мен уақыт бойынша шектеулер бар болғандықтан, деректер мұқият жиналады, сонда әрбір деректер белгілі бір мақсатқа ие болады және күтілетін дәлдікке ие болады.[2] Сенімділікті тексеруден қанағаттанарлық нәтижеге жету үшін сенімділіктің кейбір сипаттамаларын ескеру қажет, мысалы, істен шығудың орташа уақыты (MTTF)[3] үш фактормен өлшенеді:

  1. жұмыс уақыты,
  2. өшіру циклдарының саны,
  3. және күнтізбелік уақыт.

Егер шектеулер жұмыс уақытында болса немесе жақсарту үшін бірінші кезекте тұрған болса, тестілеу уақытын қысқарту үшін сығылған уақыт үдетулерін қолдануға болады. Егер назар күнтізбелік уақытқа аударылса (яғни, алдын-ала белгіленген мерзім болса), онда күшейтілген стресс-тестілеу қолданылады.[2][4]

Өлшеу

Бағдарламалық жасақтама қол жетімділік бойынша өлшенеді сәтсіздіктер арасындағы орташа уақыт (MTBF).[5]

MTBF мыналардан тұрады сәтсіздікке дейінгі уақыт (MTTF) және жөндеу уақыты дегенді білдіреді (MTTR). MTTF - бұл екі қатардағы ақаулар арасындағы уақыт айырмасы, ал MTTR - бұл ақаулықты түзету үшін қажет уақыт.[6]

Тұрақты мемлекет қол жетімділік бағдарламалық жасақтаманың жұмыс жасайтын пайызын білдіреді.

Мысалы, бағдарламалық жасақтама үшін MTTF = 1000 сағат болса, онда бағдарламалық жасақтама 1000 сағат үздіксіз жұмыс істеуі керек.

Сол бағдарламалық жасақтама үшін MTTR = 2 сағат болса, онда .

Тиісінше,

Бағдарламалық жасақтаманың сенімділігі істен шығу деңгейімен өлшенеді ().

Бағдарламалық жасақтаманың сенімділігі - бұл 0 мен 1 арасындағы сан, бағдарламадағы қателер немесе қателер жойылған кезде сенімділік артады.[7] Бағдарламалық жасақтама сенімділігінің өсуінің көптеген модельдері бар (SRGM) (Бағдарламалық жасақтаманың сенімділік модельдерінің тізімі ), соның ішінде, логарифмдік, көпмүшелік, экспоненциалды, дәрежелі және S-тәрізді

Сенімділікті тексеру мақсаттары

Сенімділікті тексерудің негізгі мақсаты - берілген шарттарда бағдарламалық жасақтаманың өнімділігін, оның ерекшеліктерін ескере отырып, белгілі бекітілген процедураларды қолдана отырып, түзету шараларын қолданбай тексеру.

Екінші мақсат

Сенімділікті тексерудің екінші мақсаттары:

  1. Қайталанатын сәтсіздіктердің қабылдау құрылымын табу.
  2. Белгіленген уақыт аралығында болатын сәтсіздіктер санын табу үшін.
  3. Бағдарламалық жасақтаманың орташа өмірін табу.
  4. Сәтсіздіктің негізгі себебін анықтау.
  5. Профилактикалық шараларды қабылдағаннан кейін бағдарламалық жасақтаманың әр түрлі бөлімшелерінің жұмысын тексеру.

Мақсатты анықтауға арналған ұпайлар

Мақсатты құрудағы кейбір шектеулерге мыналар жатады:

  1. Бағдарламалық жасақтаманың әрекеті берілген жағдайларда анықталуы керек.
  2. Мақсат орындалуы керек.
  3. Уақыт шектеулері қарастырылуы керек.[8]

Сенімділікті тексеру маңыздылығы

Компьютерлік бағдарламалық қамтамасыздандыру көптеген түрлі салаларға өтті, бағдарламалық қамтамасыз ету өнеркәсіптік, коммерциялық және әскери жүйелердің маңызды бөлігі болып табылады. Қауіпсіздіктің маңызды жүйелерінде көптеген қосымшалар болғандықтан, бағдарламалық қамтамасыз ету қазір маңызды зерттеу бағыты болып табылады. Дегенмен бағдарламалық жасақтама соңғы ғасырдағы ең жылдам дамып келе жатқан технологияға айналуда, оларды бағалауға арналған толық, ғылыми, сандық шара жоқ. Бағдарламалық жасақтама сенімділігін тексеру осы бағдарламалық жасақтама технологияларын бағалауға көмектесетін құрал ретінде пайдаланылуда.[9]

Бағдарламалық жасақтама өнімділігі мен бағдарламалық жасақтаманы әзірлеуді жақсарту үшін сенімділікті мұқият бағалау қажет. Бағдарламалық жасақтама сенімділігін тексеру өте маңызды, себебі ол бағдарламалық жасақтама менеджерлері мен практиктер үшін өте жақсы қолданылады.[10]

Бағдарламалық жасақтама сенімділігін тестілеу арқылы тексеру үшін:

  1. Бағдарламалық жасақтаманың қаншалықты ұзаққа созылатындығын ақылға қонымды бағалау үшін жеткілікті уақыт ішінде сынақ жағдайларының жеткілікті саны орындалуы керек. Ақаулықтарды (жадтың ағып кетуі және буфердің толып кетуі сияқты) анықтау үшін ұзаққа созылатын сынақтар қажет, бұл ақаулық немесе орын алмау үшін уақытты қажет етеді.
  2. Сынақ жағдайларын бөлу бағдарламалық жасақтаманың нақты немесе жоспарланған жедел профиліне сәйкес келуі керек. Бағдарламалық жасақтаманың функциясы немесе ішкі жиыны неғұрлым жиі орындалатын болса, сол функцияға немесе ішкі жиынтыққа бөлінетін тестілік жағдайлардың пайызы соғұрлым көп болады.

Сенімділікті тексеру түрлері

Бағдарламалық жасақтаманың сенімділігін тексеру функционалды тестілеуді, жүктемені сынауды және регрессиялық тестілеу.[11]

Мүмкіндік сынағы

Мүмкіндіктерді тестілеу бағдарламалық жасақтаманың мүмкіндіктерін тексереді және келесі қадамдарда жүзеге асырылады:

  • Бағдарламалық жасақтамадағы әрбір операция бір рет орындалады.
  • Екі операцияның өзара әрекеттесуі төмендейді және
  • Әрбір операция оның дұрыс орындалуы үшін тексеріледі.

Ерекшелік сынағы жүктеме сынағымен жалғасады.[11]

Жүктеме сынағы

Бұл тест максималды жұмыс жүктемесі кезінде бағдарламалық жасақтаманың өнімділігін тексеру үшін өткізіледі. Кез-келген бағдарламалық жасақтама жүктеменің белгілі бір мөлшеріне дейін жақсы жұмыс істейді, содан кейін бағдарламалық жасақтаманың жауап беру уақыты нашарлай бастайды. Мысалы, веб-сайт жұмысының нашарлауынсыз бір уақытта қанша қолданушыны қолдай алатындығын тексеруге болады. Бұл тестілеу негізінен көмектеседі Мәліметтер базасы және Қолданба серверлері. Сондай-ақ жүктемені сынау қажет бағдарламалық жасақтаманың өнімділігін тексеру, бұл кейбір бағдарламалық жасақтаманың жұмыс жүктемесінде қаншалықты жақсы жұмыс істейтінін тексереді.[11]

Регрессиялық тест

Регрессиялық тестілеу алдыңғы қателерді түзету арқылы кез-келген жаңа қателердің енгізілгендігін тексеру үшін қолданылады. Регрессиялық тестілеу бағдарламалық жасақтама мүмкіндіктері өзгергеннен немесе жаңартылғаннан кейін өткізіледі. Бұл тестілеу бағдарламалық жасақтаманың ұзақтығы мен ерекшеліктеріне байланысты мерзімді түрде өткізіледі.[11]

Тест жоспарлау

Сенімділікті тексеру тестілеудің басқа түрлерімен салыстырғанда қымбатқа түседі. Осылайша, сенімділікті тексеру кезінде дұрыс басқару және жоспарлау қажет. Бұл жоспарға тестілеу процесі, қоршаған орта туралы мәліметтер, тестілеу кестесі, тестілеу пункттері және т.б. кіреді.

Тест жағдайларын жобалау кезіндегі мәселелер

Тест жағдайларын жобалау кезінде кездесетін кейбір жалпы мәселелерге мыналар жатады:

  • Бағдарламалық жасақтаманың әрбір өрісі үшін тек жарамды енгізу мәндерін таңдау арқылы тестілік жағдайларды жасауға болады. Белгілі бір модульге өзгертулер енгізілгенде, алдыңғы мәндер бағдарламалық жасақтаманың ескі нұсқасынан кейін енгізілген жаңа мүмкіндіктерді іс жүзінде сынамауы мүмкін.
  • Бағдарламалық жасақтамада кез-келген қолданыстағы сынақ жағдайында өңделмеген кейбір маңызды жұмыстар болуы мүмкін. Сондықтан тестілік жағдайларды мұқият таңдау арқылы сынақ жағдайларының барлық мүмкін түрлерінің қарастырылуын қамтамасыз ету қажет.[11]

Тестілеу арқылы сенімділікті арттыру

Бағдарламалық жасақтаманы әзірлеу және жобалау кезіндегі зерттеулер өнімнің сенімділігін арттыруға көмектеседі. Сенімділікті тексеру бағдарламалық жасақтаманың істен шығу режимін жою үшін жүзеге асырылады. Өнімнің өмірлік сынағын әрдайым дизайн бөлігі аяқталғаннан немесе кем дегенде толық дизайны аяқталғаннан кейін жасау керек.[12] Сәтсіздіктерді талдау және дизайнды жақсарту тестілеу арқылы қол жеткізіледі.

Сенімділіктің өсуін тексеру

[12] Бұл тестілеу бастапқыда жиі істен шығуы керек бағдарламалық жасақтаманың жаңа прототиптерін тексеру үшін қолданылады. Сәтсіздіктің себептері анықталып, ақауларды азайту бойынша шаралар қабылданады - Т прототипі үшін жинақталған жалпы уақыт. n (T) - басынан T-ге дейінгі сәтсіздік саны. n (T) / T үшін сызылған сызық - түзу сызық. Бұл график Дуэйн учаскесі деп аталады. Сынақтың барлық басқа циклдарынан кейін қаншалықты сенімділікке қол жеткізуге болатындығын біліп, оны түзетуге болады.

n (T) үшін теңдеуді шешу,

Мұндағы K - e ^ b.Егер теңдеудегі альфа мәні нөлге тең болса, берілген сәтсіздікке күткендей сенімділікті арттыру мүмкін емес. Нольден жоғары альфа үшін T-нің жинақталған уақыты артады. Бұл сәтсіздіктер саны сынақтың ұзақтығына байланысты емес екенін түсіндіреді.

Ағымдағы шығарылымға арналған тестілік жағдайларды жобалау

Егер бағдарламалық жасақтаманың қолданыстағы нұсқасына жаңа мүмкіндіктер қосылып жатса, онда сол операцияға арналған тестілік жағдай басқаша жасалады.

  • Алдымен ағымдағы нұсқаға қанша жаңа тест жазылатынын жоспарлаңыз.
  • Егер жаңа мүмкіндік кез-келген қолданыстың бір бөлігі болса, онда олардың арасында жаңа және бар мүмкіндіктердің сынақ жағдайларын бөлісіңіз.
  • Ақыр соңында, қазіргі және алдыңғы нұсқалардағы барлық тестілік жағдайларды біріктіріп, барлық нәтижелерді жазыңыз.[11]

Бағдарламалық жасақтама үшін жаңа сынақ жағдайларының санын есептеудің алдын-ала анықталған ережесі бар. Егер N - бағдарламалық жасақтаманың жаңа шығарылымы үшін жаңа операциялардың пайда болу ықтималдығы, R - ағымдағы шығарылымда қолданылған операциялардың пайда болу ықтималдығы, ал Т - бұрын қолданылған барлық сынақ жағдайларының саны

Операциялық тестілеу негізінде сенімділікті бағалау

Бағдарламалық жасақтаманың сенімділігін тексеру үшін жедел тестілеу әдісі қолданылады. Мұнда бағдарламалық жасақтама өзінің тиісті жұмыс ортасында қалай жұмыс істейтінін тексереді. Бағалаудың осы түріне қатысты негізгі проблема осындай операциялық ортаны құру болып табылады. Мұндай модельдеу кейбір атом салаларында, авиацияда және т.б. салаларда байқалады. Болашақтың сенімділігін болжау сенімділікті бағалаудың бір бөлігі болып табылады.

Бағдарламалық жасақтаманың сенімділігін тексеру үшін жедел тестілеуде қолданылатын екі әдіс бар:

Мемлекеттік сенімділіктің тұрақты бағасы
Бұл жағдайда біз жеткізілген бағдарламалық өнімдердің кері байланысын қолданамыз. Осы нәтижелерге байланысты біз өнімнің келесі нұсқасы үшін болашақ сенімділікті болжай аламыз. Бұл физикалық өнімдерге арналған сынамаларды сынауға ұқсас.
Сенімділіктің өсуіне негізделген болжам
Бұл әдіс тестілеу процедурасының құжаттамасын қолданады. Мысалы, дамыған бағдарламалық жасақтаманы және осы бағдарламалық жасақтаманың әр түрлі жаңа нұсқаларын жасап жатқанымызды қарастырыңыз. Біз әр нұсқаны тестілеу туралы деректерді қарастырамыз және байқалған тенденцияға сүйене отырып, бағдарламалық жасақтаманың жаңа нұсқасының сенімділігін болжаймыз.[13]

Сенімділіктің өсуін бағалау және болжау

Бағдарламалық жасақтама сенімділігін бағалау және болжау кезінде біз сенімділіктің өсу моделін қолданамыз. Бағдарламалық жасақтаманы пайдалану кезінде оның істен шығуы туралы кез-келген деректер статистикалық түрде сақталады және сенімділіктің өсу моделіне кіріс ретінде беріледі. Осы деректерді пайдалана отырып, сенімділіктің өсу моделі бағдарламалық жасақтаманың сенімділігін бағалай алады.

Сенімділіктің өсу моделі туралы көптеген мәліметтер сәтсіздік процесін көрсететін ықтималдық модельдерімен қол жетімді. Бірақ барлық жағдайларға сай келетін модель жоқ. Сондықтан біз тиісті шарттарға негізделген модельді таңдауымыз керек.

Ақаусыз жұмыс негізінде сенімділікті бағалау

Бұл жағдайда бағдарламалық жасақтаманың сенімділігі келесі жорамалдармен бағаланады:

  • Егер ақаулық табылса, оны біреу түзетеді ме.
  • Ақауларды жою бағдарламалық жасақтаманың сенімділігіне әсер етпейді.
  • Бағдарламалық жасақтаманың әрбір түзетуі дәл.[13]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ Бағдарламалық жасақтама сенімділігі. Хоанг Фам.
  2. ^ а б Е.Е. Льюис. Сенімділік инженериясына кіріспе.
  3. ^ «MTTF».
  4. ^ IEEE бағдарламалық қамтамасыздандырудың ұсынылған тәжірибесі, IEEE, дои:10.1109 / ieeestd.2017.7827907, ISBN  978-1-5044-3648-9
  5. ^ Роджер Прессман (1982). Бағдарламалық жасақтама жасау тәжірибешінің тәсілі. McGrawHill.
  6. ^ «Сенімділікті тексеру тәсілдері және сенімділіктің мақсаттарын қою».
  7. ^ Матхур. Бағдарламалық жасақтаманы тестілеудің негіздері. Pearson басылымдары.
  8. ^ Сенімділік және өмірді сынау бойынша анықтамалық. Димитри кечеоглу.
  9. ^ Бағдарламалық жасақтаманың сенімділігін бағалаудың статистикалық негізі. M. xie.
  10. ^ Бағдарламалық жасақтаманың сенімділігін модельдеу. M. Xie.
  11. ^ а б c г. e f Джон Д.Муса (2004). Бағдарламалық жасақтама сенімділігі: неғұрлым сенімді бағдарламалық жасақтама, тезірек және арзанырақ. McGraw-Hill. ISBN  0-07-060319-7.
  12. ^ а б Ливис (1995-11-15). Сенімділік инженериясына кіріспе. ISBN  0-471-01833-3.
  13. ^ а б «Сенімділікті бағалау проблемасы». CiteSeerX  10.1.1.104.9831. Жоқ немесе бос | url = (Көмектесіңдер)

Сыртқы сілтемелер