RSS

Testy jednostkowe: co zamiast TFD

Liczba odsłon: 289

Metoda Tests-First, opi­sa­na w po­przed­nim wpi­sie, sta­no­wi bar­dzo for­mal­ne po­dejś­cie do kwestii ja­koś­ci opro­gra­mo­wa­nia. Jednak ze wzglę­dów prak­tycz­nych, jej sto­so­wa­nie nie jest po­wszech­ne i mo­że po­wo­do­wać no­we prob­le­my.

Najpoważ­niej­sze wa­dy tech­ni­ki Tests-First Develop­ment zo­sta­ły już wy­mie­nio­ne. Warto do­dać do nich ko­lej­ną, o du­żo bar­dziej dłu­go­fa­lo­wych skut­kach. Rozpoczy­na­nie pro­ce­su opra­co­wy­wa­nia opro­gra­mo­wa­nia od przy­go­to­wa­nia te­stów mo­że zna­czą­co wpły­wać na archi­tek­tu­rę sys­te­mu.

Wyróżnia się dwie istot­ne ce­chy archi­tek­tu­ry opro­gra­mo­wa­nia:

Stosowa­nie tech­ni­ki TFD nie­uchron­nie pro­wa­dzi do fa­wo­ry­zo­wa­nia archi­tek­tu­ry two­rzo­nej pod ką­tem tes­to­wa­nia, z od­su­nię­ciem na bok kwestii zwią­za­nych z ko­rzy­sta­niem z two­rzo­nej bi­blio­te­ki klas. Niektóre kon­cep­cje wy­stę­pu­ją­ce w ser­we­rach apli­kac­ji – ta­kie jak od­wró­ce­nie ste­ro­wa­nia, po­zwa­la­ją unik­nąć zbyt­nie­go roz­drob­nie­nia klas i prze­ka­zy­wa­nia mi­nia­tu­ro­wych obiek­tów-inter­fej­sów do mo­du­łów pod­le­ga­ją­cych imi­ta­cji. Mimo to, two­rzo­ne kla­sy częs­to zmie­rza­ją do mo­de­lu bez­sta­no­we­go, ułat­wia­ją­ce­go te­sto­wa­nie lecz utrud­nia­ją­ce­go two­rze­nie ele­ganc­kich, wy­daj­nych pro­gra­mów reali­zu­ją­cych zło­żo­ne pro­ce­sy.

Programi­ści częs­to trak­tu­ją za­tem te­sty jed­nost­ko­we ja­ko zło ko­niecz­ne, przy­go­to­wu­jąc je je­dy­nie w od­nie­sie­niu do mo­du­łów lub pod­pro­gra­mów spra­wia­ją­cych wy­jąt­ko­we prob­le­my w trak­cie roz­wo­ju. Tak stwo­rzo­ny ze­staw te­stów jest wy­ryw­ko­wy, ma­ło re­pre­zen­ta­tyw­ny, a po­ży­tek z nie­go w przy­pad­ku re­fak­to­ry­za­cji ko­du bę­dzie ra­czej nie­wiel­ki.

ko­lej­nym wpi­sie przed­sta­wię alter­na­ty­wę dla tech­ni­ki TFD, któ­ra wy­ma­ga co praw­da po­waż­ne­go na­kła­du pra­cy, jed­nak nie po­wo­du­je fa­wo­ry­zo­wa­nia pro­jek­tu uwzględ­nia­ją­ce­go te­sto­wa­nie i ułat­wia uzys­ka­nie sze­ro­kie­go po­kry­cia ko­du te­sta­mi jed­nost­ko­wy­mi.