
Èññëåäîâàíèå ïðîãðàììíîãî êîäà, ïðîâîäèìîå åæåãîäíîé êîìïàíèåé Coverity, â òåêóùåì ãîäó âûÿâèëî çíà÷èòåëüíîå óëó÷øåíèå êà÷åñòâà êîäà ïîïóëÿðíûõ îòêðûòûõ ïðîãðàììíûõ ïðîäóêòîâ. Èññëåäîâàòåëè ãîâîðÿò, ÷òî çà òî÷êó îòñ÷åòà îíè áðàëè äàííûå ïðîøëîãîäíåãî èññëåäîâàíèÿ opensource-ïðîäóêòîâ.
 ïðîöåññå àíàëèçà Scan Report on Open Source Software 2008 ýêñïåðòû Coverity ïðîàíàëèçèðîâàëè áîëåå 55 ìëí ñòðîê ïðîãðàììíîãî êîäà, âõîäÿùåãî â 250 íàèáîëåå ïîïóëÿðíûõ îòêðûòûõ ïðîãðàììíûõ ïðîäóêòîâ, òàêèõ êàê ÿäðî Linux, âåá-ñåðâåð Apache, ÑÓÁÄ MySQL, ñåòåâàÿ ñèñòåìà Samba, âåá-áðàóçåð Firefox, à òàêæå èíòåðïðåòàòîðû ñêðèïòîâûõ ÿçûêîâ PHP è Ruby.
"Ìû ïðîàíàëèçèðîâàëè èñõîäíûå êîäû ïðè ïîìîùè íàøåãî ñòàòè÷åñêîãî ïðîäóêòà äëÿ èññëåäîâàíèé Coverity Prevent, êîòîðûé èäåíòèôèöèðóåò òèïè÷íûå îøèáêè è äåôåêòû ïðîãðàììíîãî îáåñïå÷åíèÿ, à òàêæå êîíöåïöèé, èñïîëüçóåìûõ ïðè ðàçðàáîòêå êîíêðåòíîãî ïðîäóêòà", - ãîâîðèò Äåâèä Ìàêâåëë, èññëåäîâàòåëü Coverity. "Íà ñåé ðàç ìû ìîæåì óòâåðæäàòü ÷òî ìíîãèå ïðîãðàììèñòû äåéñòâèòåëüíî âíèìàòåëüíî è ñòðîãî ïîäõîäÿò ê ïðîöåññó íàïèñàíèÿ êîäà", - ãîâîðèò îí.
Èññëåäîâàòåëè ãîâîðÿò, òî â ïðîøëîãîäíåì òåñòèðîâàíèè áûëî âûÿâëåíî, ÷òî â ñðåäíåì íà 1000 ñòðîê êîäà ïðèõîäèòñÿ 1 îøèáêà, ñåé÷àñ æå ýòîò ïîêàçàòåëü óëó÷øåí íà 16%, ïðè÷åì óëó÷øåíèå êàñàåòñÿ íå òîëüêî áåçîïàñíîñòè êîäà, íî è åãî êà÷åñòâà ðàáîòû.
Òåì íå ìåíåå, â Coverity ãîâîðÿò, ÷òî â ïðîöåññå àíàëèçà âñå-òàêè áûëî îáíàðóæåíî 8500 ïðîãðàììíûõ äåôåêòîâ, ÷òî ëó÷øå, ÷åì â ïðîøëîì ãîäó (>10 000), îäíàêî âñå æå íå èäåàëüíî. Íàèáîëåå ðàñïðîñòðàíåííîé îøèáêîé ñòàëè íåâåðíûå óêàçàòåëè è ññûëêè â êîäå.
Óäèâèòåëüíûì èññëåäîâàòåëè íàçûâàþò è òîò ôàêò, ÷òî íèêàêîé êîððåëÿöèîííîé çàâèñèìîñòè ìåæäó ôóíêöèîíàëüíîñòüþ ïðîåêòà è êîëè÷åñòâîì îøèáîê â íåì íåò. Îäíàêî â 72% ñëó÷àåâ òàêàÿ çàâèñèìîñòü íàáëþäàåòñÿ ìåæäó ïîêàçàòåëÿìè îáúåìa êîäà - êîëè÷åñòâî îøèáîê.
Òàêæå ñïåöèàëèñòû îòìå÷àþò, ÷òî íàèáîëüøåå êîëè÷åñòâî îøèáîê áûëî çàôèêñèðîâàíî â êîäàõ, íàïèñàííûõ íà C, âòîðîå ìåñòî äîñòàëîñü ÿçûêó C++.