PIC vs ATMEL #2
VF
vf at elte.hu
Sat Feb 14 13:31:27 CET 2004
Thus spake SZIGETI Szabolcs <szigi at ik.bme.hu>:
> Ugyan mar nem emlekszem mi volt az eredeti kerdes, de a C-ben egy \
> kozvetlenul a sor vegen azt jelenti, hogy a kovetkezo sorban folyatatodik az
> a sor. Vagyis tetszoleges hosszu sort tudsz gyartani. Szamtalan pelda van
> kilemeteres #define-okra.
Es #IF is van benne??? Tudom hogy a \ osszefuzi a kovetkezo sorral,
de akkor a #IF-nek sincs vege! Ha pedig vege van, akkor az bevegzi a
#define-t is.
Konyvben sincs ilyen pelda, a prepocesszor es fuggvenyszeru makrok
fejezetben. Meg nem adom fel, varom hogy valaki megirja, vagy
megkerdezek egy programozot a kornyeken. De nem lehet hogy ilyet nem
tud a prepocesszor? Szerintem a #if semmilyen szintaktikaval nem jo.
Nem is abban a fejezetben, hanem a kovetkezoben targyalja a konyv,
a felteteles forditasnal. Nem lehet, hogy erre nincs megoldas?
> Sajnos itt a hiba. Konyvtarakra rug a programteszteles, es a
> szoftverminosegbiztositas irodalma. Mindenki boldog lenne, ha ilyan egyszeru
Ez arra jo, amikor team irja a szoftvert a M$-nel, es senki sem latja
at az egeszet. Itt en irom a szoftvert, az egeszet atlatom. Kis modulokbol
epul fel, mind kulon tesztelve es atnezve, garantaltan mukodnek.
Az analizalo algoritmust meg a kollegam ellenorzi ugyanigy.
> lenne a teszteles. (Esetleg BME-s infosok emlekezhetnek a Szamitogep labor 4
> (projekt labor) cimu targyra. Ott a feladat egy szoftverprojekt
> veghezvitele, es bizony a dolog nagy reszet a *tervezett* es
> *szisztematikus* es *tobblepcsos* teszteles adja. Ha valaki olyat csinal,
> hogy jatszom a programmal egy ideig, es ha nem dol ossze, akkor jo, hat az
> bizony bukta.
Ha millio soros C progi lenne, amit nehez attekinteni illetve nem is
egy ember irta, akkor OK... Kulonben minek?
Komolyan. Ez nem linux kernel.
> Mondog egy igen egyszeru peldat: egy programrol akkor tudunk egyatalan
> barmit is megmondani, ha egyatalan futtatjuk. Elso kozelitesben ez azt
> jelenti, hogy a program minden sorat kell futtatni, ami kb azt jelenti, hogy
> minden felteteles elagazas minden agat egyszer lefuttatjuk. A haromsoros
> programokon tul ez nem egy trivialis taszk.
En minden sorat lefuttatom, a hibakezeles minden lepeset is.
Termeszetesen ugy, hogy modositom a programot, es mestersegesen
injektalok hibakat. Ezert nem ertem hogy mirol beszelsz, mert
ennel korrektebbul nem lehet letesztelni egy programot.
Nyilvan ha sokmillio soros ettekinthetetlen program lenne, akkor
esetleg erdemesebb lenne kevesbe megbizhato, de nagysagrendekkel
hatekonyabb modszereket alkalmazni, amirol te is beszelsz!
Ebben a projectben, es altalaban amit en csinalok, nincs ertelme.
Ugyanis nem vagyok programozo...
> neki, hogy ez megtortenjen. Emlekeim szerint ilyen egyebkent digitalis
> aramkorre is van, addig nem enged tovabblepni mondjuk, amig olyan
> tesztvektort nem adzs, hogy minden flip-flopot megmozgasson.
Sohasem hasznaltam. De ennek foleg az az oka, hogy programozhato
logikakat nem processzor helyett szoktam hasznalni, hanem ahol a
gyorsasagat es egyeb tulajdonsagait hasznalom ki. Az allapotter
sokkal kisebb, atlathato, bekapcsolas utan nehany mikroszekundumon
belul magatol, vagy kis tesztprogrammal az egesz letesztelheto.
> Az altalad emlegetett minden bemenetet kiprobalunk mar csak azert is
> ertelmetlen, mert ha egy programod csak egy 32 bites szamot eszik (es ennel
> csak bonyolultabb programok vannak), akkor is 4 milliard kulonbozo bemenete
> van. De lehet, hogy a kimenet csak egy ertek eseten mas. Vagyis amit az
Ezert kell atlatni a programot... Mert ezt kulonben sehogy sem tudod
kizarni. Ha van egy eldugott if (a==53276327) crash; sor a programban,
akarhogy teszteled es analizeled, nem veszed eszre, amig konkretan
azt az erteket ki nem probalod...
De ezt meg ki lehet szurni ugy, hogy a konstansokat megnezzuk stb..
Ha viszont a program pl akkor fagy, ha egy valtozo pont egy harmadfoku
egyenlet megoldasa, vagy mondjuk egy 2048 bites RSA kodja, akkor azt az
esetet a tudomany mai allasa szerint csak probalkozassal lehetne
eloidezni. Vagy tudni kell mit csinal a program, amire egyetlen program
sem kepes, csak a fejleszto...
> akkor mi van? A program elemzesevel (kezzel, geppel, mindegy) ezek az esetek
> feltarhatoak, es szisztematikus tesztesetek generalhatoak. Amelyeket
> raadasul a fejlesztes soran ujra es ujra lefuttatsz, hogy nem rontottal-e
> valamit a regebben megirt kodokban.
Nagyszeru, az algoritmust karbantarto es fejleszto kollega pont ezt
csinalja. Minden jelentosebb modositas utan tobbezer, szisztematikusan
osszevalogatott meresi adatsoron vegigfuttatja az algoritmust.
En nem csinalok ilyet, pl amikor uj infra parancsot implementalok,
mert felesleges.
> Itt persze nem az automatizalt eszkozon van a lenyeg, hanem azon, hogy a
> programtesztelesnek is van tudomanya. Ez minimum azt jelenti, hogy kezzel,
Szerintem terjunk vissza a vita eredeti targyahoz, vagy hagyjuk abba.
A thread cime az hogy PIC vs ATMEL, ebbol lett ASM vs C, most pedig a
programfejlesztestechnologia es debuggolaselmelet legujabb eredmenyeirol
beszelsz. Nyugodj meg, ennek sokkal kevesbe tudomanyos modszerekkel is
teljesen jo programokat tudok irni asm-ben, mert ezt csinalom sok eve,
ra van allva az agyam, meg gondolkoznom sem kell rajta, ugyanugy ahogy
a magyar nyelv szabalyain sem.
Annyi a trukk, hogy a feladatot le kell bontani kis egysegekre, azokat
egyenkent tesztelni, utana mar csak egymas melle kell rakosgatni oket,
mint a szavakat a mondatban. Tudom, van hejesiras-ellenorzo is, de ne
mondjatok mar hogy jobb mint egy humanoid. Legfeljebb gyorsabb.
> az integracios tesztekrol, arrol a kerdesrol, hogy a program valoban azt
> csinalja-e ami a specifikacio, vagy arrol, hogy hol vannak ateljesitmenybeli
> gondok, stb.
Erdekes, ez valahogy mindig pontosan kiderul magatol is, sajnos...
Megint csak linux kernelben gondolkodsz.
> Es lehetne meg sok mas ilyen, szoftver minoseggel foglalkozo kerdesrol irni,
> javaslom a megfelelo szakiroldalom megtekinteset, tanulsagos.
Ketsegtelen. Legalabb annyira, mint a hegyi borzok parosodasi szokasai :)
De hogy jon ez ide?
> Szabolcs
--
Valenta Ferenc <vf at elte.hu> Visit me at http://ludens.elte.h u/~vf/
*** This advertising space is for sale ***
More information about the Elektro
mailing list