We are hiring. If you would like to join our team contact us via Nabíráme nové kolegy. Pokud máš zájem se připojit k našemu týmu, napiš nám email.
Language: Jazyk: English | Česky

NEWS

NOVINKY

FIND-THE-BUG-APP FIND-THE-BUG-APP

Log in or register HERE.

Registruj se nebo přihlaš ZDE.



Do you want to learn software testing? Do you need to train your testing skills but you don't have any web app with frontend, backend, database and real bugs where you can perform such training?

This app is what you need
Chceš se naučit testovat software? Chceš trénovat svoje testerské dovednosti na reálné webové aplikaci, která má frontend, backend, databázi a obsahuje reálné bugy?

Tato aplikace je to, co potřebuješ


Jste společnost? Pak vám aplikace může pomoci:
  • při školení/vzdělávání testerů
  • jako aplikace, na které můžete zadávat zajímavé testerské úkoly uchazečům o pozici ve vaší společnosti a získat tak efektivně lepší představu o jejich dovednostech, pracovitosti, pečlivosti, komunikaci a dalších
Budeme rádi, když nám dáte vědět na info@smart-qa.cz a probereme představy a možnosti
Are you a company? Then this application might help you:
  • with trainings/education of the testers
  • you can easilly use it for the candidates for the testers positions in your company as the application where you will assign interresting tasks to the candidates in order to you could efficiently verify their skills, proactivity, thinking, communication and others
Don't hesitate to contact us on info@smart-qa.cz. We can discuss the imagines and possibilities

Co je náplní práce testera webové aplikace?

Podle zadávací dokumentace testuje, zda vyvinutá aplikace funguje tak, jak je požadováno.
  • Podle dokumentace vypracuje test analýzu - sada testovacích scénářů, kterými otestuje aplikaci/feature včetně definice testovacích dat apod.
    Testovací scénáře obsahují definici "Expected" a "Actual" výsledku konkrétního testu
  • Následně testuje aplikaci/feature dle testovacích scénářů.
    V případě, že něco nefunguje nebo nevypadá, jak bylo zadáno v dokumentaci, pak tester zadává bug, kde sepíše vše potřebné, určí závažnost a přiřadí na odpovídající vývojový tým, který má za úkol to opravit.
  • K tomu, aby defekt správně přiřadil na vývojáře backend (BE), frontend (FE) nebo databáze (DB), musí správně určit core příčinu chyby v aplikaci.

Frontend (FE, UI)

Aplikace poskytující grafické uživatelské rozhraní, se kterým pracuje koncový uživatel - kliká, vyplňuje, potvrzuje, čte atd. V případě frontendu potřebujeme nutně znát níže uvedené nástroje, abychom mohli odhalovat příčiny bugů v aplikaci ve chvíli, kdy něco nefunguje. Teoreticky zde můžeme odhalit i bug, přestože vše funguje :) Naše frontend aplikace je psaná ve Vue.js.

  • Browser Developer konzole

    V chrome prohlížeči otevřeme stiskem F12. V ostatních prohlížečích konzole vypadá prakticky totožně a otevírá se většinou také přes F12, případně z menu prohlížeče lze kliknout na "Developer console/tools" nebo obdobně.

    • Záložka "Network" - na záložce network můžeme vidět veškerou komunikaci, která jde z FE na BE, jak a odkud stahuje obrázky, javascript knihovny atd. V našem případě, kdy testujeme aplikaci a potřebujeme kontrolovat i integraci na BE, je tato záložka zásadní.
      Dokážeme odhalit volání na BE, která skončí v chybě. Nevrací se nám očekávaný status 2XX, ale můžeme vidět statusy jako 409, 400, 500 a mnoho dalších a ve většině případů nám developer konzole označí tato volání červeně. V tu chvíli musíme pátrat po tom, kde je chyba. Může být kdekoli - na FE, BE i DB, ale chybový kód a response nám vždy napoví, co a kde může být špatně.
    • Záložka "Console" - V záložce console také můžeme vidět volání v chybě, navíc ale můžeme vidět i chyby v implementaci na FE. Například "undefined" objekty, proměnné nebo jiné chyby indikují, že se na FE pracuje s hodnotami/objekty, které nebyly inicializovány, což by znamenalo chybu v implementaci na FE.
    • Záložka "Application" - zde se dozvíme například to, co má prohlížeč uloženo v local storage nebo session storage. Někdy se nám to může hodit.

