Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tvorba unit testů: Testování use-cases obsahových správců #504

Open
6 tasks
Fasand opened this issue May 19, 2019 · 3 comments
Open
6 tasks

Tvorba unit testů: Testování use-cases obsahových správců #504

Fasand opened this issue May 19, 2019 · 3 comments
Assignees
Milestone

Comments

@Fasand
Copy link
Contributor

Fasand commented May 19, 2019

Začal jsem pracovat na novém zadáním updatem na Django 2.2 (branch django2), což samozřejmě okamžitě způsobilo spoustu problémů. Většinu těch problémů spojených čistě jen s updatem jsem už vyřešil a zbytek nejspíš vyřeším jednoduše pomocí access testů: načtu všechny dostupné (nastavené) url a zkontroluju, jestli mi to vrátí status 200 nebo 404.

Každopádně je možné, že i když se všechny stránky budou načítat správně, tak potom když třeba manuálně použiju nějaký formulář (e.g. vytvoření nového zdroje) nebo podobnou funkcionalitu, tak to buďto crashne nebo to prostě udělá něco trochu jiného než by mělo.

Příklad: stará implementace harvest_urls při /harvests/<datum>/2/urls vrátila všechny sklizně nejen pro 2x ročně, ale také 12x a 52x ročně, protože filter ...__contains vracel všechno, kde se 2 objevila, tedy i 12 a 52, ne jenom přesně 2. Na tohle tam už teď mám test, ale dost možná tam bude podobných problémů více.

Takže co bych vlastně chtěl otestovat: use cases pro hlavní funkce – slovně popsaný postup co vlastně uživatel dělá, když chce provést nějakou akci v aplikaci.
Na příklad "Vytvářím nový zdroj": kliknu 'Add', zadám informace, zadám seedy, ... a na konci vidím, že ten zdroj existuje, má takové seedy, vidím ho já a nikdo jiný, ...

Takže vesměs dokumentace... Dokázal bych si asi většinu akcí odvodit ze samotné práce s aplikací a z kódu, což nejspíš také ze začátku udělám, ale bylo by dobré mít minimálně nějaký seznam těchto use cases, ne nutně profesionální 100-stránkové specifikace.

Důvod: i když budou unit testy na funkcionality samotných modulů (e.g. "všechno" kolem Harvests funguje tak jak má/je v kódu a můžu se spolehnout, že mi to v polovině nějaké akce jen tak nespadne, když tam dám špatné datum), ty samy o sobě nebudou garantovat funkcionality celého systému. Do budoucna by se teda hodilo mít garanci aspoň pro těch několik hlavních funkcí. e.g. #498 #478 #485 #402

Testy:

  • www: access test všech neparametrizovaných www url (e.g. about)
  • www: access test všech parametrizovaných www url (e.g. search/)
  • seeder: access test všech neparametrizovaných seeder url (e.g. seeder/source/list)
  • seeder: access test všech parametrizovaných seeder url (e.g. seeder/source/detail/)
  • unit testy pro jednotlivé moduly (e.g. Source, Harvest, ...)
  • use case testy (integrace několika modulů podle předepsaného postupu)

pozn.: za mě to teď vůbec nespěchá, ale hodilo by se něco takového mít minimálně v dalším zadání, tak na to nechci zapomenout

@kvasnicaj
Copy link
Contributor

To není problém, my už jsme pro sebe interně začali pracovat na vlastní uživatelské dokumentaci, tak ji rozšíříme, tak jak to potřebuješ. Začneme na tom postupně pracovat hned, protože podle mě dává smysl, aby něco takového existovalo.

@mariehaskovcova
Copy link
Contributor

pracovní verze uživatelské dokumentace:
https://docs.google.com/document/d/15pUab88uEUXtmw9iBEAvotA9wNqzxCSSd3TGAmrQmu0/edit#

@mariehaskovcova mariehaskovcova added this to the v.1.0.4 milestone Jun 22, 2020
@mariehaskovcova mariehaskovcova modified the milestones: 1.0.4, 1.0.6 Dec 11, 2020
@JanMeritus JanMeritus changed the title Testování use-cases Tvorba unit testů: Testování use-cases obsahových správců Apr 30, 2021
@JanMeritus
Copy link
Contributor

dle dohody, zatim prosim zde 1-2 elementarni funkcionality - funkcionalitu pojmenuje @mariehaskovcova , @habetpet pomuze s pripravou scenare

@mariehaskovcova mariehaskovcova modified the milestones: 1.0.6, 1.0.8 Apr 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants