weryfikacja skonstruowanego rozwiązania

0

Witam
Muszę zrobić do pracy, jakąś weryfikację mojego skonstruowanego rozwiązania, a jest to aplikacja napisana w c#, która opiera się na bazie danych SQL server 2005. Aplikacja to głównie zapytania do bazy danych. Ktoś się orientuje w jaki sposób mogę jak najszybciej zweryfikować (przetestować) aplikację, tak by udowodnić, że działa ona poprawnie?

0

Testy jednostkowe? (NUnit?)

0

A nie da się czegoś szybciej zrobić -- mam właściwie jutrzejszy dzień na zrobienie jakiś testów, a z testami jednostkowymi do bazy danych za dużo jest zabawy - musiał bym bardzo dużo czasu poświęcić na ich napisanie i skonstruowanie klasy do testowania.

0

Zrób matematyczny model i dowiedź poprawności...

0
Świętowit napisał(a)

Zrób matematyczny model i dowiedź poprawności...

Hheh - dobre :-)
A tak na poważnie - może istnieją jakieś automatyczne narzędzie, gdzie np. zmierzył bym sobie wydajność i jak moja baza zachowuje się pod jakiś bardzo dużym obciążeniem (np. 50 osób połączonych) ?

0

do zmierzenia wydajnosci odpalasz profilera i sledzisz jakies countery zwiazane z sql serverem
a zeby zasymulowac to dla kilku osob, hmmm jakis soft nagrywajacy poczynania uzytkownika, klikanie myszka, dane z klawiatury i pozniej zapuszczenie tego x razy (ale nie znam takiego softu)

a model mat. i jego dowodzenie to nie kawal, sa firmy ktore stosuja taka metodologie i osiagaja niezawodnosc aplikacji rzedu 99%, kazda konkurencja sie chowa (mowimy tu o aplikacjach rzedu dziesiatek tys. lini kodu, a nie kilka)

0

No ja mówię raczej o prostej aplikacji - więc już sam nie wiem co mam teraz zrobić.

0
Świętowit napisał(a)

Zrób matematyczny model i dowiedź poprawności...

To jest absolutnie niewykonalne. A jeśli jakiś wielce poważany profesor twierdzi, że dowiódł – jest w błędzie.
Nie da się wziąć pod uwagę nieznanych jeszcze bugów i nieudokumentowanych osobliwości w bibliotekach, kompilatorze, systemie operacyjnym i samym sprzęcie.
Możesz sobie dowodzić że write(2+2) wyświetli 4, a jak przyjdzie do uruchamiania, program się wywali w kosmos "bo coś tam".

0
Azarien napisał(a)

To jest absolutnie niewykonalne.

Cholera, a jak ja skończyłem studia, to metody formalne jeszcze istniały.

0
mandaryna napisał(a)

No ja mówię raczej o prostej aplikacji - więc już sam nie wiem co mam teraz zrobić.

Najlepiej cokolwiek. Jak masz czas do jutra i siedzisz tylko i sie zastanawiasz jak to zrobic szybciej - to juz straciles polowe czasu.

0
johny_bravo napisał(a)
mandaryna napisał(a)

No ja mówię raczej o prostej aplikacji - więc już sam nie wiem co mam teraz zrobić.

Najlepiej cokolwiek. Jak masz czas do jutra i siedzisz tylko i sie zastanawiasz jak to zrobic szybciej - to juz straciles polowe czasu.

Heh. Mam jeszcze jutrzejszy dzień :-) Testów jednostkowych nie zrobię, bo nigdy takowych nie robiłem, a trzeba by sporo czasu poświęcić żeby się wdrożyć i zaimplementować je. Jedynym rozwiązaniem, które wymyśliłem dzisiaj są testy funkcjonalne, realizowane według poniższego schematu:

Cel testu:
xxxxxxxxxxxxxx
Przebieg testu:

  1. xxxx
  2. xxxx
    Przewidywane wyniki testu:
    xxxxxxxxxxxxxxxxxxxxx
    Wyniki testu:
    xxxxxxxxxxxxxxxxx

Jednak chyba takowe testy przeprowadzone przeze mnie nie będą mieć jakiegokolwiek sensu. A zastanawiam się bo muszę mieć jakąś koncepcje na realizację testów, prawda jest taka, że takowych nigdy nie przeprowadzałem stąd rodzi się problem.

0

No i straciles 6h... w tym czasie moglbys spokojnie przerobic cos takiego i juz dawno bys mial zrobione:
http://msdn.microsoft.com/en-us/library/ms379625(VS.80).aspx

0
somekind napisał(a)
Azarien napisał(a)

To jest absolutnie niewykonalne.

Cholera, a jak ja skończyłem studia, to metody formalne jeszcze istniały.

Nie rozumiesz. Chodzi mi o to, że te "metody formalne" w praktyce można sobie o kant potłuc.
I nie wolno im bezgranicznie wierzyć. Niezależnie, co ci matematyk będzie gadał ;-)

0

Z tego co wiem, to w praktyce jednak mają one zastosowanie w pewnych specyficznych przypadkach, takich jak systemy wysokiego ryzyka, ogólnie tam, gdzie nie liczy się czas czy koszt, tylko jakość i niezawodność.
A to, że rzadko się je spotyka i w tym przypadku nie mają żadnego sensu, to inna rzecz. ;)