V případě, že něco nefunguje na FE jak má, využij především první dvě zmíněné záložky k tomu, abys získal podklady k další investigaci bugu, které ti pomohou ho správně pochopit a adresovat.

Backend / Webová služba (BE, API)

Systém běžící na pozadí pod FE, který na FE posílá data, o která si FE řekne. BE je program nasazený na serveru (v případě naší aplikace jde o java aplikaci), který nemá grafické rozhraní, ale má negrafické rozhranní nazývané API, na které se FE dotazuje o data, která potřebuje zobrazit uživateli na grafickém rozhraní. Jde o program, který přijímá a odesílá data z/na FE na jedné straně a získává a ukládá do DB nebo odesílá a přijímá do/z dalších zdrojových systémů na druhé straně. Vše je znázorněno na obrázku na začátku této technické sekce.
BE API (komunikační rozhranní BE) může být implementováno následujícími nejznámějšími způsoby. V obou případech však FE komunikuje s BE přes HTTP protokol. To znamená, že volání vždy obsahuje následující - host/endpoint, hlavičky (Content-type, Authorization a jiné) a tělo (zasílaná data).
Z pohledu FE testera tedy nezáleží na tom, zda je API REST nebo SOAP, stále se jedná o http komunikaci mezi FE a BE, kde může být chyba v datech, validacích apod.

  • REST webová služba
    • Data jsou typicky zasílána a přijímána ve formátu JSON.
    • Co operace, to jeden endpoint (např: POST "http://host.cz/service/v1/customer" - uloží customera).
    • Používají se zde http operace následujícím způsobem:
      GET - dotazuji se na data,
      POST - posílám data a chci je uložit,
      PUT - updatuji existující data,
      DELETE - mažu data.
      V ideálním případě tedy REST používá metody http, které odpovídají tomu, co za operace se provádí s daty (update, uložení, získání, mazání). Samozřejmě to závisí na implementaci BE a teoreticky veškeré dotazy - ukládání, updaty atd. mohou probíhat všechny přes POST - v tom případě zde ale není postupováno v souladu s definicí REST.
    • Dokumentace BE (jaké má operace, jaká data musíme posílat, jaké typy, atd.) může být psána ve Swagger, Apiary nebo například i na confluence nebo v klasickém dokumentu (.doc, .pdf).
      Swagger je velice často používaný a jeho výhodou je, že zde můžeme přímo provolávat BE operace a můžeme je tak jednoduše testovat. Toto si ostatně můžeš vyzkoušet v naší aplikaci. Swagger tam máš po registraci dostupný.

  • HTTP request - REST příklad
    POST https://smartqa-findthebug-app-2pjiue27aq-lm.a.run.app/api/v1/customer HTTP/1.1
    Accept-Encoding: gzip,deflate
    Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdW
    Content-Type: application/json
    Content-Length: 358
    Host: smartqa-findthebug-app-2pjiue27aq-lm.a.run.app
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.5.5 (Java/16.0.1)

    {
    "firstName": "test",
    "lastName": "test",
    "dateOfBirth": "1991-09-13",
    "sex": "MALE",
    "email": "test@test.com",
    "phoneNumber": "12345",
    "primaryAddress": {
    "street1": "test 12",
    "street2": "test 13",
    "city": "test",
    "zip": "123456",
    "country": "ANDORRA"
    },
    "mailingAddress": null
    }

    HTTP response - REST příklad
    HTTP/1.1 201 Created
    vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
    location: /api/v1/customer/6fe3208b-476f-4b4c-87ce-5ee18ad8cc10
    pragma: no-cache
    expires: 0
    x-frame-options: DENY
    content-type: application/json
    Content-Length: 342

    {"id":"6fe3208b-476f-4b4c-87ce-5ee18ad8cc10",
    "firstName":"test",
    "lastName":"test",
    "email":"test@test.com",
    "phoneNumber":"12345",
    "dateOfBirth":"1991-09-13",
    "sex":"MALE",
    "primaryAddress":{"id":"f79267d8-7219-4a43-b031-3a00ae09b0b0",
    "street1":"test 12",
    "street2":"test 13",
    "city":"test",
    "zip":"123456",
    "country":"ANDORRA"},
    "mailingAddress":null}

  • SOAP webová služba

    Narozdíl od REST, v případě SOAP, se vždy používá pro komunikaci na API operace POST a v těle http požadavku jsou vždy zasílána data v definovaném formátu. Webová služba má jen jeden endpoint, na který voláme. To, jakou konkrétní operaci voláme, rozlišujeme právě v těle požadavku. U SOAP se vždy posílají data v http body a v tomto smyslu je odůvodnitelné výhradní použití metody POST. Příklad veřejně dostupné SOAP webové služby nalezneš ZDE.
    Zkus si stáhnout aplikaci SoapUI, naimportuj WSDL vložením odkazu výše a uvidíš, jak vypadají requesty a response v případě komunikace na SOAP službu. Je zde také možné si zobrazit, jak vypadá samotný http request a response, což může být velice užitečné ke zorientování se v problematice http protokolu v kontextu webových služeb.

    • Data jsou typicky zasílána a přijímána ve formátu XML - XML vždy obsahuje následující tagy (mimo jiné, které sami definujeme pro výměnu požadovaných dat v těle XML) - Envelope, Header, Body. XML požadavek má jasně stanovenou strukturu protokolem SOA.
    • Co endpoint to jedna webová služba, jednotlivé operace rozlišujeme v body XML požadavku.
    • SOAP služba je do posledního detailu popsaná v dokumentu zvaném WSDL (web service description language). Jsou zde definovány všechny operace, které služba poskytuje, přesné formáty, typy dat, které jednotlivé operace očekávají atd. Proto je možné WSDL vzít, importovat do SoapUI a SoapUI pro nás podle WSDL vygeneruje všechna volání na všechny operace, které daná služba poskytuje. Můžeme tak po importu WSDL rovnou začít manuálně provolávat jednotlivé operace webové služby.

  • HTTP request - SOAP příklad
    POST http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso HTTP/1.1
    Accept-Encoding: gzip,deflate
    Content-Type: text/xml;charset=UTF-8
    Content-Length: 326
    Host: webservices.oorsprong.org
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.5.5 (Java/16.0.1)

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.oorsprong.org/websamples.countryinfo">
    <soapenv:Header/>
    <soapenv:Body>
    <web:CapitalCity>
    <web:sCountryISOCode>CZE</web:sCountryISOCode>
    </web:CapitalCity>
    </soapenv:Body>
    </soapenv:Envelope>

    HTTP response - SOAP příklad
    HTTP/1.1 200 OK
    Cache-Control: private, max-age=0
    Content-Type: text/xml; charset=utf-8
    Vary: Accept-Encoding
    Server: Microsoft-IIS/8.5
    Web-Service: DataFlex 19.1
    Date: Wed, 19 Oct 2022 14:01:29 GMT

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <m:CapitalCityResponse xmlns:m="http://www.oorsprong.org/websamples.countryinfo">
    <m:CapitalCityResult>Prague</m:CapitalCityResult>
    </m:CapitalCityResponse>
    </soap:Body>
    </soap:Envelope>

