bezpecnost
Dan Lukes
dan at obluda.cz
Thu Mar 2 00:34:16 CET 2006
Divacky Roman wrote:
> neni v lidskych silach vyvarovat se chyb typu
>
> if ((bah = malloc(..)) = NULL)
No, to jsme u toho. Prave na tento ty chyby upozornuje GCC varovanim. A
kdyz se na varovani kasle, a ono se na ne kaslat musi, protoze kdo bude
hledat, ktere varovani pribylo, kdyz se jejich celkovy pocet zvysil z
3247 na 3248, no tak to tam samozrejme zustane.
Ale to by bylo znovu dokola. Ja bych obhajoval, ze na tyhle chyby ti
prijdou lidi, kteri maji zajem na vyvoji participovat, ale musi byt vule
jim to umoznit - coz znamena - dovolit jim eliminovat tech 3247
varovani, aby to nasledujici (v te chvili jedine) mohli analyzovat - a
bud' zjistit, ze je to skutecne chyba, nebo lehce eliminovat dalsi
falesne varovani.
Tys ovsem presvedcen, ze tahat do toho lidi je zbytecne, protoze ty
problemy vyresi tech par zasvecenych s pristupem k zakoupenemu toolu.
Nicmene, nerad bych aby vznikl dojem, ze warningu povazuji za nejaky
svaty gral, ktery vyresi vsechny problemy - pouzivam to jen jako priklad.
Mimo jine take priklad toho, ze tam, kde ty vidis jen dve reseni (a obe
automatizovana - tedy lepsi jazyk nebo automaticky testovaci tool), tak
existuji i jina reseni. To, ze se navic domnivam, ze lepsi, protoze ve
vysledku univerzalnejsi a spolehlivejsi je uz detail.
> az napises program, kteremu predlozis kus zdrojaku a on ti napise "program je
> bez chyby" tak fajn, ale tohle nejde. vim, ze existuji ruzne verifikacni
> formalismy, dokazovani programu (hoare-floyd) atd. ale realne se nic z toho
> nepouziva protoze je proste levnejsi zaplatit 10ti studentum 50 korun za hodinu
> at to testuji. a i kdyby se to pouzivalo tak to nikdy nebude fungovat 100%,
> takove jsou zakony prirody.
Ty si myslis, ze problem se da vyresit "mechanicky" - lepsimi jazyky,
automatickymi verifikacemi. Programator kod dodal, hlavne aby ho ten
nabastlil zadarmo - a funkcnost, no vite, to jsme okoukali od Microsoftu
- to se vezme deset studentu a oni otestuji par veci, co je napadne.
Zkusime to zaridit tak, aby otestovali to, co si myslime, ze se bude
nejcasteji pouzivat. Ano, mate pravdu, kdyz se pokusite pouzit neco
jineho, nebo kdyz se vase podminky dostanou mimo "obvykle meze" - no tak
vam ten system asi spadne. Vite, asi byste nemel pouzivat veci, ktere
nepouziva 90% lidi. Na ty vase specialni pozadavky tady nikdo neni
zvedavej. Takove uz jsou zakony prirody. Stabilni a spolehlivy system,
takovy anachronismus. Vy jste se clovece muse narodit hodne davno v
minulym stoleti ...
Ano, trochu prehanim - ve skutecnosti to s tim, jakym zpusobem je v
soucasnosti FreeBSD vyvijeno neni az tak strasne. Ale trend's popsal
velice presne. A tak hlavni rozdil mezi nami je v tom, ze ja si myslim,
ze tohle je velice spatny smer a bylo by dobre se vratit k puvodnim
principum, kdezto ty jsi presvedceny, ze takhle je to nejlepsi a je
treba timto smerem pokracovat dale.
No nic, mas pravdu, je cas to utnout. Stejne se nedohodnem.
Nemluve o tom, ze ja se opravdu narodil hodne davno v minulym stoleti,
takze ty moderni pozadavky na masove rozsireny OS a nejnovejsi trendy v
metodach programovani uz patrne opravdu presahuji moje mentalni
schopnosti ;-)
Howgh
Dan
P.S. Jestli jedine metody testovani programu, ktere znas jsou "nahodne
testovani par studenty" a pak uz jen formalni verifikacni metody, tak
bys mozna mohl zaskocit na nejakou vhodnou prednasku o programovani. Ve
skutecnosti ale verim, ze jine metody ve skutecnosti znas a tak ta
pasaz, kde rikas, ze programy se musi testovat studenty, protoze jine
metody, ktere znas (a zminujes jen ty formalni), jsou nepouzitelne byla
ucelova demagogie.
More information about the Users-l
mailing list