ProteGO-Safe / web

Source code for ProteGO Safe PWA
https://safesafe.app
GNU General Public License v3.0
25 stars 14 forks source link

Prośba o dodanie testów do kodu #8

Closed tlakomy closed 4 years ago

tlakomy commented 4 years ago

Cześć!

Dzięki za pracę nad aplikacją, mam nadzieję, że dzięki niej lockdown skończy się szybciej niż później.

Przeglądając kod źródłowy jedna rzecz mnie zmartwiła - mianowicie brak testów (unit/integracyjnych/e2e). Jeżeli ta aplikacja ma (docelowo) być zainstalowana przez większość społeczeństwa posiadająca smartfony to wydaje mi się, że warto przyłożyć uwagę do porządnego otestowania kodu.

Zakładam, że aplikacja jest testowana manualnie przy większych zmianach, ale to niestety może nie wystarczyć (szczególnie przy szybkim tempie rozwoju, dodawania nowych funkcjonalności etc.).

Testujemy potencjalnie zarażonych, testujmy też nasz kod, który ma ich chronić.

tlakomy commented 4 years ago

Szczerze mówiąc to mogę dodać nawet jakieś smoke testy z cypress.io w wolnej chwili tylko potem trzeba byłoby to zintegrować z gitlab-ci (do którego nie mam dostępu, więc zakładam, że to nie jest open source).

Niemniej uważam, że testy jednostkowe/integracyjne tak czy siak powinny się pojawić

tlakomy commented 4 years ago

Dobra, przemyślałem sprawę i w majówkę dodam podstawowe e2e testy do PWA :) Chociaż tak mogę pomóc

EDIT: Sprawy osobiste, jednak miałem mniej czasu niż zakładałem. Poza tym widzę w innych issue'sach i odpowiedziach, że zainteresowanie testowaniem jest nikłe, więc nie wiem czy chcę dopisywać testy, których nikt nie będzie utrzymywał 🤔

KoderFPV commented 4 years ago

@tlakomy Hej, Każdy test się przyda, aczkolwiek dynamika projektu jest dość duża i testowanie czegoś co potencjalnie może zaraz zostać zmienione, może być kłopotliwe w przyszłości, proszę pamiętaj o tym. :)

A jak będą testy to będziemy mieli możliwość wrzucić je na pipeline.

bartosztomczak commented 4 years ago

Zapamiętam bo to istotnie dobra uwaga. Niektóre moduły tej implementacji zmieniają się z prędkością światła. Jednak w wypadku repo web - nie przewiduję rewolucji. Dlaczego mielibyśmy myśleć o zmianie obecnej technologii. Mamy w testach interakcyjnych czasy na poziomie 0,6s dla akcji [otwórz stronę, zaczekaj aż się załaduje i kliknij button Rozpocznij]. Jest też pole do dalszych optymalizacji :) Mam nadzieję, że następna zmiana na produkcji zostanie już wrzucona przez GH Actions z tego repozytorium. Zakładam, że tutaj już zaglądałeś? Do pełni szczęścia brakuje tu jeszcze czyszczenia pamięci cache na poziomie Cloudflare'a bo to robimy profilaktycznie dla całej "strony" po każdej akcji deploy.

tlakomy commented 4 years ago

Powiem tak, wydaje mi się, że zespół ma troche inne nastawienie do testowania niż ja.

Rozumiem, że prędkość rozwijania się projektu jest szybka (i to cieszy, po co komu taka aplikacja za 5 lat), ale IMHO to nie zwalnia z pisania testów przez zespół.

Na etapie hackathonu, gdy projekt nie jest jeszcze można powiedzieć "dodamy później", ale w momencie, gdy projekt jest już:

przetestowanie kodu nie jest czymś o czym myśli się później. To jest obowiązek.

Po prostu martwi mnie trochę to, że klient webowy ma 0 testów, z tego co widziałem aplikacje natywne iOS/Android też, a upubliczniony backend ma ich garstkę. Rozumiem, że zespół działa w dosyć unikalnej sytuacji, ale zastanawiam się czy jesteście w stanie odpowiedzieć na pytanie:

"Czy nasza aplikacja działa w 100% zgodnie z specyfikacja?"

Bo moim prywatnym zdaniem bez testów odpowiedź na te pytanie brzmi zawsze nie.

KoderFPV commented 4 years ago

Zgłoszenie zostało przyjęte Wewnętrzny numer zgłoszenia to: PSAFE-824

Aczkolwiek jest to dłuższy temat :)

SeraMoon commented 4 years ago

Chyba kolejne siostrzane zgłoszenie #216

Projekt bardzo zaniedbany.

arthurkowalsky commented 4 years ago

Jeżeli chodzi o testy kodu źródłowego to staramy się je uzupełniać w raz z kolejnymi wersjami - w wersjach 4.3.X będzie można zaobserwować kolejny przyrost w tym temacie.

TomaszMolenda commented 4 years ago

W wersji 4.4.0 mamy 94 przypadki testowe. Wcześniej (początek projektu) faktycznie testowanie było zaniedbane - wychodzimy powoli z tego długu :muscle:

W związku z tym proszę o zamknięcie tematu.