Proč je aplikace rozdělena na FE a BE? Proč to všechno nemůže být dohromady? Mohlo by.
FE aplikace by mohla být přímo napojena na zdrojové systémy (DB, BEs třetích stran) bez toho, aniž by mezi tím byl jiný BE. V tom případě by se však FE musel často přenasazovat a upravovat i kvůli změnám, které nejsou spjaty přímo s UI.
Zkrátka historie a praxe ukázala, že je lepší tyto systémy oddělit a být tak agilnější/obratnější v implementaci potřebných změn a úprav napříč aplikačními vrstvami.

Databáze

Zde se ukládají všechna data, která chceme v aplikaci držet. Backend tato data poskytuje v případě potřeby na FE a také data z FE posílá do DB k uložení. V případě naší aplikace používáme relační SQL databázi postgres, do které můžeš sám přímo nahlížet.

Bug může mít následující příčiny:

  • Chyba v implementaci na frontendu (data se zobrazují špatně nebo se nezobrazují vůbec, špatná validace polí, nefunkční tlačítko/odkaz, špatný design/barvy, 404 - page not found, v tabulce chybí sloupec, atd.)
  • Chyba v implementaci na backendu (data se špatně posílají na frontend - chybné názvy dat, chybné hodnoty, chybné validace dat, rozdílné validace než na FE, neočekávaný formát dat, atd.)
  • Chyba v definici na úrovni databáze (neexistuje tabulka, neexistuje sloupec, špatné nastavení typu nebo délky hodnoty, atd.)
