Ugrás a tartalomhoz

Cucumber (szoftver)

A Wikipédiából, a szabad enciklopédiából

A Cucumber egy olyan szoftvereszköz, amely támogatja a viselkedésvezérelt fejlesztést (BDD).[1][2][3][4][5][6] Az Cucumber BDD megközelítésének központi eleme a Gherkin nevű közönséges nyelvi elemző. Ez lehetővé teszi az elvárt szoftverviselkedések logikus nyelven történő meghatározását, amelyet a ügyfelek is megérthetnek. Így a Cucumber lehetővé teszi a vállalkozási szövegben megírt funkcióleírások végrehajtását.[7][1][2] Gyakran használják más szoftverek tesztelésére.[8] Automatizált elfogadási teszteket futtat, viselkedésvezérelt fejlesztési (BDD) stílusban.[9]

A Cucumber eredetileg a Ruby programozási nyelven íródott.[1][2] és kezdetben kizárólag Ruby tesztelésre szolhált az RSpec BDD keretrendszer kiegészítéseként. A Cucumber jelenleg többféle programozási nyelvet támogat különböző implementációkon keresztül, beleértve a Java-t[10][2] és a JavaScriptet.[11][12] Létezik egy Cucumber port .NET-re,[13][14][15] amely SpecFlow néven fut és mára már a Reqnroll váltott fel.[16]

Gherkin nyelv[szerkesztés]

A Gherkin az a nyelv, amelyet a Cucumber használ a tesztesetek meghatározására. Célja, hogy nem technikai és ember által olvasható legyen, és összességében leírja a szoftverrendszerhez kapcsolódó felhasználási eseteket.[1][17][18] A Gherkin szintaxisának célja a viselkedésvezérelt fejlesztési gyakorlatának elterjedését az egész fejlesztőcsapatban, ideértve az üzleti elemzőket és a menedzsereket is. Célja, hogy szilárd, egyértelmű követelményeket szabjon meg a követelmények kezdeti fázisaitól kezdve az üzleti vezetés által és a fejlesztés életciklusának más szakaszaiban.

A Gherkin természetes nyelvi szintaxisa nemcsak egy automatizált tesztelési szkriptet biztosít, hanem egyszerű dokumentációt is nyújt a tesztelendő kódról.[18] A Gherkin jelenleg több tucat nyelvben támogatja a kulcsszavakat.[18][19][1][2]

Szintaxis[szerkesztés]

A szintaxis a sorokra összpontosít, ami hasonló a Pythonhoz. A fájl szerkezetét whitespace(szóköz) és egyéb vezérlőkarakterek határozzák meg.[18] # jelzi a sor kommentjét, és bárhová helyezhető a fájlban[18] Az utasítások minden nem üres és nem komment sorból állnak. Ezek egy felismert Gherkin kulcsszóból állnak, amelyet egy karakterlánc követ.[20]

Minden Gherkin fájl .feature kiterjesztésű. Ezek egyetlen Funkció definíciót tartalmaznak a tesztelendő rendszerhez, és végrehajtható tesztszkriptek.[20]

Íme egy példa a szintaxisra:[21]

Feature: Guess the word

  # The first example has two steps
  Scenario: Maker starts a game
    When the Maker starts a game
    Then the Maker waits for a Breaker to join

  # The second example has three steps
  Scenario: Breaker joins a game
    Given the Maker has started a game with the word "silky"
    When the Breaker joins the Maker's game
    Then the Breaker must guess a word with 5 characters

Parancssor[szerkesztés]

A Cucumber beépített parancssori felülettel rendelkezik, amely átfogó utasításlistát tartalmaz. Mint a legtöbb parancssori eszköz, a Cucumber is biztosítja a --help opciót, amely összefoglalja a parancs által elfogadott argumentumokat.[22].

$ cucumber --help
        -r, --require LIBRARY|DIR        Require files before executing the features.
        --i18n LANG                      List keywords for in a particular language.
                                         Run with "--i18n help" to see all languages.
        -f, --format FORMAT              How to format features (Default: pretty).
        -o, --out [FILE|DIR]             Write output to a file/directory instead of
        ...

