Stöðugreining vs Dynamic Greining í hugbúnaðarprófun

Hvað er stöðugreining?

Stöðugreining felur í sér enga kraftmikla framkvæmd á hugbúnaðinum sem er til prófunar og getur greint mögulega galla á frumstigi áður en forritið er keyrt.

Stöðugreining er gerð eftir kóðun og áður en einingapróf eru framkvæmd.

Stöðugreining er hægt að gera með vél til að sjálfkrafa „ganga í gegnum“ frumkóðann og greina reglur sem ekki eru í samræmi við það. Klassíska dæmið er þýðandi sem finnur orðasambönd, setningafræði og jafnvel sum merkingarfræðileg mistök.

Stöðugreining getur einnig verið framkvæmd af einstaklingi sem myndi endurskoða kóðann til að tryggja að réttir kóðunarstaðlar og venjur séu notaðar til að smíða forritið. Þetta er oft kallað Code Review og er gert af jafningi verktaki, einhverjum öðrum en verktaki sem skrifaði kóðann.

Stöðugreining er einnig notuð til að neyða forritara til að nota ekki áhættusama eða galla hluti af forritunarmálinu með því að setja reglur sem ekki má nota.

Þegar verktaki framkvæmir kóðagreiningu leita þeir venjulega að

  • Kóðarlínur
  • Athugasemdartíðni
  • Rétt hreiður
  • Fjöldi virknisímtala
  • Cyclomatic flækjustig
  • Getur líka leitað til einingaprófa

Gæðareiginleikar sem geta verið í brennidepli við kyrrgreiningu:

  • Áreiðanleiki
  • Viðhald
  • Prófanleiki
  • Endurnotkun
  • Færanleiki
  • Skilvirkni

Hverjir eru kostir stöðugreiningar?

Helsti kostur truflunargreiningar er að það finnur vandamál með kóðann áður en hann er tilbúinn til samþættingar og frekari prófana.

Kostir við greiningu kyrrstöðu:

  • Það getur fundið veikleika í kóðanum á nákvæmum stað.
  • Það getur verið stjórnað af þjálfuðum forritara fyrir hugbúnaðartryggingu sem skilja kóðann að fullu.
  • Kóðakóða er auðvelt að skilja fyrir aðra eða framtíðarhönnuði
  • Það gerir fljótlegri snúning við lagfæringar
  • Veikleiki er að finna fyrr í lífsferli þróunarinnar og dregur úr kostnaði við að laga.
  • Minni galla í síðari prófunum
  • Sérstakir gallar greinast sem ekki er hægt að greina með varla með kraftmiklum prófum

    • Óaðgengilegur kóði

    • Breytileg notkun (svart, ónotuð)

    • Ó kallaðar aðgerðir

    • Brot á mörkum

Takmarkanir á stöðu kóða greiningar:

  • Það er tímafrekt ef það er gert handvirkt.
  • Sjálfvirk verkfæri framleiða rangar jákvæðar og rangar neikvæðar.
  • Það er ekki nægt þjálfað starfsfólk til að framkvæma greiningu á kyrrstöðu.
  • Sjálfvirk verkfæri geta veitt ranga öryggistilfinningu um að allt sé tekið á.
  • Sjálfvirk tæki aðeins eins góð og reglurnar sem þau nota til að skanna með.
  • Það finnur ekki veikleika kynnt í keyrslu umhverfi.

Hvað er Dynamic Analysis?

Öfugt við Static Analysis, þar sem kóði er ekki framkvæmdur, byggist kraftmikil greining á kerfisframkvæmd , nota oft verkfæri.

Frá Wikipedia’s skilgreining á virkri dagskrárgreiningu :

Dynamic forritagreining er greining á tölvuhugbúnaði sem er framkvæmd með því að framkvæma forrit byggt úr þeim hugbúnaði á alvöru eða sýndar örgjörva (greining sem gerð er án þess að framkvæma forrit er þekkt sem kyrrfræðigreining). Öflug greiningartæki forrita geta þurft að hlaða sérstökum bókasöfnum eða jafnvel endurreikna forritakóða.

Algengasta öfluga greiningarvenjan er að framkvæma einingapróf gegn kóðanum til að finna einhverjar villur í kóða.

Dynamic kóða greining kostir:

  • Það skilgreinir veikleika í umhverfi keyrslu.
  • Það gerir kleift að greina forrit þar sem þú hefur ekki aðgang að raunverulegum kóða.
  • Það skilgreinir veikleika sem gætu hafa verið rangar neikvæðar við greiningu á kyrrstöðu kóðanum.
  • Það gerir þér kleift að staðfesta niðurstöður fyrir greiningu á kyrrstöðu.
  • Það er hægt að gera gegn hvaða umsókn sem er.

Takmarkaðar greiningar á kóða greiningu:

  • Sjálfvirk verkfæri veita ranga öryggistilfinningu um að tekið sé á öllu.
  • Get ekki ábyrgst alla prófun umfjöllunar um frumkóðann
  • Sjálfvirk verkfæri framleiða rangar jákvæðar og rangar neikvæðar.
  • Sjálfvirk verkfæri eru aðeins eins góð og reglurnar sem þau nota til að skanna með.
  • Það er erfiðara að rekja varnarleysið aftur til nákvæmrar staðsetningar í kóðanum og það tekur lengri tíma að laga vandamálið.