Aby byl tester schopen rozlišit příčinu defektu, potřebuje mimo jiné:
  • přístup na FE
  • přístup ke komunikaci FE-BE
  • logy BE
  • přístup do DB
  • možnost volat BE např. z Postman, přes CURL nebo jiných nástrojů
  • swagger dokumentaci
Díky těmto přístupům a možnosti použít další podpůrné nástroje je tester schopen najít core příčinu chyby a určit pak správně severitu a tým, který by ji měl opravit. Také je schopen do defektu zadat všechny potřebné informace, které vývojářům usnadní práci v lokalizaci dané chyby a bude tak rychlejší její oprava.

Vše výše uvedené nabízí naše aplikace - definované defekty na FE, BE nebo DB a přístupy všude, kde potřebuješ!


Testování aplikace


K samotnému testování jsou určeny dvě stránky - "Customers List" a "New/Edit/View Customer" První ze stránek je seznam zákazníků, kteří jsou evidováni v aplikaci a druhá stránka obsahuje formulář, který slouží pro vytvoření nového zákazníka. Stránky obsahují jasně definováné defekty, které nalezneš v menu "Defects". Defekty, které jsou známé a zadané jako vzorové, jsou defekty označené hvězdičkou.

Cílem je, abys aplikaci otestoval, nalezené bugy zadal v sekci "Defects" se všemi potřebnými detaily (logy, screenshoty, request/response, atd.) za využití browser developer console (network tab, console tab), BE logů, swagger nebo DB a poté si je zkusil porovnat s těmi vzorovými, které už zadány jsou. Otestuješ si tak svou schopnost identifikovat bugy v aplikaci, jejich správné zadávání a adresování odpovídajícímu týmu.


Pokud najdeš defekt, který není evidován, není zadán jako vzorový, pak jsi odvedl výbornou práci. V případě takového defektu prosíme o email na info@smart-qa.cz, kam nám zašli odkaz na tebou vytvořený bug v sekci "Defects" :)


Co nabízí naše aplikace:


  • Kompletní dokumentaci
    Business zadání, podle kterého můžeš vypracovat test analýzu a následně testovat aplikaci

  • Frontend psaný ve Vue.js
    Můžeš sledovat komunikaci mezi FE a BE a nacházet bugy. Komunikaci můžeš sledovat v developer konzoli tvého prohlížeče

  • Backend psaný v Java + Spring
    Dostaneš přístup k logům BE a můžeš se dívat, co se děje na BE, případně získávat podklady pro zadání bugu

  • Databáze postgres
    Dostaneš připojení do databáze, tudíž můžeš validovat výsledky testování i v DB

  • Připravené bugy
    Aplikace obsahuje jasně definované bugy. Bugy jsou jak na FE, tak na BE a DB, tudíž si otestuješ svoji schopnost rozlišit příčiny bugů a schopnost dobře tyto příčiny popsat

  • Test analýza - Test Cases management
    Vytvářej test cases pro funkcionality v aplikaci, které jsi se rozhodl otestovat. Porovnej své test cases s těmi, které jsme pro tebe připravili a získej tak okamžitou zpětnou vazbu - rozdělení do kroků, zda máš v analýze vše, co je třeba, zda jsi zvolil správnou granularitu pro tvoje test cases atd.

  • Defekt management
    V aplikaci můžeš zadávat bugy a porovnávat je s těmi, které už jsou zadány. Získáš tak zpětnou vazbu na tebou zadaný bug. Zda jsi ho zadal správně, zda jsi ho adresoval správnému týmu a zda jsi v něm zaznamenal vše důležité, co vývojáři pomůže v rychlé lokalizaci a opravě

Jak začít používat aplikaci?

Stačí níže vyplnit tvůj email a řídit se pokyny ve zprávě, co ti na zadanou adresu pošleme. Dostaneš od nás individuální přístupy do aplikace (FE, logy BE, swagger, DB, defekt management, dokumentace, atd.)

Je aplikace placená?

Ano, fungujeme na bázi měsíčního předplatného, které činí 121Kč. Touto částkou nám přispěješ na provoz aplikace na cloudu

