Қара қоробша тәсілі: Бағдарламалық қамтамасыздыуды ішкі құрылымын қарастырмай, функционалдық мүмкіндіктерін тексеру. Тестілеудің барлық деңгейлерінде қолданылады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бағдарламалық жасақтаманы сынау әдісі
Method of software testing
Black box testing, кейде спецификацияға негізделген сынау деп аталады, – бұл бағдарламалық жасақтаманың ішкі құрылымын және жұмыс істеуін қарастырмай, оның функционалдығын тексеру әдісі. Бұл сынау әдісі бағдарламалық қамтамасыз етуді сынақтан өткізудің кез келген деңгейіне қолданылуы мүмкін: бірлік, интеграция, жүйе және қабылдау сынақтары. Black box testing ену сынақтарында да қолданылады, онда этикалық хакер шабуылға ұшыраған жүйе туралы ешқандай ақпаратсыз сыртқы хакерлік шабуылдарды немесе киберсоғыстың әрекеттерін модельдейді.
Black box testing, sometimes referred to as specification based testing, is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, integration, system and acceptance. Black box testing is also used as a method in penetration testing, where an ethical hacker simulates an external hacking or cyber warfare attack with no knowledge of the system being attacked.
Сынау әдістері
Анықтамаға негізделген сынақ, бағдарламалық қамтамасыз етудің функционалдығын қолданыстағы талаптарға сәйкес тексеруге бағытталған. Сынаудың бұл деңгейі әдетте тестілеушіге жан-жақты сынақ жағдайларын ұсынуды қажет етеді, одан кейін тестілеуші берілген кіріс үшін шығыс мәнінің (немесе мінез-құлқының) күтілетін мәнмен сәйкес келе ме, я болмай ма, деп тексере алады. Бұл ретте, қолданбаның коды, ішкі құрылымы және жалпы бағдарламалау туралы білім қажет емес. Тестілеуші бағдарламалық жасақтаманың не істеу керектігін біледі, бірақ оны қалай істейтінін білмейді. Мысалы, тестілеуші белгілі бір кіріс әрқашан бірдей, өзгермейтін шығыс беретінін біледі, бірақ бағдарламалық жасақтама шығысты қалай құратынын білмейді.
Specification based testing aims to test the functionality of software according to the applicable requirements. This level of testing usually requires thorough test cases to be provided to the tester, who then can simply verify that for a given input, the output value (or behavior), either "is" or "is not" the same as the expected value specified in the test case. Specific knowledge of the application's code, internal structure and programming knowledge in general is not required. The tester is aware of what the software is supposed to do but is not aware of how it does it. For instance, the tester is aware that a particular input returns a certain, invariable output but is not aware of how the software produces the output in the first place.
Сынақ жағдайлары
Сынақ жағдайлары спецификациялар мен талаптар негізінде құрастырылады, яғни қолданбаның не істеуі тиіс. Сынақ жағдайлары әдетте бағдарламалық қамтамасының сыртқы сипаттамаларынан туындайды, оның ішінде спецификациялар, талаптар және жобалау параметрлері бар. Қолданылатын сынақтар көбінесе функционалдық болғанымен, функционалдық емес сынақтар да қолданылуы мүмкін. Сынақ жасаушы жарамды және жарамсыз деректемелерді таңдайды және дұрыс нәтижені анықтайды, көбінесе сынақ оракулының көмегімен немесе бұрынғы, дұрыс деп танылған нәтижелерді пайдаланады, сынақ нысанының ішкі құрылымы туралы білімсіз.
Test cases are built around specifications and requirements, i. e., what the application is supposed to do. Test cases are generally derived from external descriptions of the software, including specifications, requirements and design parameters. Although the tests used are primarily functional in nature, non functional tests may also be used. The test designer selects both valid and invalid inputs and determines the correct output, often with the help of a test oracle or a previous result that is known to be good, without any knowledge of the test object's internal structure.
Сынақ жобалау әдістері
Қара қорапты сынаудың типтік әдістеріне шешім кестесін сынау, барлық жұптарды сынау, эквиваленттілік бөлу, шекаралық мәндерді талдау, себеп-салдар графигі, қателерді болжау, күй өзгерту сынағы, қолдану жағдайын сынау, пайдаланушы әңгімесін сынау, домендік талдау және синтаксис сынағы кіреді.
Typical black box test design techniques include decision table testing, all pairs testing, equivalence partitioning, boundary value analysis, cause–effect graph, error guessing, state transition testing, use case testing, user story testing, domain analysis, and syntax testing.
Сынақ көлемі
Сынақпен қамту – жүйе немесе қолданба үшін қара қорапты сынау арқылы тексерілген бағдарламалық қамтамасыз ету талаптарының проценттік көрсеткіші. Бұл кодты қамтудан өзгеше, ол бағдарламаның ішкі құрылымын зерттейді және тесттік жиынтық іске қосылғанда бағдарламаның бастапқы кодының қаншалықты орындалғанын өлшейді. Сынақпен қамтуды өлшеу, ақауларды жылдам анықтап жоюға, сондай-ақ толыққанды сынақ жиынтығын құруға және берілген талаптарға қатысы жоқ сынақтарды жоюға мүмкіндік береді.
Test coverage refers to the percentage of software requirements that are tested by black box testing for a system or application. This is in contrast with code coverage, which examines the inner workings of a program and measures the degree to which the source code of a program is executed when a test suite is run. Measuring test coverage makes it possible to quickly detect and eliminate defects, to create a more comprehensive test suite. and to remove tests that are not relevant for the given requirements.
Тиімділігі
Қара қорапты сынау дұрыс жұмыс істеуін қамтамасыз ету үшін қажет болуы мүмкін, бірақ күрделі немесе жоғары тәуекелді жағдайлардан сақтану үшін жеткіліксіз. Қара қорап техникасының артықшылығы – бағдарламалау білімі қажет емес. Бағдарламашылардың қандай да бір көзқарасы болса, тестілеушінің әлдеқайда басқаша көзқарасы болуы мүмкін және ол функционалдықтың әртүрлі аспектілеріне көбірек назар аударуы мүмкін. Екінші жағынан, қара қорапты сынауды "қарсыңды көрмейтін лабиринтте шамсыз серуендеумен" теңеуге болады. Олар бастапқы кодты қарастырмағандықтан, тестілеуші бір сынақ жағдайымен тексеруге болатын нәрсені тексеру үшін көптеген сынақ жағдайларын жасайтын, немесе бағдарламаның кейбір бөліктерін сыналмаған күйде қалдыратын жағдайлар туындауы мүмкін.
Black box testing may be necessary to assure correct functionality, but it is insufficient to guard against complex or high risk situations. An advantage of the black box technique is that no programming knowledge is required. Whatever biases the programmers may have had, the tester likely has a different set and may emphasize different areas of functionality. On the other hand, black box testing has been said to be "like a walk in a dark labyrinth without a flashlight." Because they do not examine the source code, there are situations when a tester writes many test cases to check something that could have been tested by only one test case or leaves some parts of the program untested.