GYAK5 Statikus ellenőrzési technikák feladatsor

Integrációs és ellenőrzési technikák (VIMIAC04)

Figyelem: A gyakorlatok során törekedjen mindenki arra, hogy professzionális jellegű munkát végezzen, pl. kerüljük az asdfg commit megjegyzéseket, nem sokkal több idő azt írni helyette, hogy Add acceleration feature vagy Fix #5 (további tanácsok: How to Write a Git Commit Message, Git Style Guide).

Környezet

Statikus analízis

Az első részfeladat célja, hogy az előadáson megismert Sonar eszközcsalád segítségével statikus analízist végezzen a saját Git tárolójában lévő projekten.

A részfeladat menete a következő:

  1. Először megismerkedünk a SonarLint eszközzel, és megnézzük, hogy milyen jellegű hibákat tud egy statikus analízis eszköz megtalálni.
  2. Utána beállítjuk, hogy a GitHub tárhelyet tudja vizsgálni a SonarCloud.
  3. Végül módosítjuk az előző laboron létrehozott GitHub Actions CI beállításokat, hogy a fordítás mellett a statikus analízis eszköz futtatását is végezze el.

SonarLint

A SonarLint egyszerűen telepíthető a gyakran használt IDE-kbe. A mostani gyakorlaton a Visual Studio Code fejlesztőkörnyezetben fogjuk használni.

SonarCloud összekötése a GitHub tárhellyel

A következő lépésként a SonarCloud felhő alapú kódminőség platformba fogjuk bekötni a saját, nyilvános GitHub tárhelyet.

Ezekkel a beállításokkal most már minden egyes új commit-kor le fog futni a Sonar ellenőrzés is a CI kiszolgálón.

Kód felülvizsgálat (Code review)

A második részfeladat célja, hogy a SonarLint által megtalált hibák közül néhányat kijavítson, majd párokat alkotva egymás javításait felülvizsgálják a GitHub Pull Request Review szolgáltatásával. A PR Review szolgáltatás célja, hogy olyan funkciókat nyújtson, amelyek a kézi átvizsgálás folyamatát támogatják és hatékonyabbá teszik (pl. megjegyzések fűzése kódsorokhoz).

Hibák javítása

  1. [local] Váltson egy új ágra (git checkout -b <új ág neve>).
  2. [local] Javítsa ki a TorpedoStore.java fájlban a SonarLint által jelzett 3 darab hibát. Mindegyiket egy-egy külön commit-ban javítsa. Ügyeljen rá, hogy az újonnan létrehozott ágon dolgozzon.
  3. [local] Küldje át az új tartalmat a GitHub-on lévő tárhelyre (push).

Átvizsgálás

  1. [web] Az átvizsgáláshoz alkossanak párokat. Adja hozzá a saját GitHub tárhelyéhez a társát. Ezt a webes felületen a Settings / Collaborators lapon teheti meg.
  2. [web] Amennyiben a társa is hasonlóan elvégezte az előző lépést, kapott egy e-mail-t. A View invitation linkre kattintva fogadja el a meghívást.
  3. [web] Hozzon létre egy pull request-et (PR) a saját tárhelyén az alábbi lépések alapján.
    1. [web] A webes felületen a Pull requests fülön a New pull request gombbal kezdje a létrehozást.
    2. [web] A base branch maradjon az alapértelmezett master, a compare branch-nek pedig válassza ki az újonnan létrehozott ágat. Ennek hatására egy Able to merge. feliratnak kell megjelennie és látnia kell az előbb létrehozott commit-okat. A Create pull request gombbal folytassa a létrehozás folyamatát.
    3. [web] A megjelenő új felületen lehet megadni a pull request adatait, beállításait. Nevezze el a pull request-et és írjon hozzá rövid megjegyzést. Jobb oldalt állítsa be önmagát felelősnek (Assignees) és kérjen átvizsgálást a társától (Reviewers).
    4. [web] Véglegesítse a pull request-et a Create pull request gombbal. A társa értesítést fog kapni az átvizsgálás kéréséről.
    5. A PR Checks lapján követhető, hogy a háttérben a CI folyamat is elindult. Ha lefut sikeresen, akkor az ellenőrzések eredményei is megtekinthetők a pull request Conversation oldalán is.
  4. [web] Amennyiben a társa is hasonlóan elvégezte az előző lépéseket, kapott egy értesítést az átvizsgálás kéréséről. Keresse fel a webes felületen a társa GitHub tárhelyét, azon belül pedig a társa által létrehozott pull request-et.
  5. [web] Végezze el az átvizsgálást az alábbi lépések alapján.
    1. [web] Váltson át a Files changed fülre. Itt látja a megváltozott fájlokat. Vizsgálja át a változásokat és fűzzön megjegyzéseket a sorokra kattintva. Fontos, hogy a kommentet ne az Add single comment, hanem a Start a review gombbal adja hozzá.
    2. [web] Az átvizsgálás végén jobb felül kattintson a Review changes gombra. A lenyíló felületen írjon egy rövid összefoglaló kommentet és kérjen változtatásokat a Request changes opció kiválasztásával.
    3. [web] Küldje be az átvizsgálás eredményét a Submit review gombbal.
  6. [local] Várja meg amíg a társa is elvégzi az átvizsgálást, majd a társától kapott kommentek alapján végezze el a szükséges módosításokat a saját kódján. A változások továbbra is az új ágon kerüljenek egy vagy több commit-ba. Küldje át a változásokat a GitHub-on lévő tárhelyre (push).
  7. [web] Várja meg amíg a társa is elvégzi saját tárhelyén a javítást, majd keresse meg a társa által létrehozott pull request-et. A Files changed fülön látja a változásokat. Fogadja el a javításokat a Review changes gomb alatt lenyíló felületen az Approve lehetőség választásával.

Javítások ellenőrzése

  1. [web] Ellenőrizze a SonarCloud felületen, hogy valóban sikerült-e megoldani a választott problémákat.
  2. [web] Látni lehet, hogy a SonarCloud felületén még maradt egy megoldatlan Security típusú hiba, ami a Random osztály használatával kapcsolatos. Olvassa el és értelmezze a hiba leírását és a kockázatbesorolást.
  3. [web] Mivel jelen esetben nincs biztonsági aspektusa a szoftvernek, jelezzük a SonarCloud oldalán, hogy ez nem probléma (Safe). Ezt követően futassuk újra az ellenőrzést a GitHub oldaláról.
  4. [web] Amennyiben a társa is elfogadta a javításokat és a CI build is sikeresen lefutott, és az összes ellenőrzés sikeres (zöld), merge-elje a saját tárhelyéhez tartozó pull request-et (Conversation fülön alul).