What the tester of the web application does?

He tests if the application works and looks like it is defined in the documentation.
  • He creates the test analysis - test cases set that will verify the application/feature behavior including test data definition etc.
    Test cases contain the definition of "Expected" and "Actual" result of the specific test
  • Then he tests the application/feature following the scenarios
    When somethíng does not work or does not look like as it was requested in the documentation then he creates the bug where he attachs all the neccessary details, defines the severity and assigns the bug to the corresponding dev team that should fix that
  • In order to the defect would be addressed to the correct dev team (FE - frontend/UI, BE - backend, DB - database) the tester has to identify the core cause of the bug in the application

Frontend (FE, UI)

The application that provides a graphical user interface that the end user works with - he clicks, enters the data, submits, reads, etc. As testers we need to know following features and facts in case of frontend in order to we to be able to discover the defect causes in the situations when something does not work. Theoretically we can also find there the bugs despite everything works well :)
Our app is implemented in Vue.js.

  • Browser Developer console

    In the chrome browser we can open it by pressing F12. In other browsers the console looks very similar and opening is also by pressing F12 or we can just open it from the browser menu by clicking on the button with the label "Developer console/tools" or something like that.

    • "Network" tab - On the network tab we can watch the FE communication - FE - BE, images and javascript downloading etc. In our case when we test the application and we need to check also the FE integration this tab is crucial.
      We can observe the calls to BE that end in an error state. We can look for the unexpected http status like 4XX, 5XX and others. Usually we expect 2XX statuses. When the call fails then it is highlighted with red color in the console and we can investigate where is the bug. It can be anywhere - on FE, BE or DB, or in the communication itself (internet connection, network issues).
      Http error code and the repsonse are the main information sources to investigate. We can find the answers there.
    • "Console" tab - We can figure out here the FE implementation discrepancies. We can meet here the errors for example like - something "undefined" which means the FE uses uninitialized variables or objects. We can also meet the failed calls to BE which tells us that we should also check the network tab for some calls in red.
    • "Application" tab - we can view into the local storage of the browser or to the session storage. There can be valuable information regarding some stuff you are testing. It can be handy one day.

When something is failing on UI or does not work as expected use mainly first two tabs mentioned above. You will get valuable information from these sections of the browser developer console that helps you to understand the cause of the bug and it helps you to address the bug properly.

Backend / Web service (BE, API)

