Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

Baze de date embedded – exercitiu practic (pentru programatori mid-level)

* * * - - 2 votes
  • Please log in to reply
183 replies to this topic

#181
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postjegmihai, on 07 octombrie 2018 - 08:43, said:


Dacă făceam TDD de la ĂŽnceput, pe lângă celelalte beneficii pe care presupun că le-ar aduce, aș fi avut un cod 100% testabil?


OK.

Scopul unei suite de teste nu e test coverage de 100%.

Unul dintre scopuri este identificarea părții din cod care crează probleme.

Exemplu, pentru feature "adăugare contact" ai o serie de teste:

1. Unul sau câteva acceptance tests. Acestea testează toată aplicația prin exersarea UI, simularea de clicuri și de apăsări de taste.
Când aceste teste trec, îi spui lui PO că e gata feature. Te ajută să păstrezi direcția generală atunci când dezvolți.

2. Teste de integrare a diferitelor layere/plugins, în diferite combinații. Un test ar fi faptul că apelarea lui addContact într-adevăr crează o intrare în baza de date. Ușor de făcut in-memory cu sqlite.

3. Unit tests. Acestea testează metodele publice.


Dacă testul din 1 eșuează, el îți spune ceea ce ți-ar spune utilizatorul că nu e în ordine, dar nu îți spune tehnic ce e greșit : clicul nu a funcționat, datele nu au fost validate de domeniu, baza de date nu are o intrare, etc - știi doar la nivel abstract ce feature nu funcționează.

Dar testele 2 și 3 te ajută să identifici exact partea de cod vinovată. Deduci asta din constelația de teste roșii.


Problema e următoare : integrările dintre componente tind să fie testate cu mocks. Însă dacă ai un pod clar în arhitectură clar, îl poți folosi pe el în loc de mock, adică într-adevăr testezi punctul de integrare, fără a te baza pe "inside knowledge" prea mult.

"mai testabil" în acest context înseamnă "suită de teste mai robustă, mai de încredere".

Observer pattern descrisă anterior ar fi un astfel de pod în arhitectură.

Nu e ca și cum asta ar fi marea salvare, e unul dintre pașii mici pe care îi poți face. Există numeroase abordări, unele în alte direcții, toate bune.

Ceea ce vrei e o direcție coerentă, consistentă cu sine însăși, nu să umbli în zigzag.

E abstract ce zic, dar cel mai eficient e dacă mă exprim în metafore.

#182
jegmihai

jegmihai

    Senior Member

  • Grup: Senior Members
  • Posts: 11,536
  • Înscris: 03.09.2013
Cât de abstractă trebuie să fie interfața IObserver?

Eu am gândit-o așa, dar nu mă ajută foarte mult.

class IObserver
{
public:
	virtual ~IObserver() = default;
	virtual void update() = 0;
};



#183
jegmihai

jegmihai

    Senior Member

  • Grup: Senior Members
  • Posts: 11,536
  • Înscris: 03.09.2013
Nu mă ajută în sensul că pot exista 3 moduri diferite prin care state-ul poate fi schimbat, și nu doar una.

#184
jegmihai

jegmihai

    Senior Member

  • Grup: Senior Members
  • Posts: 11,536
  • Înscris: 03.09.2013
Din păcate timpul nu îmi mai permite să lucrez atât de des la proiect.

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate