సాఫ్ట్‌వేర్ దోషం
సాఫ్ట్‌వేర్ దోషం అనేది ఒక కంప్యూటర్ ప్రోగ్రామ్ లేదా వ్యవస్థలో చోటుచేసుకున్న ఒక దోషం, తప్పు, పొరపాటు, వైఫల్యం లేదా తప్పిదంను తెలపడానికి ఉపయోగించే ఒక సాధారణ పదం. ఇది ఒక తప్పైన లేదా అనూహ్య ఫలితాన్ని ఇవ్వడం లేదా వ్యవస్థను ఉద్దేశించని మార్గాల్లో ప్రవర్తించే విధంగా చేస్తుంది. అనేక దోషాలు ఒక ప్రోగ్రామ్ యొక్క సోర్స్ కోడ్ (ఉచితంగా లభించే కంప్యూటర్ సాఫ్ట్‌వేర్) లేదా దాని రూపకల్పన విషయంలో ప్రోగ్రామర్లు చేసే పొరపాట్లు లేదా తప్పిదాల వల్ల మరియు మరికొన్ని సంగ్రాహకుడు విడుదల చేసే తప్పుడు కోడు ద్వారా తలెత్తుతాయి. భారీ సంఖ్యలో దోషాలను కలిగిన ఒక ప్రోగ్రామ్ మరియు/లేదా దాని ప్రయోజకత్వానికి తీవ్రమైన ఇబ్బంది కలిగించేలా జోక్యం కల్పించుకునే దోషాలను "దోషాలమయం" (బగ్గీ) అని అంటారు. ఒక ప్రోగ్రామ్‌లోని దోషాలను వివరించే నివేదికలు సాధారణంగా దోష నివేదికలు, తప్పిద నివేదికలు, సమస్య నివేదికలు, ఇబ్బంది నివేదికలు, మార్పు అభ్యర్థనలు తదితరాలుగా తెలుసు.
దోషాలు టైప్ I మరియు టైప్ II తప్పిదాలను రేకెత్తిస్తాయి. ప్రతిగా అవి విభిన్న రకాల ప్రభావాలు తలెత్తుతాయి. తద్వారా ప్రోగ్రామ్ వాడుకరికి అనేక రకాలుగా అసౌకర్య పరిస్థితులు ఎదురవుతాయి. కొన్ని దోషాలు ప్రోగ్రామ్ ప్రయోజకత్వంపై ఒక నిగూఢమైన ప్రభావం మాత్రమే చూపిస్తాయి. తద్వారా అవి సుదీర్ఘకాలం పాటు గుర్తించబడలేవు. అత్యంత తీవ్రమైన దోషాలు ప్రోగ్రామ్‌ నాశనమయ్యే విధంగానో లేదా స్తంభించిపోయే విధంగానో చే్స్తాయి. అది చివరకు సేవా నిరాకరణకు దారితీస్తుంది. ఉదాహరణకు భద్రతా దోషాలుగా అర్హత సాధించిన ఇతర దోషాలు ఒక ప్రమాదకర యూజర్ అనధికారిక హక్కులు పొందేలా ప్రవేశ నియంత్రణలను దూరం చేసే విధంగా అవకాశం కల్పిస్తాయి.
దోషాల ఫలితాలు అత్యంత తీవ్రమైనవిగా ఉండొచ్చు. Therac-25 వికిరణ చికిత్స యంత్రాన్ని నియంత్రించే కోడులోని దోషాలు 1980ల్లో కొందరు రోగుల మరణానికి ప్రత్యక్ష కారణమయ్యాయి. 1996లో యూరోపియన్ రోదసి సంస్థకు చెందిన US$1 బిలియన్ల మూలరూప అరైన్ 5 రాకెట్ ప్రయోగించబడిన ఒక్క నిమిషం లోపే నాశనమైంది. అందుకు కారణం లోపల ఉండే సలహాలకు సంబంధించిన కంప్యూటర్ ప్రోగ్రామ్‌లో తలెత్తిన ఒక దోషమే. జూన్, 1994లో మల్ ఆఫ్ కిన్‌టైర్‌లో ఒక రాయల్ ఎయిర్ ఫోర్స్ చినూక్ కుప్పకూలడంతో 29 మంది మరణించారు. ఇది తొలుత పైలట్ తప్పిదంగా తోసిపుచ్చబడింది. అయితే "కంప్యూటర్ వీక్లీ" చేపట్టిన ఒక పరిశోధన సదరు దుర్ఘటన విమానంలోని ఇంజిన్ కంట్రోల్ కంప్యూటర్‌లో తలెత్తిన ఒక సాఫ్ట్‌వేర్ సంబంధిత దోషం వల్లనే జరిగిందని హౌస్ ఆఫ్ లార్డ్స్ (బ్రిటన్ పార్లమెంట్ ఎగువ సభ) దర్యాప్తును ఒప్పించే విధంగా తగిన ఆధారాన్ని చూపించింది.
2002లో US వాణిజ్య మంత్రిత్వ శాఖకు చెందిన నేషనల్ ఇన్‌స్టిట్యూట్ ఆఫ్ స్టాండర్డ్స్ అండ్ టెక్నాలజీ నిర్వహించిన ఒక అధ్యయనం "సాఫ్ట్‌వేర్ దోషాలు లేదా తప్పిదాలు చాలా ప్రబలంగానూ మరియు హానికరంగానూ ఉన్నాయి. అవి US ఆర్థికవ్యవస్థ యేటా సుమారు $59 బిలియన్లు లేదా స్థూల జాతీయోత్పత్తిలో 0.6 శాతం మేర నష్టపోయినట్లు అంచనా" .
సాఫ్ట్‌వేర్ అనేది తప్పిదాలను కలిగి ఉండొచ్చనే అభిప్రాయం 1843 సంవత్సరంలో విశ్లేషణాత్మక యంత్రం (ఎనలిటికల్ ఇంజిన్)పై అదా బైరాన్ చేసిన సూచనలకు సంబంధించింది. చార్లెస్ బాబేజ్ యొక్క విశ్లేషణాత్మక యంత్రానికి ప్రోగ్రామ్ 'కార్డుల'ను సిద్ధం చేయడం కష్టమని అందులో ఆమె ప్రస్తావించింది.
వర్ణణాతీత లోపాల గురించి చెప్పడానికి "బగ్" అనే పద వినియోగం సాంకేతిక వృత్తిపదజాలంలో పలు దశాబ్దాల పాటు మరియు కంప్యూటర్లు, కంప్యూటర్ సాఫ్ట్‌వేర్ రావడానికి ముందు ఒక భాగమైంది. దీనిని వాస్తవానికి యాంత్రిక పరమైన లోపాలను తెలిపే దిశగా హార్డ్‌వేర్ ఇంజినీరింగ్‌లో ఉపయోగించి ఉండొచ్చు. ఉదాహరణకు, థామస్ ఎడిసన్ 1878లో ఆయన సహచరుడికి రాసిన లేఖలో దిగువ తెలిపిన పదాలను రాశారు:
రెండో ప్రపంచ యుద్ధంలో రాడార్ ఎలక్ట్రానిక్స్ సంబంధిత సమస్యలను "దోషాలు" (లేదా అవాంతరాలు)గా గుర్తించారు. అంతేకాక ఈ పద వినియోగం అంతకుముందు కాలం నుంచే ఉందని చెప్పడానికి అదనపు ఆధారం కూడా ఉంది. మొట్టమొదటి పిన్‌బాల్ ఆటగా చెప్పబడే బేఫిల్ బాల్‌ను 1931లో "దోష రహితమైనది"గా ప్రచారం చేశారు.
"బగ్" పదావిష్కరణ గ్రేస్ హోప్పర్‌కు తరచూ పొరపాటుగా ఆపాదించబడింది. ఒక ప్రారంభ విద్యుత్‌యాంత్రిక కంప్యూటర్‌లో లోపానికి సంబంధించిన కారణం గురించి ఆమె ప్రచారం చేశారు. ఈ ఉల్లేఖన ద్వారా వృత్తాంతం యొక్క ఒక విలక్షణ వివరణ ఇవ్వబడింది.
హోప్పర్ సులువుగా గుర్తించిన నేపథ్యంలో వాస్తవంగా దోషానికి సంబంధించిన క్రిమిని గుర్తించిన మొదటి వ్యక్తి ఆమె కాదు. రికార్డు పుస్తకంలో నమోదైన తేదీ కొన్నిసార్లు పొరపాటుగా 1945 అని పేర్కొనబడినప్పటికీ, అసలు తేదీ 9 సెప్టెంబరు 1947. దీనిని గుర్తించిన ఆపరేటర్లు విలియం "బిల్" బర్కీ, ఆ తర్వాత నావల్ వెపన్స్ లేబొరేటరీ, దాల్‌గ్రెన్, వర్జీనియా, ఈ ఇంజినీరింగ్ పదంతో సుపరిచితులు. అంతేకాక సదరు క్రిమిని "దోషం యొక్క మొట్టమొదటి వాస్తవిక కారణం గుర్తించబడింది" అనే సంజ్ఞామానంతో కొనసాగించడం ద్వారా అందర్నీ ఆకట్టుకున్నారు. ఈ కథను సమగ్రంగా వివరించడానికి హోప్పర్ ఇష్టపడేవారు. ఈ రికార్డు పుస్తకాన్ని స్మిత్‌సోనియన్ నేషనల్ మ్యూజియం ఆఫ్ అమెరికన్ హిస్టరీలో ప్రదర్శనకు ఉంచారు. ఒక చిమ్మటను అంటించడం ద్వారా ఈ ప్రదర్శన పరిపూర్ణమైంది.
హార్వర్డ్ మార్క్ II ఆపరేటర్లు "బగ్" పదాన్ని రూపకల్పన చేయకపోవడంతో దానికి సంబంధించిన "డీబగ్" (దోషనివారణ) పదాన్ని కూడా వారు రూపొందించలేదని సూచించబడింది. ఆక్స్‌ఫర్డ్ ఆంగ్ల నిఘంటువులో పొందుపరిచిన "డీబగ్" పదం 1945లో వైమానిక యంత్రాలకు సంబంధించిన భాషాపరమైన సందర్భంలో "డీబగింగ్" (దోషాల తొలగింపు) ప్రయోజనాన్ని కలిగి ఉంది కాబట్టి ఈ విషయం నమ్మదగినది కాకపోవచ్చు. డీబగింగ్‌ (దోషాల తొలగింపు)ను "చూడండి:"
ప్రోగ్రామ్ రాసేటప్పుడు మానవ అంశాల స్వభావం యొక్క పరిణామంగా దోషాలను చెబుతారు. పనుల నిర్దేశం, రూపకల్పన, కోడ్ రాయడం (కోడింగ్), సమాచారాన్ని ఎక్కించడం (డాటా ఎంట్రీ) మరియు ప్రమాణ పత్రరచన సమయంలో ఒక సాఫ్ట్‌వేర్ బృందం చేసే పరిశీలనలు లేదా పరస్పర అవగాహనాలోపాల వల్ల దోషాలు తలెత్తుతాయి. ఉదాహరణకు పదాల జాబితాను ఒక వర్ణక్రమంలో అమర్చే దిశగా సాపేక్షకంగా ఒక సాధారణ ప్రోగ్రామ్‌ను రూపొందించడంలో ఏదైనా ఒక పదం హైఫన్ (అక్షరముల మధ్య అవసరాన్ని బట్టి వేసే అడ్డుగీత)ను కలిగి ఉంటే ఏమి జరుగుతుందనే విషయాన్ని ఆలోచించడంలో ఒకరి డిజైన్ వైఫల్యం చెందవచ్చు. సంభవనీయంగా, సంగ్రహ రూపకల్పనను ఎంపిక చేసిన ప్రోగ్రామింగ్ భాషలోకి మార్చేటప్పుడు ఒకరు తెలియకుండా ఒక ఆఫ్-బై-వన్ ఎర్రర్‌ను సృష్టించడం మరియు చివరి పదాన్ని జాబితాలో అమర్చడంలో వైఫల్యం చెందవచ్చు. చివరగా కంప్యూటర్‌లో ఫలిత ప్రోగ్రామ్‌ను టైపు చేసేటప్పుడు ఒకరు '' అని టైపు చేయాల్సి ఉంటుంది. సంభవనీయంగా, ఫలిత పదాలు విలోమ వర్ణక్రమంలో అమర్చబడవచ్చు. అత్యంత క్లిష్టమైన దోషాలు కంప్యూటర్ ప్రోగ్రామ్ యొక్క వివిధ భాగాల మధ్య ఉద్దేశరహిత సంభాషణల ద్వారా తలెత్తవచ్చు. ఇది తరచూ సంభవించవచ్చు. అందుకు కారణం కొన్ని సందర్భాల్లో కంప్యూటర్ ప్రోగ్రామ్‌లు మిలియన్ల కొద్దీ పంక్తులతో క్లిష్టంగా ఉండొచ్చు. తరచూ అనేక మంది కలిసి ప్రోగ్రామ్‌లను సుదీర్ఘ కాలం పాటు కూడా సిద్ధం చేయొచ్చు. అందువల్ల భాగాలు సంబంధం కలిగి ఉండే ప్రతి సాధ్యమైన మార్గాన్ని ప్రోగ్రామర్లు మానసికంగా గుర్తించలేకపోతారు. దోషానికి సంబంధించిన మరొక తరగతిని "రేస్ కండిషన్" (ఒక తప్పిదం) అంటారు. ఇది ఏదైనా ఒక ప్రక్రియ ఒక సందేశాల వరుస కంటే ఎక్కువ వాటిలో నిర్వహించబడుతున్నప్పుడు లేదా రెండు లేదా అంతకంటే ఎక్కువ ప్రక్రియలు ఏకకాలంలో జరుగుతున్నప్పుడు తలెత్తుతుంది. ఫలితంగా కోడు యొక్క కీలక క్రమాల కచ్చితమైన అమలు క్రమం అనేది ఏకకాలంలో సరిగా జరగదు.
ప్రోగ్రామర్లు సాఫ్ట్‌వేర్ ప్రోగ్రామ్‌లు రాసేటప్పుడు వారికి తెలియకుండానే వారు దోషాలను అనుమతించకుండా నివారించడానికి సాప్ట్‌వేర్ పరిశ్రమ గట్టిగా ప్రయత్నాలు చేస్తోంది. అవి:
క్రమబద్ధ వివరణలు దేనికైనా సరే అవాస్తవమైనవిగానూ లేదా అసాధ్యమైనవిగానూ ఉంటాయి. అయితే అతి చిన్న ప్రోగ్రామ్‌ల పరిస్థితి వేరుగా ఉంటుంది.
దోషాల గుర్తింపు మరియు తొలగింపు లేదా "డీబగ్గింగ్" (దోషాల తొలగింపు) అనేది కంప్యూటర్ ప్రోగ్రామింగ్‌లో ఎల్లప్పుడూ కీలక భాగం. ప్రారంభ కంప్యూటర్ సంబంధ మేధావి, మౌరీస్ విల్కీస్ ఆయన అవగాహనను 1940ల ఆఖర్లో వివరించారు. జీవిత చరమాంకంలో ఎక్కువ భాగాన్ని ఆయన సొంత ప్రోగ్రామ్‌ల యొక్క పొరపాట్లను గుర్తించడంపైనే గడిపినట్లు తెలిపారు. కంప్యూటర్ ప్రోగ్రామ్‌లు మరింత క్లిష్టంగా మారడంతో దోషాలు సర్వసాధారణం కావడం మరియు వాటి పరిష్కారం క్లిష్టమైంది. కొత్త కోడు రాయడం కంటే దోషాల గుర్తింపు మరియు వారి పరిష్కారానికి ప్రోగ్రామర్లు తరచూ అధిక సమయాన్ని కేటాయించేవారు. సాఫ్ట్‌వేర్ పరిశోధకులు వృత్తిపరమైన నిపుణులు. వారి ప్రాథమిక కార్యం దోషాలను గుర్తించడం లేదా పరిశోధనకు మద్దతు తెలిపే కోడును రాయడం. కొన్ని ప్రాజెక్టులకు సంబంధించి, ప్రోగ్రామ్ అభివృద్ధి కంటే కూడా పరిశోధనపై వనరులను అధికంగా వినియోగించాల్సి ఉంటుంది.
సాధారణంగా, దోషాల తొలగింపులో అత్యంత క్లిష్టమైన పని సోర్సు కోడులోని దోషాన్ని గుర్తించడం. ఒక్కసారి దోషం గుర్తించబడగానే, సాధారణంగా దానిని సరిచేయడం సాపేక్షకంగా సులువు. డీబగ్గర్లు (కంప్యూటర్ ప్రోగ్రామ్)గా తెలిసిన ప్రోగ్రామ్‌లు ప్రోగ్రామర్లు కోడును ఒక లైను తర్వాత మరొక లైనును అమలు చేయడం ద్వారా దోషాలను గుర్తించేందుకు సాయపడతాయి. అంతేకాక అస్థిర విలువలను గమనించడం మరియు ప్రోగ్రామ్ తీరును పరిశీలించడానికి ఇతర విశిష్టతలు ఉంటాయి. ఒక డీబగ్గర్ లేకుండా, కోడును చేర్చగలం. అందువల్ల ప్రోగ్రామ్ అమలును గుర్తించడం లేదా విలువలను చూపించడానికి సందేశాలు లేదా విలువలను ఒక సముదాయానికి (ఉదాహరణకు C ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో "printf" తో) లేదా ఒక విండోకి లేదా లాగ్ దస్త్రంకు రాయగలం.
ఏదేమైనప్పటికీ, ఒక డీబగ్గర్ సాయంతో, దోషాల గుర్తింపు అనేది ఒకింత కళగానే చెప్పబడుతుంది. ఒక ప్రోగ్రామ్ యొక్క ఒక భాగంలోని దోషం పూర్తి భిన్నమైన విభాగంలో వైఫల్యాలకు కారణమవడం అనేది సహజమే. అందువల్ల దానిని గుర్తించడం చాలా కష్టం (ఉదాహరణకు ఒక గ్రాఫిక్స్ చిత్రణకు సంబంధించిన కంప్యూటర్ ప్రోగ్రామ్ ఒక దస్త్రం యొక్క I/O కంప్యూటర్ ప్రోగ్రామ్ వైఫల్యం చెందే విధంగా చేయడం)గానూ మరియు చూడటానికి వ్యవస్థ యొక్క అసంబంధిత భాగంగా అనిపిస్తుంది.
కొన్నిసార్లు, దోషం అనేది ఒక వివిక్త తప్పిదంగా ఉండదు. అయితే ప్రోగ్రామర్ వైపు ఆలోచించడంలో లేదా వ్యూహరచనలో తలెత్తే ఒక పొరపాటును తెలుపుతుంది. అలాంటి "తర్క తప్పులు" వల్ల ప్రోగ్రామ్ యొక్క ఒక భాగాన్ని రిపేరు చేయడం లేదా పునర్‌లిఖించాల్సి ఉంటుంది. కోడు సమీక్షలో భాగంగా ఒకరి మెదడులో లేదా పేపరుపై అమలు ప్రక్రియ యొక్క కోడు నమూనా ద్వారా ముందుకు నడిపించడం అనేది తరచూ ఈ పొరపాట్లను గుర్తించగలదు. దీనికి అలాంటి దోషాన్ని తిరిగి ఉత్పత్తి చేయాల్సిన అవసరం కూడా ఉండదు. ఇలా జరగాలంటే దాని అమలులో కొంత తప్పైన తర్కం ఉందని అది చూపిస్తే సరిపోతుంది.
అయితే సర్వసాధారణంగా, ఒక దోషాన్ని గుర్తించడంలో తొలి అడుగుగా దానిని విశ్వసనీయంగా తిరిగి ఉత్పత్తి చేయడం. దోషం తిరిగి ఉత్పత్తవగానే, తప్పుడు ప్రాంతంలో ప్రోగ్రామ్ యొక్క అమలును పర్యవేక్షించడానికి ప్రోగ్రామర్ ఒక డీబగ్గర్ లేదా ఏదైనా ఇతర పరికరాన్ని ఉపయోగించుకోగలడు. అంతేకాక ప్రోగ్రామ్ ఎక్కడ తప్పుదోవ పట్టిందో ఆ ప్రాంతాన్ని గుర్తించవచ్చు.
దోషాల పునరుత్పత్తి అనేది ఎల్లప్పుడూ సులువు కాదు. కొందరు ప్రోగ్రామ్‌కు ఇన్‌పుట్‌లు అందివ్వడం ద్వారా క్రియాశీలకం చేస్తారు. ఈ ప్రోగ్రామ్‌ను తిరిగి సృష్టించడం అనేది ప్రోగ్రామర్‌కు కష్టం కావొచ్చు. Therac-25 వికిరణ యంత్ర మరణాలకు సంబంధించిన ఒక కారణంగా దోషాన్ని (ప్రత్యేకించి, ఒక పరుగు ప్రమాదం) చెబుతారు. యంత్రాన్ని నడిపే వ్యక్తి చికిత్స ప్రణాళికను శరవేగంగా అమలు చేయడానికి ప్రయత్నించినప్పుడు ఇలాంటి పరిస్థితి తలెత్తుతుంది. అందువల్ల దీనిని సక్రమంగా చేయడానికి కొన్ని రోజుల ముందస్తు సాధన అవసరం. ఇలా చేస్తే, దోషం అనేది పరీక్ష చేసేటప్పుడు లేదా తయారీదారు దాని నకలును తయారు చేయడానికి ఉపక్రమించినప్పుడు వ్యక్తం కాదు. ఇతర దోషాలు ఏదైనా ప్రోగ్రామ్ ఒక డీబగ్గర్ సాయంతో అమలు చేయబడినప్పుడు అదృశ్యం కావొచ్చు. ఇవి హీసెన్‌బగ్‌లు (హీసెన్‌బర్గ్ అనిశ్చితి నియమం ఆధారంగా దీనికి హాస్యం కలిగించే విధంగా ఈ పేరు పెట్టారు).
దోషాల తొలగింపు ఇప్పటికీ విసుగు పుట్టించే పనిగా ఉంది. దీనికి విపరీతమైన శ్రమ అవసరం. 1990ల నుంచి, ప్రత్యేకించి, అరైన్ 5 ఫ్లయిట్ 501 ప్రమాదం నేపథ్యంలో, దోషాల తొలగింపుకు సమర్థవంతమైన స్వీయ సాయాల అభివృద్ధి విషయంలో సరికొత్త ఆసక్తిని కనబరచడం జరిగింది. ఉదాహరణకు, సంక్షిప్త అర్థవివరణ ద్వారా స్థిర కోడు విశ్లేషణ పద్ధతులు ఇప్పటికే విశేష ఘనతలు సాధించాయి. అలాగే మరింత కృషి ఇప్పటికీ జరుగుతోంది.
ఏదైనా సృజనాత్మక చర్య, కొన్నిసార్లు ఒక ఉరిమే ఉత్సాహం ద్వారా ఒక పరిష్కారం ఆవిష్కృతమవుతుంది. అయితే ఇది చాలా అరుదుగా జరుగుతుంది. నిర్వచనం పరంగా, ఆధారపడదు.
అంతేకాక దోషాల తరగతులు కూడా ఉన్నాయి. అయితే అవి కోడుతో ఎలాంటి సంబంధం కలిగి ఉండవు. ఉదాహరణకు ఎవరైనా ఒకరు తప్పుడు ప్రమాణ పత్రరచన లేదా హార్డ్‌వేర్‌పై ఆధారపడినప్పుడు. సదరు ప్రమాణ పత్రరచన ఏమి చెబుతుందనే విషయాన్ని తెలిపే విధంగా కోడు చక్కగా కచ్చితంగా రాయబడవచ్చు. అయితే దోషం అనేది నిజానికి కోడులో కాకుండా ప్రమాణ పత్రరచన (డాక్యుమెంటేషన్) లేదా హార్డ్‌వేర్‌లో ఉంటుంది. ఏదేమైనప్పటికీ, వ్యవస్థ యొక్క ఇతర భాగాలకు బదులుగా కోడును మార్చడం రివాజు. అందుకు కారణం దానిని మార్చడానికయ్యే ఖర్చు మరియు పట్టే సమయం సాధారణంగా తక్కువగా ఉండటం. ఒక ROM యొక్క కొత్త వెర్షన్‌ను రూపొందించడానికయ్యే ఖర్చు హార్డ్‌వేర్‌‍ను ప్రత్యేకించి, అవి వాణిజ్య వస్తువులుగా ఉంటే, వాటిని తిరిగి తయారు చేయడం కంటే తక్కువగా ఉండటంతో ఎంబెడ్డెడ్ సిస్టమ్‌లు తరచూ హార్డ్‌వేర్ దోషాలకు తాత్కాలిక పరిష్కారాలను కలిగి ఉంటాయి.
తెలిసిన దోషాలతో సాఫ్ట్‌వేర్ విడుదలవడం అనేది మామూలు అలవాటు. సదరు దోషాలను సంకట-యేతరమైనవిగా అంటే ఉత్పత్తి పరంగా పలువురు యూజర్ల యొక్క ప్రధాన అనుభూతిపై ప్రభావం చూపనివిగా పరిగణించేవారు. నిర్వచనం పరంగా, సాఫ్ట్‌వేర్ ఉత్పత్తులు కొద్ది సంఖ్యలో తెలియని దోషాలను కలిగి ఉండొచ్చు. బహుశా
మిగిలిన దోషాలను పరిశోధన (పరీక్ష) సమయంలో ప్రమాణాల సాయంతో అంచనా వేయొచ్చు. ఒక ఉత్పత్తిని ఎక్కువ కాలం పరీక్షించడం మరియు అభివృద్ధి పరచడం ("గతవారం మనం 200 దోషాలను గుర్తిస్తే, ఈ వారం 100 దోషాలుంటాయి) ద్వారా ఇది మరింత విశ్వసనీయంగా మారుతుంది. అత్యంత భారీ సాఫ్ట్‌వేర్ ప్రాజెక్టులు రెండు రకాల "తెలిసిన దోషాల" జాబితాలను నిర్వహిస్తాయి. అవి సాఫ్ట్‌వేర్ బృందానికి తెలిసినవి మరియు యూజర్లకు చెప్పడానికి ఉద్దేశించినవి. ఇదేమీ భావగోపనం (వాస్తవాన్ని కప్పి ఉంచడం) కాదు. అయితే యూజర్లు ఉత్పత్తి యొక్క అంతర్గత పనితీరుల గురించి ఆందోళన చెందరు. రెండో జాబితా యూజర్లకు ప్రస్తుత విడుదలలో పరిష్కరించబడని లేదా ఎప్పటికీ పరిష్కరించని దోషాల గురించి తెలపడం మరియు ఒక తాత్కాలిక పరిష్కారాన్ని సిఫారసు చేయొచ్చు.
దోషాలను పరిష్కరించకపోవడానికి అనేక కారణాలున్నాయి.
పైన తెలిపిన దానిని స్పష్టం చేసే విధంగా, ఏదైనా వాస్తవిక సంక్లిష్టత యొక్క దోషరహిత సాఫ్ట్‌వేర్‌ను సంపూర్ణంగా రాయడమనేది తరచూ అసాధ్యమైనదిగా పరిగణించబడుతుంది. కాబట్టి దోషాలు తీవ్రతను బట్టి వర్గీకరించబడుతాయి. అనేక మంది యూజర్లకు సంబంధించి సిస్టమ్ యొక్క కచ్చితమైన పనితీరుపై ప్రభావం చూపనందున తక్కువ తీవ్రతతో కూడిన సంకటయేతర దోషాలు అనుమతించబడే విధంగా ఉంటాయి. NASAకు చెందిన SATC మొత్తం దోషాలను ప్రతి 1000 కోడు లైన్లకు (SLOC) గాను 0.1 శాతం కంటే తగ్గించే విధంగా చేయగలిగింది. అయితే ఏదైనా వాస్తవిక ప్రపంచ ప్రాజెక్టులకు ఇది సాధ్యమైనదిగా భావించబడలేదు.
ఒక దోషం యొక్క తీవ్రత పరిష్కారానికి దాని ప్రాముఖ్యమంత ఉండదు. అందువల్ల ఈ రెండింటినీ వేరుగా అంచనా వేయడం మరియు నిర్వహించడం చేయాలి. ఏదైనా ఒక Microsoft Windows సిస్టమ్‌పై ఒక బ్లూ స్క్రీన్ ఆఫ్ డెత్ (ఒక నిలుపుదల తప్పిదం) అనేది తీవ్రమైనది కావొచ్చు. అయితే అది తీవ్రమైన పరిస్థితుల్లో మాత్రమే సంభవించవచ్చు. ప్రత్యేకించి, దోషాలు చక్కగా నిర్థారించబడటం మరియు తొలగించినప్పుడు, ఒక చిహ్నం దాని క్రియను చక్కగా తెలపకుండా ఉండటం కంటే దాని పరిష్కారం తక్కువ ప్రాముఖ్యతను కలిగి ఉంటుంది. పూర్తిగా కళాత్మకమైనది ప్రతి ఒక్క రోజూ వేలాది మంది యూజర్లను అయోమయానికి గురిచేయొచ్చు. అయితే ఈ తుల్యత అనేది పలు అంశాలపై ఆధారపడి ఉంటుంది. నైపుణ్యం కలిగిన యూజర్లు ఆరంభకుల నుంచి భిన్నమైన అంచనాలను కలిగి ఉంటారు. అంటే, ఒక స్థావర మార్కెట్ అనేది ఒక సాధారణ వినియోగదారు మార్కెట్‌కు భిన్నంగా ఉండటం మొదలైనవి. ఈ తుల్యతను మరింత చక్కగా సాధించడానికి, కొంతమంది సాఫ్ట్‌వేర్ డెవలపర్లు ఒక అధీకృత "దోష ప్రాధాన్యత" ప్రక్రియ (వైద్య పదం తీసుకోబడింది)ను ఉపయోగిస్తారు. అంటే, ప్రతి కొత్త దోషానికి దాని తీవ్రత, సంభవక్రమం, ప్రమాదం మరియు ఇతర పూర్వనిర్ణయ అంశాలను బట్టి ఒక ప్రాధాన్యతను ఇవ్వడం జరుగుతుంది.
లైనస్ యొక్క చట్టం మాదిరిగా ఎరిక్ S. రేమాండ్ ద్వారా ప్రసిద్ధిగాంచిన మేధావి వర్గ విశ్వాసం ప్రసిద్ధ ఉచిత సాఫ్ట్‌వేర్ అనేది ఇతర సాఫ్ట్‌వేర్ కంటే కొన్ని దోషాలను లేదా దోష రహితంగా ఉండే అవకాశం ఎక్కువ. ఎందుకంటే, "తగినంత మంది దృష్టిసారిస్తే, దోషాలు తేలిపోతాయి". ఏదేమైనప్పటికీ, ఈ స్పష్టీకరణ వివాదాస్పదంగా మారింది. కంప్యూటర్ భద్రతా నిపుణుడు ఎలియాస్ లెవీ ఈ విధంగా రాశారు, "ఎక్కువగా ఉన్న దుర్బలత్వాలను కొద్దిగా అవగాహన మరియు ప్రమాణ పత్రరచన చేయని సోర్సు కోడు ద్వారా దాచిపెట్టొచ్చు," ఎందుకంటే, "ఒకవేళ యూజర్లు కోడును సమీక్షిస్తున్నారంటే, దానర్థం వారు అలా చేయడానికి అర్హత సాధించారని కాదు."
ఇంజినీరింగ్ నిర్వహణ యొక్క ఏదైనా ఇతర భాగం మాదిరిగానే, అయితే నిర్వహణ అనేది తప్పక జాగ్రత్తగా మరియు తెలివిగా చేయాలి. ఎందుకంటే, "ఏదైతే కొలవబడుతుందో అది నిర్వర్తించబడుతుంది" 
మరియు దోష గణాంకాల ద్వారా పూర్తిగా నిర్వహించడం అనేది అనూహ్య పరిణామాలకు దారితీయొచ్చు. ఉదాహరణకు, డెవలపర్లు వారు పరిష్కరించిన దోషాల ద్వారా గుర్తించబడినప్పుడు, వారు సహజంగా కఠినమైన వాటిని మరియు సంభవనీయంగా అత్యంత ప్రమాదకరమైన లేదా కీలకమైన వాటిని
ఆఖరి సంభవనీయ సందర్భం వరకు పక్కనపెట్టి, మొదటి దోషాలను ముందుగా పరిష్కరిస్తారు ("నా జాబితాలో ఒక్క దోషం మాత్రమే ఉంది. అయితే అది "పశ్చిమాన సూర్యుడు ఉదయిస్తాడని చెప్పమంటోంది"). ఒకవేళ నిర్వహణ పద్ధతులనేవి అసంఖ్యాక దోషాల పరిష్కారాన్ని తెలపడమయితే, కొంతమంది డెవలపర్లు తర్వాత దోషాలను పరిష్కరించగలమని వారు తెలుసుకుని, వారు క్రమపద్ధతి లేకుండా సత్వరం ఒక కోడును రాయడం మరియు దానికి వారు ప్రశంసలు అందుకుంటారు. మరోవైపు జాగ్రత్త కలిగిన బహుశా "నెమ్మదియైన" డెవలపర్లు దోషాలు అస్సలు లేనందున వారు ప్రశంసలు పొందరు.
హానికర సాఫ్ట్‌వేర్ అనేది ఒక వ్యవస్థ (సిస్టమ్)లోని తెలిసిన దుర్బలత్వాలను దోపిడీ చేసే ప్రయత్నం చేయొచ్చు. అవి దోషాలు కావొచ్చు లేదా కాకపోవచ్చు. అయితే వాటిలోని వైరస్‌లు దోషాలు కావు. అవి సాధారణంగా ప్రోగ్రామ్‌లు. అవి ఎందుకోసమైతే రూపకల్పన చేయబడ్డవో అవి పూర్తిగా ఆ విధంగానే పనిచేస్తాయి. ఏదేమైనప్పటికీ, వైరస్‌లనేవి సందర్భోచితంగా ఆ విధంగానే ప్రముఖ ముద్రణల్లో పేర్కొనడం జరుగుతోంది.ఒక అంతరిక్షనౌకలోని కంప్యూటర్, HAL 9000 అందులోని సిబ్బంది మొత్తాన్ని హతమార్చే ప్రయత్నం చేస్తుంది. దాని కొనసాగింపుగా వచ్చిన 1982 నవల, 2010:ఒడిస్సీ టూ మరియు దానికి సంబంధించిన 1984 చలనచిత్రం, "2010" లో, కంప్యూటర్ ద్వారా ఈ చర్య జరగడానికి కారణం రెండు విరుద్ధ లక్ష్యాలతో ప్రోగ్రామ్ రాయబడిందనే విషయం బహిర్గతమయింది. అందులోని మొత్తం సమాచారాన్ని పూర్తిగా బహిర్గతం చేయడానికి మరియు విమాన రహస్యం యొక్క వాస్తవిక ప్రయోజనాన్ని సిబ్బందిలో ఉంచడానికి ఈ వివాదం HAL అనుమానాస్పదంగానూ మరియు చివరకు అతిక్రూరమైనదిగానూ మారేందుకు ఆస్కారం కల్పించింది.