The system sitting under the FE that provides the data to UI app upon the UI request. It is an application running on the server (in case of our application it is java application) that hasn't any graphical interface but it has an API that UI app is using for getting the data and displaying them on the graphical interface. It receives and sends the data to FE on one side and it sends and receives the data to/from DB or other backends on second side. See the diagram above that represents the architecture and the data flows.
BE API (BE communication interface) can be implemented in two most often ways described below. In both cases the communication between FE and BE runs via HTTP protocol which means that the calls contain always following parts - host/endpoint, http headers (Content-type, Authorization etc.) and the body (containing the application data).
From the tester's perspective it does not matter if the BE API is implemented using REST or SOAP. It is still http communication between FE and BE where can be the discrapencies in data, validations and others.

  • REST web service
    • The format of the data sent in the http body is in JSON in most cases.
    • Every operation has own endpoint (ie: POST "http://host.cz/service/v1/customer" - saves the customer).
    • The http operations are used in following way:
      GET - I am querying the data
      POST - I am sending the data, I am sending new object
      PUT - I am updating existing object
      DELETE - I am deleting the data
      In ideal case REST implementation uses the http methods that correspond with the operations with the data (get data, update data, save data, delete data). Of course it depends on the BE implementation and theoretically all the operations could use http POST method but in such case it would not be a correct REST implementation.
    • BE documentation (what methods I can use on the API, what data and what format I have to send, what data types etc.) can be written in swagger, Apiary or also in confluence or in classic document as .doc or .pdf.
      Swagger is used very often and his advantage is that you can call the backend operation directly from there. You can use predefined test data sets etc. and it can be useful for the manual testing of the BE. You can use swagger in this way in our application as well. It is available there after the registration.

  • HTTP request - REST example
    POST https://smartqa-findthebug-app-2pjiue27aq-lm.a.run.app/api/v1/customer HTTP/1.1
    Accept-Encoding: gzip,deflate
    Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdW
    Content-Type: application/json
    Content-Length: 358
    Host: smartqa-findthebug-app-2pjiue27aq-lm.a.run.app
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.5.5 (Java/16.0.1)

    {
    "firstName": "test",
    "lastName": "test",
    "dateOfBirth": "1991-09-13",
    "sex": "MALE",
    "email": "test@test.com",
    "phoneNumber": "12345",
    "primaryAddress": {
    "street1": "test 12",
    "street2": "test 13",
    "city": "test",
    "zip": "123456",
    "country": "ANDORRA"
    },
    "mailingAddress": null
    }

    HTTP response - REST example
    HTTP/1.1 201 Created
    vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
    location: /api/v1/customer/6fe3208b-476f-4b4c-87ce-5ee18ad8cc10
    pragma: no-cache
    expires: 0
    x-frame-options: DENY
    content-type: application/json
    Content-Length: 342

    {"id":"6fe3208b-476f-4b4c-87ce-5ee18ad8cc10",
    "firstName":"test",
    "lastName":"test",
    "email":"test@test.com",
    "phoneNumber":"12345",
    "dateOfBirth":"1991-09-13",
    "sex":"MALE",
    "primaryAddress":{"id":"f79267d8-7219-4a43-b031-3a00ae09b0b0",
    "street1":"test 12",
    "street2":"test 13",
    "city":"test",
    "zip":"123456",
    "country":"ANDORRA"},
    "mailingAddress":null}

  • SOAP web service

    In case of SOAP there is always used the http method POST for the communication to the API from the client side. In the http request body there is always the data and therefore from this point of view it makes sense that it is using only POST. SOAP web service has one endpoint. The operation that we call is specified in the http message body itself.
    Find the publicly available SOAP service HERE.
    You can try to download and install SoapUI app and to import the WSDL file (link above). SoapUI will generate SOAP project for you and you can call the BE operations simply from there. You can check how the requests and responses look like. You have also possibility to view the raw http request and response which is very helpful.

    • Data is sent and received in the XML format - XML always contains following tags (besides the ones we define for the data exchange in the XML body part) - Envelope, header, body. The XML structure is defined by the SOA protocol.
    • One web service has only one endpoint. Particular operation that we want to call we define in the http request body itself together with the data.
    • SOAP service is described in deepest detail in WSDL (web service description language) document. Everything regarding service, data, operations is decribed there. Therefore you can just take this WSDL xml file and import it to the SoapUI application and SoapUI will create for you the sample requests for all the operations that the service offers. After that you can start to test the service manually from SoapUI.

  • HTTP request - SOAP example
    POST http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso HTTP/1.1
    Accept-Encoding: gzip,deflate
    Content-Type: text/xml;charset=UTF-8
    Content-Length: 326
    Host: webservices.oorsprong.org
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.5.5 (Java/16.0.1)

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.oorsprong.org/websamples.countryinfo">
    <soapenv:Header/>
    <soapenv:Body>
    <web:CapitalCity>
    <web:sCountryISOCode>CZE</web:sCountryISOCode>
    </web:CapitalCity>
    </soapenv:Body>
    </soapenv:Envelope>

    HTTP response - SOAP example
    HTTP/1.1 200 OK
    Cache-Control: private, max-age=0
    Content-Type: text/xml; charset=utf-8
    Vary: Accept-Encoding
    Server: Microsoft-IIS/8.5
    Web-Service: DataFlex 19.1
    Date: Wed, 19 Oct 2022 14:01:29 GMT

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <m:CapitalCityResponse xmlns:m="http://www.oorsprong.org/websamples.countryinfo">
    <m:CapitalCityResult>Prague</m:CapitalCityResult>
    </m:CapitalCityResponse>
    </soap:Body>
    </soap:Envelope>

Why the application is divided into FE and BE? Why everything is not implemented together in FE for example? It could be.
FE application could directly access the database or other systems without an extra intermediator. But in that situation there would be an inconvenience during the changes or fixes deployments. You would have to deploy whole FE application despite the fact that you would do the changes that are not related to UI.
The history and experience has shown that it is better to separate the layers of the application in order to be more agile during the changes or fixes implementation across these layers.

Database