A Cucumber parancssori felület használható a meghatározott tesztek gyors futtatására. Támogatja a scenáriók egy részhalmazának futtatását is a címkék szűrésével.

$ cucumber --tags @tag-name

A fenti parancs segít azokat a scenáriókat segít végrehajtani, amelyek rendelkeznek a megadott @tag-name címkével[22] Az argumentumok megadhatók logikai OR vagy AND műveleteként. A címkéken kívül a scenáriók szűrhetők a neveik alapján is.[22]

$ cucumber --name logout

A fenti parancs csak azokat a scenáriókat fogja futtatni, amelyek tartalmazzák a „logout” szót.

Hasznos az is, hogy megtudhatjuk hogy mi hibázott, ha egy teszt sikertelen. A Cucumber a --backtrace opcióval megkönnyíti a kódhibák észlelését.[22]

Hivatkozások[szerkesztés]

  1. a b c d e The Pragmatic Bookshelf | The Cucumber Book. Pragprog.com. [2012. január 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. január 24.)
  2. a b c d e Rose, Seb. The Pragmatic Bookshelf | The Cucumber For Java Book. Pragprog.com (2015. február 15.). Hozzáférés ideje: 2019. április 28. 
  3. What is Cucumber?. cucumber. (Hozzáférés: 2019. június 8.)
  4. Aslak Hellesøy: The world's most misunderstood collaboration tool. cucumber
  5. Nagy, Gáspár. The BDD Books - Discovery. Leanpub (2017. március 7.). ISBN 978-1983591259 
  6. Rose, Seb. The BDD Books – Formulation. Leanpub (2021. április 27.). ISBN 979-8723395015 
  7. Fox, Armando. Engineering Software as a Service. Strawberry Canyon, 218–255. o. (2016). ISBN 978-0-9848812-4-6 
  8. Automated testing with Selenium and Cucumber (angol nyelven). www.ibm.com, 2013. augusztus 6. (Hozzáférés: 2017. február 9.)
  9. Soeken, Mathias.szerk.: Furia: Objects, Models, Components, Patterns, Lecture Notes in Computer Science (angol nyelven). Springer Berlin Heidelberg, 269–287. o.. DOI: 10.1007/978-3-642-30561-0_19 (2012. május 29.). ISBN 9783642305603 
  10. Cucumber-jvm. cucumber. (Hozzáférés: 2018. március 8.)
  11. Cucumber-js. cucumber. (Hozzáférés: 2018. március 8.)
  12. Naidele Manjunath: No Code? No Problem — Writing Tests in Plain English. Times Open, 2019. február 1. (Hozzáférés: 2019. április 29.)
  13. Binding Business Requirements to .NET Code. SpecFlow. (Hozzáférés: 2019. április 29.)
  14. SpecFlow. GitHub. (Hozzáférés: 2019. április 29.)
  15. Richard Lawrence. Behavior-Driven Development with Cucumber. Addison Wesley (2018. május 27.) 
  16. Nagy: From SpecFlow to Reqnroll: Why and How. reqnroll.net. Reqnroll. (Hozzáférés: 2024. április 18.)
  17. cucumber/gherkin (angol nyelven). GitHub. (Hozzáférés: 2017. február 9.)
  18. a b c d e Gherkin Syntax. cucumber. (Hozzáférés: 2019. július 9.)
  19. Gherkin Supported Languages. cucumber/cucumber: Cucumber monorepo - building blocks for Cucumber in various languages. (Hozzáférés: 2021. március 21.)
  20. a b Reference. cucumber. [2015. október 25-i dátummal az eredetiből archiválva]. (Hozzáférés: 2016. január 17.)
  21. Gherkin Reference. cucumber. [2024. január 13-i dátummal az eredetiből archiválva]. (Hozzáférés: 2024. február 11.)
  22. a b c d Wynne: The Cucumber Book. SafariBooksOnline. (Hozzáférés: 2016. január 22.)

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben a Cucumber (software) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

További információk[szerkesztés]