Eliminating Software Failures - A Literature Survey


Autoria(s): Rämö, Kukka
Data(s)

05/05/2010

05/05/2010

2009

Resumo

Software faults are expensive and cause serious damage, particularly if discovered late or not at all. Some software faults tend to be hidden. One goal of the thesis is to figure out the status quo in the field of software fault elimination since there are no recent surveys of the whole area. Basis for a structural framework is proposed for this unstructured field, paying attention to compatibility and how to find studies. Bug elimination means are surveyed, including bug knowhow, defect prevention and prediction, analysis, testing, and fault tolerance. The most common research issues for each area are identified and discussed, along with issues that do not get enough attention. Recommendations are presented for software developers, researchers, and teachers. Only the main lines of research are figured out. The main emphasis is on technical aspects. The survey was done by performing searches in IEEE, ACM, Elsevier, and Inspect databases. In addition, a systematic search was done for a few well-known related journals from recent time intervals. Some other journals, some conference proceedings and a few books, reports, and Internet articles have been investigated, too. The following problems were found and solutions for them discussed. Quality assurance is testing only is a common misunderstanding, and many checks are done and some methods applied only in the late testing phase. Many types of static review are almost forgotten even though they reveal faults that are hard to be detected by other means. Other forgotten areas are knowledge of bugs, knowing continuously repeated bugs, and lightweight means to increase reliability. Compatibility between studies is not always good, which also makes documents harder to understand. Some means, methods, and problems are considered method- or domain-specific when they are not. The field lacks cross-field research.

Ohjelmointivirheet ovat kalliita ja aiheuttavat vakavia vahinkoja, varsinkin jos ne havaitaan myöhäisessä kehitysvaiheessa tai käytön aikana tai niitä ei havaita ollenkaan. Jotkut virhetyypit ovat usein piileviä. Työn yhtenä tavoitteena on luoda aihealueeseen liittyvä yleiskuva, koska alalta ei ole viime vuosina tehty kokonaisvaltaista kirjallisuuskatsausta. Työssä luodaan perustaa alan jäsentämiselle; yhteensopivuuteen ja tutkimusten löytämiseen kiinnitetään huomiota. Työssä tehdään kirjallisuuskatsausta seuraavilta osa-alueilta: ohjelmointivirhetuntemus, virheiden ennaltaehkäisy ja ennustaminen, tarkastaminen ja analyysi, testaus ja virhetilanteista selviytyvien ohjelmien laatiminen. Jokaiselta osa-alueelta kartoitetaan yleisimmät tutkimuskohteet, ja näistä tutkimuskohteista keskustellaan. Lisäksi työssä keskustellaan kohteista, joita ei ole tutkittu riittävästi. Lopuksi esitetään suosituksia ohjelmistokehittäjille, tutkijoille ja opettajille. Työssä hahmotellaan ainoastaan tutkimuksen päälinjat ja pääpaino on teknisillä näkökohdilla. Kirjallisuuskatsaus tehtiin suorittamalla hakuja IEEE-, ACM-, Elsevier- ja Inspect- tietokannoista. Lisäksi selattiin eräiden tunnettujen alan lehtien tiettyinä aikaväleinä ilmestyneet numerot, lähinnä viime vuosilta. Työtä varten tutkittiin myös joitakin muita lehtiä, konferenssijulkaisuja sekä muutamia kirjoja, raportteja ja Internet-julkaisuja. Työssä havaittiin muun muassa seuraavia ongelmia ja keskusteltiin niiden ratkausukeinoista. Monet tarkastukset tehdään ja monia menetelmiä sovelletaan vasta testausvaiheessa, koska testauksen luullaan olevan ainoa laadunvalvontatapa. Monet staattiset tarkastustavat on lähes unohdettu, vaikka niiden avulla löydetään virheitä, joita on vaikea havaita muilla keinoilla. Muita unohtuneita alueita ovat ohjelmointivirhetuntemus, tietämys jatkuvasti toistettavista virheistä sekä helpot luotettavuuden lisäämiskeinot. Tutkimukset ovat usein yhteensopimattomia ja siten myös vaikeita ymmärtää. Joidenkin ongelmien, keinojen ja menetelmien ajatellaan liittyvän ainoastaan tiettyyn menetelmään tai sovellusalueeseen, vaikka ne ovat yleisempiä. Yhden osa-alueen tutkimuksissa ei yleensä oteta huomioon alan muita osa-alueita.

Identificador

http://www.doria.fi/handle/10024/61561

URN:NBN:fi-fe201005051790

Idioma(s)

en

Palavras-Chave #fault elimination #fault prevention #software failure #software defect #software bug #software fault #software error #virheenetsintä #häiriö #vika #ohjelmistovirhe #ohjelmointivirhe
Tipo

Licentiate thesis

Lisensiaatintyö