In the database the application keeps all the data that we want to keep. Backend provides this data to FE and sends the FE data to DB in case of need. In our application we use the relation SQL database postgres. You can view the data directly in the database in our app. You will get the direct access.

The bug can have following root causes:

  • Defect in frontend implementation (the data is displayed unexpectedly or they are not displayed at all, wrong design/colors, 404 - page not found, missing column in the table, wrong data validations etc.)
  • Defect in backend implementation (data is sent in unexpected format to FE - wrong field names, wrong values, wrong types, wrong data validations, etc)
  • Defect in the database definition (missing db table, missing table column, wrong column type or value length setup, etc.)
In order the tester would be able to identify the root cause of the bug he needs:
  • FE access
  • FE-BE communication access
  • BE logs
  • DB access
  • possibility to call BE separatelly ie. via Postman, via CURL or with aid of other tools
  • swagger documentation
Thanks to these accesses and possibility to use other tools the tester is able to correctly find the bug root cause and define corresponding severity and dev team that should fix it He can also attach all the needed information (reproduction steps, logs, request/response, etc.) to the defect that will help to the developer with debugging and the fix will be quicker.

All the stuff mentioned above offers our application - predefined bugs on FE, BE, DB and the access everywhere you need!


Testing of the application


For the testing we prepared two pages - "Customers List" and "New/Edit/View Customer" First of them is a list of the customers that are saved in the application and the second one is the page for creating/editing/viewing of the customer. The pages contain defined bugs that you can find under the "Defect" main menu item. The known bugs are created as examples and these are marked with the star sign

The main purpose is for you to test the application and create all the bugs you find with all needed details (logs, screenshots, request/repsonse, etc.) with aid of browser developer console (network, console tabs), BE logs, swagger or DB. Then you should compare your bugs with already created ones that we prepared for you. This way you can test your ability to identify the bugs, their correct creating and addressing to the desired developers team


When you will find the bug that is not created as an example one then good job! In such case please inform us via an email to info@smart-qa.cz where attach the link to your created defect in the "Defects" section :)


What offers our application:


  • Application Documentation
    Documentation that you should use for the test analysis creation and for the testing itself

  • Frontend written in Vue.js
    You can check the communication between FE and BE and localize the bugs. You can watch the communication in you browser developer console.

  • Backend written in Java + Spring
    You will get the access to BE logs where you can investigate what is happening there and you can get the information for you defect

  • Database postgres
    You will get the database access. You can validate the test results in DB as well

  • Existing bugs
    The application contains some predefined bugs. These bugs are on FE, BE or on DB side and therefore you can test your ability to distinguish between the root causes of the bugs and ability to describe them

  • Test Analysis - Test Cases management
    Create the test cases for the functionalities you decided to test. Compare your test cases with the ones we prepared for you and get the immediate feedback - splitting into the steps, if you recorded everything needed in the TC, if the granularity of the TC is OK etc.

  • Defect management
    You can create the bugs in the application and to compare them with already created ones. This will give you a feedback for your created bug. You can check if you created it correctly, if you addressed it to the desired team and if you attach everything that is needed and will help for the efficient resolution by the developer

How can I start to use the application?

Below enter your email address and confirm. We will send you the email with all the needed information. After you will proceed the registration we will send you the individual access to the app, BE logs, swagger, db, defect management, documentation and others

Is it paid?

Yes, one month subscription is for 121CZK. You will contribute for the cloud operation for this application with that amount


Log in or register HERE.

Registruj se nebo přihlaš ZDE.

NEWS

NOVINKY

SIGN UP TO THE APPLICATION AND TRAIN YOUR TESTING SKILLS ZAREGISTRUJ SE A TRÉNUJ SVOJE TESTERSKÉ DOVEDNOSTI

When the request ends in the error, please, do the registration directly from the app HERE.
V případě, že se ti nedaří odeslat požadavek, prosím, zkus to přímo z aplikace ZDE
We'll never share your email with anyone else. Nikdy nesdílíme tvůj email s nikým jiným.
* When the subscription exists for that email address already it will be reactivated / prolonged * V případě již existujícího předplatného na danou emailovou adresu se toto předplatné reaktivuje / prodlouží
I agree with following terms & conditions Souhlasím s následujícími obchodními podmínkami
I have read and agree with following rules related to personal data processing Přečetl jsem si a souhlasím s následujícími pravidly zpracování osobních údajů