Кіріспе

Автоматтандырылған кодты тексеру бағдарламалық жасақтамасы бастапқы кодты алдын ала белгіленген ережелер немесе ең жақсы тәжірибелерге сәйкестігін тексереді. Қателерді немесе қауіпсіздік мәселелерін анықтау үшін аналитикалық әдістерді пайдаланып бастапқы кодты тексеру және қарау – ашық кодты және коммерциялық бағдарламалық жасақтаманы дамытудың қалыпты тәжірибесі болып табылады. Бұл процесті қолмен де, автоматтандырылған түрде де жүзеге асыруға болады. Автоматтандыру кезінде бағдарламалық құралдар кодты қарау және тексеру процесіне көмектеседі. Қарау бағдарламасы немесе құралы әдетте ескертулер тізімін (бағдарламалау стандарттарын бұзулар) көрсетеді. Қарау бағдарламасы табылған мәселелерді автоматты түрде немесе бағдарламашының көмегімен түзету мүмкіндігін де ұсына алады. Бұл бағдарламалық жасақтаманы оңай меңгеруге көмектесетін құрал. Бұл Бағдарламалық Интеллект практикасына үлес қосады. Бұл процесс көбінесе "линтинг" деп аталады, себебі статикалық кодты талдаудың алғашқы құралдарының бірі Lint деп аталған. Кейбір статикалық кодты талдау құралдарын кодты автоматты түрде тексеруге көмектесу үшін пайдалануға болады. Олар қолмен тексеруге қарағанда нашар болғанымен, оларды жылдамырақ және тиімдірек орындауға болады. Бұл құралдар сонымен қатар осы типтегі талдауды жүргізу үшін қажетті негізгі ережелер мен семантика туралы терең білімді қамтиды, сондықтан адам кодты тексеруші сарапшы аудитордың деңгейінде білікті болуы міндетті емес. Microsoft Visual Studio IDE кодты қарауды жеңілдететін түрлі плагиндерді қолдайды. Статикалық кодты талдау құралдарынан басқа, бағдарламалық жасақтаманы талдайтын және визуализациялайтын, оны жақсырақ түсінуге көмектесетін құралдар да бар. Мұндай жүйелер көбінесе талдауға бағытталған, өйткені оларда бағдарламалық жасақтаманы тексеру үшін алдын ала белгіленген ережелер жиынтығы болмайды. Бұл құралдардың кейбіреулері (мысалы, Imagix 4D, Resharper, SonarJ, Sotoarc, Structure101, ACTool) мақсатты архитектураларды анықтауға және нақты бағдарламалық жасақтаманың іске асырылуы мақсатты архитектура шектеулерін бұзбауын қамтамасыз етуге мүмкіндік береді.