Blibli Automation Journey — Part 2: Hello JBehave and Thucidides
Well , Sebelumnya di part ke 1 kami sudah menceritakan sejarah awal mulanya kami berkenalan dengan yang namanya BDD atau Behaviour Driven Development. Nah , dengan mulai diterapkannya BDD di tim Blibli , maka QA akan dengan Mudah membuat automation dari story / feature tersebut.
Untuk Memudahkan tim dalam membuat sebuah automation tools , dan untuk memudahkan orang bisnis atau non IT membaca report / Feedback dari automation , maka kami menggunakan beberapa framework automation.
BDD Framework pertama yang kami gunakan adalah Jbehave , yang dikenalkan ke blibli pada tahun 2016. dan dipercantik dengan Reporting tools yaitu Thucidides ( yang sekarang di rebranding menjadi Serenity ). Lalu Bagaimanakah Sebenarnya Framework ini bekerja.
Jbehave Sendiri adalah framework untuk BDD , ditulis dalam bahasa java dan memiliki beberapa kelebihan. BDD Sendiri merupakan pengembangan dari TDD atau kepanjangan dari Test Driven Development. Sayangnya framework ini hanya tersedia dalam bahasa Java.
Secara singkat , ada 5 langkah yang dilakukan untuk implementasi Jbehave untuk automation
Write Story
Hal pertama yang harus dilakukan adalah menulis Story / Scenario. scenario ini ditulis dalam plain text , untuk mempermudah QA / PM / BA / DEV untuk mereview story / scenario yang dibuat oleh QA , Bahasa yang digunakan adalah bahasa gherkin yang sudah penulis jelaskan di part 1 sebelumnya.
Dalam Jbehave , format penulisan story / scenario ini menggunakan bahasa gherkin yang hanya mempunyai keyword Given , When , & Then. Given untuk initial condition , When untuk aksi yang dilakukan dan Then digunakan untuk validasi
Map Story / Scenario dengan Java Code
Mapping disini berati melakukan mapping antara story yang dibuat dengan logic automation dengan menggunakan bahasa java. Menariknya di framework jbehave terdapat Dependency injection tersendiri. Sehingga pada framework jbehave tidak perlu melakukan pembuatan object yang biasa dilakukan di java.
Configure Stories
pada tahap ini , QA akan menentukan Story mana yang akan di jalankan. dan juga Format output yang digunakan jika hanya menggunakan Jbehave. Story yang dijalankan dapat di setup dengan mengoverride method storyPath dari class configuration yang dibuat,
@Overrideprotected List<String> storyPaths() {// List Story yang ingin dipanggilString codeLocation = codeLocationFromClass(this.getClass()).getFile();return new StoryFinder().findPaths(codeLocation, asList("**/trader_is_alerted_of_status.story","**/traders_can_be_subset.story"), asList(""), "file:" + codeLocation);}
Run Stories
Langkah Terakhir adalah menjalankan Story, Cara menjalankan storynya bisa menggunakan Junit ataupun Maven , dan karena bisa dijalankan melalui Junit , sebagian besar IDE sudah mensupport nya ( Termasuk Debugging Automation) di blibli sendiri , QA menggunakan Intellij Idea sebagai standard IDE yang digunakan untuk melakukan build Automation dan Maven sebagai runnernya.
Setelah di run maka akan muncul report standard dari jbehave
Namun , apakah report tersebut bisa dibaca oleh user biasa ?
Bersambung ke part 3… Pengenalan Serenity Framework