Бағдарламалық жасақтаманы тестілеу - бұл өнімнің сапасы туралы ақпарат алу үшін бағдарламалық жасақтаманы зерттеу процесі.
Бағдарламалық жасақтаманы тестілеудің қолданыстағы әдістері барлық кемшіліктерді біркелкі және толық анықтауға және талданатын бағдарламаның дұрыс жұмыс істеуін анықтауға мүмкіндік бермейді, сондықтан барлық қолданыстағы тестілеу әдістері зерттеліп жатқан немесе жасалып жатқан бағдарламалық қамтамасыз етуді тексеру процесінің бөлігі ретінде жұмыс істейді.
Ресми тексерудің немесе тексерудің мұндай процесі қолданылған әдіс тұрғысынан кемшіліктердің жоқтығын дәлелдей алады. (Яғни, бағдарламалық жасақтаманың өмірлік циклінің барлық кезеңдерінде пайда болатын адам факторын ескере отырып, бағдарламалық жасақтама өнімінде ақаулардың жоқтығын дәл анықтауға немесе кепілдік беруге мүмкіндік жоқ).
Бағдарламалық жасақтаманы тексеру және тексеру мәселесін шешудің көптеген тәсілдері бар, бірақ күрделі бағдарламалық өнімдерді тиімді тестілеу өте қатаң және нақты процедураларды орындаумен немесе оларды жасаумен шектелмейтін өте шығармашылық процесс болып табылады.
ИСО 9126 [1] тұрғысынан, сапаны (бағдарламалық қамтамасыздандыру) келесі компоненттерді ескере отырып, зерттеліп отырған бағдарламалық жасақтаманың жиынтық сипаттамасы ретінде анықтауға болады:
Сенімділік
Еріп жүреді.
Тәжірибелік.
Тиімділік
Ұтқырлық.
Функционалдылық
Тест деңгейлері
Бірлікті тестілеу (блокты тестілеу) - тестілеуге болатын ең аз компонент, мысалы, жеке сынып немесе функция сыналады. Бірлікті тестілеуді көбінесе бағдарламалық жасақтама жасаушылар жасайды.
Интеграциялық тестілеу - компоненттер, ішкі жүйелер арасындағы интерфейстер тексеріледі. Егер осы кезеңде уақыттың резерві болса, тестілеу келесі ішкі жүйелерді біртіндеп қосумен біртіндеп қайталанады.
Жүйелік тестілеу - интеграцияланған жүйе талаптарға сәйкестігі тексеріледі.
Альфа тестілеу - жүйемен нақты өңдеуді тұрақты әзірлеушілер немесе елмен / тұтынушылармен жүйемен нақты жұмыс имитациясы. Көбінесе альфа тестілеу өнімді әзірлеудің ерте сатысында өткізіледі, бірақ кейбір жағдайларда оны дайын қабылдау үшін ішкі қабылдау сынағы ретінде қолдануға болады. Кейде альфа тестілеу дебаггердің көмегімен немесе табылған қателерді тез анықтауға көмектесетін ортаны қолдану арқылы жүзеге асырылады. Анықталған қателер бағдарламалық жасақтама қолданылатын ортаға ұқсас ортада қосымша зерттеу жүргізу үшін тестерлерге жіберілуі мүмкін.
Бета-тестілеу - кейбір жағдайларда шектеулермен нұсқаны тарату (функционалдылығы немесе жұмыс уақыты бойынша) белгілі бір адамдар тобы үшін өнімде бірнеше қателіктер бар екеніне көз жеткізу үшін жүзеге асырылады. Бета тестілеу кейде болашақ пайдаланушылардан өнім туралы кері байланыс алу үшін жүргізіледі.
Көбінесе еркін / ашық бастапқы бағдарламалық жасақтама үшін альфа тестілеу кезеңі кодтың функционалды мазмұнын сипаттайды, ал бета тестілеу қателерді түзету кезеңін сипаттайды. Сонымен қатар, әдетте, дамудың әр кезеңінде соңғы пайдаланушыларға жұмыстың аралық нәтижелері қол жетімді болады.
Статикалық және динамикалық тестілеу
Жоғарыда сипатталған әдістер - ақ жолақты сынау және қара жәшікті сынау- код орындалады деп болжайды, ал айырмашылық тек тексерушіде бар ақпаратта болады. Екі жағдайда да бұл динамикалық тестілеу.
Статикалық тестілеу кезінде бағдарламаның коды орындалмайды - бағдарламаны талдау қолмен оқылатын немесе арнайы құралдармен талданатын бастапқы кодқа негізделген. Кейбір жағдайларда талданатын бастапқы код емес, аралық код (мысалы, bytode немесе MSIL коды).
Статикалық тестілеуге тестілеуге қойылатын талаптар, техникалық сипаттамалар және құжаттама кіреді.
Ақ қорап пен қара жәшікті сынау
Тестілеу мамандарының терминологиясында «ақ жолақты тестілеу» және «қара жолақты тестілеу» деген тіркестер тест жасаушының тексерілген бағдарламалық жасақтаманың бастапқы кодына қол жетімділігіне немесе тестілеу модуль ұсынған қолданушы интерфейсі немесе қолданбалы бағдарламалау интерфейсі арқылы жүргізілетініне қатысты болады.
Ақ жолақты тестілеу кезінде (ағылшынша white-box тестілеу, олар да - мөлдір қорап), тест жасаушы бағдарламалардың бастапқы кодына қол жеткізе алады және тексерілген бағдарламалық жасақтаманың кітапханаларына байланысты код жаза алады. Бұл жүйенің белгілі бір бөліктері ғана сынақтан өткізілетін қондырғыға арналған. Бұл құрылым компоненттерінің белгілі бір дәрежеде жұмыс істейтін және тұрақты болуын қамтамасыз етеді. Ақ жолақты тестілеу кодты қамтуды қолданады.
Қара қорапты тестілеу кезінде тестерлер бағдарламалық жасақтамаға тапсырыс беруші немесе пайдаланушы сияқты бірдей интерфейстер арқылы немесе басқа компьютерге немесе басқа процеске тестілеу үшін жүйеге қосылуға мүмкіндік беретін сыртқы интерфейстер арқылы қол жеткізе алады. Мысалы, тестілеу модулі тестіленетін бағдарламадағы пернелер мен тінтуірдің батырмаларын іс-қимылдың өзара әрекеттесу механизмін қолдана отырып, бәрі дұрыс жүріп жатқанына, осы оқиғалар нақты батырмалар мен тінтуірдің түймелеріне бірдей жауап беретініне сенімді бола алады. Әдетте, қара жәшікті тестілеу техникалық талаптарды немесе жүйенің талаптарын сипаттайтын басқа құжаттарды қолдана отырып жүзеге асырылады. Әдетте, тестілеудің бұл түрінде қамту өлшемі кіріс деректерінің құрылымын, талаптарды қамтуды және модельді қамтуды (модельдік тестілеу кезінде) қамтиды.
Сұр қорапты тестілеу кезінде тест әзірлеушісі бастапқы кодқа қол жеткізе алады, бірақ тестілерді тікелей орындау кезінде әдетте кодқа кіру талап етілмейді.
Егер «альфа» және «бета тестілеу» өнім шығарылғанға дейінгі кезеңдерге сілтеме берсе (сонымен қатар, тестілеу қауымдастығының көлеміне және тестілеу әдістеріне шектеулерге қатысты болса), «ақ жәшік» пен «қара қорапты» сынақтан өткізу тәсілдеріне қатысты болады. сынаушы мақсатқа жетеді.
Бета-тестілеу, әдетте, қара жәшік технологиясымен шектелген (тестерлердің тұрақты бөлігі әдетте ақ жәшікті бета-тестілеумен қатар жүргізеді). Осылайша, «бета тестілеу» термині бағдарламаның күйін («альфа» -дан гөрі шығарылымға жақын) немесе тестерлердің белгілі бір тобын және осы топ жасаған процесті көрсетуі мүмкін. Сонымен, тестілеу ақ жолақты тестілеу бойынша жұмысын жалғастыра алады, дегенмен бағдарламалық жасақтама бета-сатысында (сатысында) тұр, бірақ бұл жағдайда ол бета-тестілеуге кірмейді (топ / процесс).
Тестілеу бағдарламаларын ұйымдастыру
Бағдарламалық жасақтаманы тестілеу бір уақытта 3 бағытта жүзеге асырылады:
Кодты тексеру (қайта қарау): Сынақшы бастапқы кодты көзбен қарап, ондағы қателіктерді, сонымен қатар код пен оған қойылатын талаптар арасындағы әр түрлі сәйкессіздіктерді табуға тырысады. Талап - бұл жобаны жасаушылар ұстанатын норма, бағдарламалық жасақтамаға әсер ету ортасынан белгілі бір іс-әрекетке реакция, бағдарламалық жасақтаманың әр түрлі жағдайдағы әрекеті.
Жоғары деңгейлі тестілеу: Мұнда тестілеудің негізгі мақсаты - әзірлеудің барлық талаптарына сәйкес келетіндігін анықтау. Бағдарламалық жасақтама үшін эмуляторлар жазылады, олардың көмегімен тестерлер жүйенің жұмысын оператор ретінде бақылай алады. Ол жүйенің қолданушымен диалогты қалай жүргізетінін, қандай хабарламалар беретіндігін, әртүрлі оқиғаларға қалай жауап беретінін, ақпаратты қалай сақтайтынын және т.б. Осы кезеңде анықталған қателіктердің көпшілігі бағдарламалық өнімнің қолданушымен өзара әрекеттесуіндегі қателіктермен байланысты - қате хабарламалардың шығуы, оператордың сұранысына дұрыс емес жауап және т.б.
Төмен деңгейлі тестілеу: Сынақшы бастапқы кодтың логикалық түрде толтырылғандығын, ол жасалған жүйенің барлық мүмкін нұсқаларын қамтитындығын тексереді.
Тестілеу стандарттары бар, олар әзірленген бағдарламалық жасақтама қолданылатын аймаққа байланысты. Төменде олардың кейбіреулері:
ISO 90019001 стандарты - бұл сапаны бақылау қағидаттарына негізделген стандарт. Онда, мәні бойынша, негізгі функционалдық талаптар қойылады, олардың әрқайсысы үшін не істеліп жатқанын, айтылғанды қалай жасау керектігін және не істелгенін көрсете білу керек. Бұл стандартты бағдарламалық қамтамасыз ету ортасына енгізу - ISO 9000-3.
ISO / IEC 12207 және IEEE / EIA 12207 / IEC 12207 - тұжырымдамадан зейнеткерлікке дейінгі бағдарламалық жасақтаманың өмірлік циклінің құрылымын сипаттайтын халықаралық стандарттар. IEEE / EIA 12207 стандарты - бұл Америка Құрама Штаттары үшін ISO / IEC 12207 стандартының бейімделуі.
Осы стандарттарға сәйкес белгілі бір салада бағдарламалық қамтамасыз етуді тестілеуге қойылатын талаптар қойылады. Мысалы, АҚШ авиациясында RTCA (Авиацияға қойылатын талаптар және техникалық түсініктер) стандарты ISO / IEC 12207 негізінде жасалды. Онда жоғарғы және төменгі деңгейлерді тексеруге арналған келесі талаптар көрсетілген: Жоғарғы деңгейді тестілеу:
Жоғары деңгей талаптары бағдарламалық жасақтамаға жүйелік талаптарды қамтуы керек
Бағдарламаның архитектурасын ескере отырып, жоғары деңгейдегі талаптар тұжырымдалуы керек
Бағдарлама коды бағдарламалық жасақтама архитектурасына және төменгі деңгей талаптарына сәйкес келуі керек.
Жинақталған және пайдалануға дайын код бағдарламалық қамтамасыз ету талаптарына сәйкес келуі керек
Пайдаланылған мәндер мақсаттарға техникалық сәйкес келуі керек және оларды бағдарламалық жасақтаманың барлық деңгейлері үшін орындауы керек
Төмен деңгейлі тестілеу:
Төменгі деңгей талаптарын тексеру
Бағдарламалық жасақтаманың архитектурасын тексеру
Бағдарламалық жасақтамада жазылған барлық функциялардың логикалық қамтуын тексеру
Тест процесін бақылау
Бағдарламалық жасақтаманың тестілеуден тәуелсіздігі. I.e. Бағдарламалық жасақтаманы тестілеу үшін арнайы жолмен қайта құруға болмайды
Тестілеу қателіктердің белгілі бір класын анықтау үшін бастапқы кодты бірнеше рет қамтуы керек.
Мықты тестілеу
Жанама қателерді анықтауға арналған тест. Мысалы: бағдарламалық жасақтама әзірлеу стандарттарына сәйкестігі.
Сайттың дұрыс жұмыс істеуін тексеру үшін келесі тармақтарды тексеру және тексеру туралы шешім қабылданды:
жүйенің қауіпсіздігі (жүйені бұзу әрекеттеріне қарсылықты тексеру);
жол берілмейтін операцияларды жасау (жарамсыз әрекет үшін қателіктерді шығару), мысалы, қолданушының болмауы туралы мәліметтерді жинау немесе дұрыс емес әрекеттер жасау;
модульдердің дұрыс жұмысын тексеру. Модульдерді жеке және өз бетінше тестілеу;
тұтастай жүйеде модульдерді сынау. Интернетте сайтты іске қосқаннан кейін жүйені тестілеу. Модульдер мен жүйенің тұтастығының өзара әрекеттесуін тексеру.
3.3 Тест әзірлеу және жүйені тестілеу
Жүйенің дұрыс жұмыс істеуін тексеру үшін келесі тармақтарды тексеру және тексеру туралы шешім қабылданды:
Жүйелік қауіпсіздік (жүйені бұзу әрекеттеріне қарсылықты тексеру).
Жарамсыз операцияларды өңдеу (жарамсыз әрекет үшін қате шығуы), мысалы, қате мәліметтер жиынтығы
Модульдердің дұрыс жұмыс істеуін тексеру. Модульдерді жеке-жеке және тестілеу.
Модульдерді жүйенің бір бөлігі ретінде тестілеу. Модульдер мен жүйенің тұтастығының өзара әрекеттесуін тексеру.
«Тестілеу бағдарламаларын қателердің болуын көрсету үшін қолдануға болады, бірақ ол олардың болмауын ешқашан көрсетпейді» - Дийкстра, 1970.
Бағдарламалық жасақтаманы тестілеу барлық бағдарламалық жүйелер дамуының ажырамас бөлігі болып табылады.
CMS жүйесін тестілеу жүйені құрайтын жекелеген кластарды дамыту кезінде де, жүйелер мен сыныптардың әртүрлі модульдерін біріктіру кезеңінде де жүргізілді.
Жарамсыз деректерді енгізу кезінде жүйе сәйкес емес қателіктер жібереді, мысалы, дұрыс емес логин мен пароль, мәліметтер формасының өрістерін дұрыс толтырмау туралы хабарлама.
Тестілеу кезінде маңызды емес қателер табылды, олар кейіннен шешілді. Қалыпты жағдайдағы тексеру жүйенің дұрыс жұмыс істейтінін көрсетті. Жүйенің дұрыс жұмысын тексеру үшін жарамсыз немесе қате мәндер енгізілді.
Достарыңызбен бөлісу: |