0

Jakość i niezawodność w systemach wysokiego ryzyka, otrzymuje się przez dokładną i właśnie formalnie poprawną specyfikację, natomiast napisany kod się testuje, testuje i testuje tak długo, aż wyłapie się statystycznie przewidzianą ilość błędów: nie dając wiary temu, że ich nie będzie.

0

A może jest ktoś kto siedzi w temacie testów i wykonał by mi je jakoś prowizorycznie za dwie krowy i jednego niewolnika :-) ?

1

Heh, koledzy się żołądkują że zmarnowałeś już 6 h, a okazuje się że zmarnowałeś 20 :/. Wątpie żeby ktoś na to poszedł... Zresztą zrobiłbyś je już trzy razy co najmniej gdybyś chociaż spróbował :|

0

Zrobienie prostego unit testu w Visualu, po przeczytaniu tutoriala na MSDN, bez zadnej znajomosci tematyki to maksymalnie 30 minut. Rozkrecenie tego do czegos, co da sie uznac jako weryfikacja chocby czesci funkcjonalnosci to minimum dzien, zalezy oczywiscie od rozleglosci kodu sprawdzanego. Testy objetosciowo zajmuja mniej wiecej tyle, co testowany kod. Ale tez rzadko kiedy udaje sie osiagnac 100% pokrycia :)

0

Wie ktoś może czym się różnią testy przypadków użycia od testów funkcjonalnych ? Czy to nie jest przypadkiem to samo ?

0

Jeszcze ram ponawiam pytanie odnośnie testów przypadków użycia. Znalazłem w kilku raportach takie testy. Może ktoś się orientuje na czym one polegają ? Autor takich testów pisze: "Testerzy będą wykonywać po kolei kroki poszczególnych przypadków użycia i sprawdzać, czy są poprawnie realizowane. Oprócz tego będą się na wszelkie sposoby złamać system bądź mu zaszkodzić, co ma na celu wykrycie błędów związanych z bezpieczeństwem danych na portalu."

Czy te testy wykonuje się na podstawie opisu(scenariuszy) przypadków użycia zrobionych do analizy zapotrzebowań (model projektu), gdzie kolejno przechodzi się przez punkty scenariusza i sprawdza czy aplikacja jest zgodna ze scenariusze umieszczonym w opisie danego przypadku użycia ?

Czy może chodzi po prostu o testy funkcjonalne oparte na przypadkach użycia ?

0

To moze byc to samo, ale nie musi. Testy funkcjonalne prowadzone sa przez osoby nie znajace struktury aplikacji i sprawdzajace, czy wszystkie funkcjonalnosci dzialaja tak jak w zalozeniach. Przypadki uzycia opisuja z kolei funkcjonalnosci systemu z punktu widzenia aktorow. Ale aktorem moze byc tez sam system, np. wywolujacy jakas funkcjonalnosc automatycznie, zegarem, itp. Tego tester nie sprawdzi, chyba, ze ma jakis podglad wynikow tego automatu, ale taki podglad moze nie byc wymagany przeciez. Moim zdaniem te testy pokrywaja sie, jesli aktorem inicjujacym przypadek uzycia jest ogolnie pojety czlowiek: uzytkownik, admin, moderator, itp.

0
johny_bravo napisał(a)

To moze byc to samo, ale nie musi. Testy funkcjonalne prowadzone sa przez osoby nie znajace struktury aplikacji i sprawdzajace, czy wszystkie funkcjonalnosci dzialaja tak jak w zalozeniach. Przypadki uzycia opisuja z kolei funkcjonalnosci systemu z punktu widzenia aktorow. Ale aktorem moze byc tez sam system, np. wywolujacy jakas funkcjonalnosc automatycznie, zegarem, itp. Tego tester nie sprawdzi, chyba, ze ma jakis podglad wynikow tego automatu, ale taki podglad moze nie byc wymagany przeciez. Moim zdaniem te testy pokrywaja sie, jesli aktorem inicjujacym przypadek uzycia jest ogolnie pojety czlowiek: uzytkownik, admin, moderator, itp.

Wobec tego czy mogę je tak przeprowadzić jak opisałem to poniżej:
"By zweryfikować poprawność stworzonego systemu na początku zdecydowano się na przeprowadzenie testów przypadków użycia, gdzie wykonano po kolei wszystkie kroki poszczególnych przypadków użycia by sprawdzić czy są poprawnie realizowane. Testy wykazały, że wszytkie założone funkcjonalności zostały zaimplementowane i działają zgodnie z założonymi głównymi przebiegami zdarzeń przypadków użycia. Wyjątkiem było parę funkcjonalności, w których założony przebieg alternatywny nie został uwzględniony. Zazwyczaj generowany był błąd w sytuacjach, gdy użytkownik nie wybrał z wyświetlonej listy żadnej pozycji, a kliknął na przycisk odpowiadający za zatwierdzenie wyboru. Po poprawieniu wykrytych błędów przystąpiono do testów wydajnościowych."

0

W sumie nie napisales na poczatku, ze to ma byc automat testujacy. Testy manualne sa rownie wazne jak jednostkowe w koncu. Jesli to promotorowi wystarczy no to bedzie :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1