Langsung ke konten utama

Continues Integration Menggunakan Travis CI dan Github Part 1


Setelah sebelumnya saya telah membahas tentang Pentingnya DevOps Dalam Dunia IT, maka pada kesempatan kali ini saya akan mencoba memberikan sedikit tutorial bagaimana cara Anda dapat mengadopsi DevOps untuk proyek Anda. Disini saya akan memulai dengan proses Continues Integration, situs yang akan kita gunakan adalah Travis CI untuk melakukan Continues Integration dan Github untuk menyimpan source code proyek Anda.

Apa Itu Continues Integration ?

Continuous Integration adalah proses menjalankan semua unit test pada kode terbaru yang diajukan untuk memeriksa apakah komponen yang baru ditambahkan tidak merusak fungsi lama apapun. Hal ini sangat penting dari perspektif pengujian dan penyebaran. Ini mencegah masalah rollbacks setelah-deployment. Mereka mengambil banyak waktu dan mengurangi keandalan produk. Untuk penjelasan  yang lebih lengkap tentang Continues Integration dapat Anda baca di Wikipedia.

Sebelum memulai melakukan proses Continues Integration, pertama-tama Anda harus menentukan jenis proyek yang akan Anda buat. Disini saya ambil contoh untuk membuat proyek aplikasi dengan Node.js. Setelah menentukan jenis proyeknya Anda harus mengetahui framework/library yang akan digunakan untuk proyek Anda, disini saya sudah menyiapkan sebuah proyek Node.js untuk mencari gambar menggunakan Google Custom Search. Untuk dapat menggunakan API dari Google Custom Search Anda perlu membuat search engine baru dan mendapatkan API key dari search engine tersebut. Silahkan menuju Google Custom Search untuk membuat search engine baru dan mendapatkan API keynya. Untuk mendapatkan sourcecode project yang saya gunakan dapat Anda temukan di Github saya  dengan nama gcs-image-api.

Perlu diingat bahwa bila Anda menggunakan proyek Anda sendiri yang tidak menggunakan Node.js tetapi menggunakan framework lain seperti misalnya .NET Core maka anda harus mengetahui build process yang terjadi, karena di Continues Integration semua build proccess dilakukan melalui terminal biasanya di Visual Studio menggunakan msbuild atau dotnet. Setiap provider biasanya menggunakan nama file yang berbeda untuk mengetahui build process yang akan dilakukan melalui terminal, namun karena dalam kasus ini saya menggunakan Travis CI maka nama file untuk mendefinisikan build processnya adalah .travis.yml.

Disini saya hanya akan fokus membuat build process yang saya gunakan, jika Anda ingin membuat untuk proyek lain Anda dapat membaca dokumentasi Travis CI di Travis CI User Documentation.
Untuk kasus kali ini proyek akan di deploy ke heroku agar dapat langsung diakses setelah proses Continues Integration selesai.

Sebelum membuat file untuk mendefinisikan build process yang terjadi biasanya Anda harus menentuka terlebih dahulu testing framework apa yang akan digunakan. Terdapat banyak sekali testing framework yang berbeda untuk bahasa pemrograman yang berbeda, namun karena disini saya menggunakan node.js yang mana di node.js menggunakan bahasa pemrograman javascript maka saya hanya memilih automated testing framework untuk javascript, untuk daftar testing framework dapat Anda temukan disini. Pada kasus ini saya menggunakan mocha dan chai dalam proses testing.

Sebelumnya saya akan sedikit menjelaskan tentang beberapa jenis Software Development Process yang sering digunakan pengembang/developer dalam pembuatan software.

Test-driven Development

Test-driven Development (TDD) adalah proses pengembangan perangkat lunak yang bergantung pada pengulangan siklus pengembangan yang sangat singkat: Persyaratan diubah menjadi kasus pengujian yang sangat spesifik, maka perangkat lunak ditingkatkan untuk lulus tes baru. Hal ini bertentangan dengan pengembangan perangkat lunak yang memungkinkan perangkat lunak untuk ditambahkan yang tidak terbukti memenuhi persyaratan.
TDD Biasanya dibagi menjadi lima tahap yang berbeda:

  1. Pertama, pengembang menulis beberapa tes.
  2. Pengembang kemudian menjalankan tes tersebut dan (jelas) mereka gagal karena tidak satu pun fitur tersebut yang benar-benar diterapkan.
  3. Selanjutnya, pengembang benar-benar menerapkan tes tersebut dalam kode.
  4. Jika pengembang menulis kode mereka dengan baik, maka pada tahap berikutnya mereka akan melihat bahwa tes mereka lulus.
  5. Pengembang kemudian dapat melakukan refactor kode mereka, menambahkan komentar dan membersihkannya, karena mereka menginginkannya karena pengembang mengetahui bahwa jika kode baru tersebut merusak sesuatu, pengujian akan menjadi peringatan karena kegagalan.

Siklus terus berlanjut selama pengembang memiliki lebih banyak fitur untuk ditambahkan.

Mari kita lihat contoh bagaimana pengembang akan melakukan ini.
Katakanlah pengembang ingin menulis sebuah fungsi yang melakukan sesuatu yang sederhana, seperti menghitung faktorial. Pendekatan normal yang ditentukan oleh TDD adalah dengan menggunakan fungsi tersebut dan kemudian menyatakan bahwa hasilnya memenuhi nilai tertentu.

Dalam contoh ini, kita akan menggunakan JavaScript Testing Framework yang disebut Mocha. Tes mungkin terlihat seperti berikut:
var assert = require('assert'),
factorial = require('../index');

suite('Test', function (){
setup(function (){
// Create any objects that we might need
});

suite('#factorial()', function (){
test('equals 1 for sets of zero length', function (){
assert.equal(1, factorial(0));
});

test('equals 1 for sets of length one', function (){
assert.equal(1, factorial(1));
});

test('equals 2 for sets of length two', function (){
assert.equal(2, factorial(2));
});

test('equals 6 for sets of length three', function (){
assert.equal(6, factorial(3));
});
});
});

Tes pasti akan gagal karena fungsinya belum ditulis. Jadi mari kita tulis fungsi itu untuk memenuhi tes.

module.exports = function (n) {
if (n < 0) return NaN;
if (n === 0) return 1;

return n * factorial(n - 1);
};
Sekarang jika kita menjalankan tes, kita bisa melihat semua tes berhasil! Beginilah cara TDD bekerja. Sekarang mari kita lihat BDD untuk melihat bagaimana perbedaannya.

Behavior-driven Development

Behavior-driven development (BDD) adalah proses pengembangan perangkat lunak yang muncul dari uji coba pengembangan (TDD). Behavior-driven development menggabungkan teknik umum dan prinsip TDD dengan gagasan dari desain berbasis domain dan analisis dan desain berorientasi objek untuk menyediakan pengembangan perangkat lunak dan tim manajemen dengan alat bersama dan proses bersama untuk berkolaborasi dalam pengembangan perangkat lunak.

Berbeda dengan TDD, BDD adalah ketika kita menulis perilaku & spesifikasi yang kemudian mendorong pengembangan perangkat lunak kita. Perilaku & spesifikasi mungkin tampak sangat mirip dengan tes tapi bedanya sangat halus dan penting.

Mari kita lihat contoh sebelumnya tentang penulisan sebuah fungsi untuk menghitung faktorial untuk sebuah angka.

var assert = require('assert'),
factorial = require('../index');

describe('Test', function (){
before(function(){
// Stuff to do before the tests, like imports, what not
});

describe('#factorial()', function (){
it('should return 1 when given 0', function (){
factorial(0).should.equal(1);
});

it('should return 1 when given 1', function (){
factorial(1).should.equal(1);
});

it('should return 2 when given 2', function (){
factorial(2).should.equal(2);
});

it('should return 6 when given 3', function (){
factorial(3).should.equal(6);
});
});

after(function () {
// Anything after the tests have finished
});
});
Perbedaan utamanya hanyalah kata-katanya saja. BDD menggunakan gaya yang lebih verbose sehingga bisa dibaca hampir seperti sebuah kalimat.

Kemampuan untuk membaca tes Anda seperti kalimat adalah perubahan kognitif dalam bagaimana Anda akan memikirkan tes Anda. Argumennya adalah bahwa jika Anda bisa membaca tes Anda dengan lancar, Anda tentu akan menulis tes yang lebih baik dan lebih komprehensif.

Meski contoh ini sangat sederhana dan tidak mengilustrasikannya, tes BDD harus lebih fokus pada fitur, bukan hasil sebenarnya. Seringkali Anda akan mendengar bahwa BDD adalah untuk membantu merancang perangkat lunak, tidak mengujinya seperti apa yang seharusnya dilakukan TDD.

Komentar

Postingan populer dari blog ini

Latihan Terbaik Dan Terburuk Yang Dilakukan Ketika Anda Terkena Flu

By Amanda MacMillan Jika Anda merasa di bawah cuaca, olahraga dapat menjadi hal terakhir yang Anda ingin lakukan-dan memang benar bahwa ketika tubuh Anda sudah di bawah banyak stres, sehingga melakukan pekerjaan lebih banyak tidak selalu ide yang baik. Namun dalam beberapa kasus, cahaya untuk aktivitas moderat sebenarnya bisa membantu Anda merasa lebih baik, ujar Richard Besser, MD, kepala kesehatan dan redaksi medis di ABC News dan penulis Tell Me The Truth, Dokter: Mudah Memahami Jawaban Paling Membingungkan Anda Pertanyaan Kritis dan Kesehatan. Pertama, Besser mengatakan, menggunakan "aturan leher": Jika gejala di atas leher-bersin, sinus tekanan, pengap hidung kemudian berkeringat umumnya dianggap aman. Dengarkan tubuh Anda, dan mempertimbangkan yang terbaik berikut (dan terburuk) Pilihan latihan. Latihan Terbaik: Berjalan kaki Terkena flu dapat membahayakan tingkat energi Anda, sehingga Anda mungkin tidak merasa untuk melakukan kebugaran fisik yang intensif. Tetapi bahka...

Menagapa Pesawat Sering Terguncang?

Foto: Lion Air Ternyata peralihan atau berubahnya iklim dapat saja memperburuk turbulensi udara. Bagi Kamuyang melakukan perjalanan udara, hal ini tentu akan mengganggu kenyamanan perjalanan Anda. Seberapa buruk turbulensi ini? Cukup kuat sehingga dapat saja melempar penumpang dan awak pesawat di sekitar kabin jika tak memasang sabuk pengaman. Hal ini merupakan hasil studi dari Universitas Reading seperti dipublikasikan di Advances in Atmospheric Sciences , seperti ditulis Digital Trend . Menurut studi ini, makin buruknya kualitas udara memengaruhi pergerakan naik turun pesawat yang lebih kuat dari gravitasi. Para ahli percaya peralihan atau berubahnya iklim membuat fenomena ini lebih sering dua tiga kali dari yang terjadi saat ini. Dengan demikian, berjalan di pesawat, meminta layanan makanan, atau bahkan memegang sesuatu menjadi lebih sulit dilakukan. Studi ini menyebutkan bahwa turbulensi ringan akan meningkat 59 persen. Turbulensi ringan hingga menengah meningkat 75 persen, Pada sp...

Tips mudah cara menghilangkan tahi lalat/tompel secara alami

Menurut para ahli kulit tahi lalat dibagi menjadi 2 (dua) yakni tahi lalat yang bisa membesar dan tahi lalat yang tidak bisa membesar (ukurannya hanya segitu saja). Banyak orang mengatakan kalau tahi lalat bisa timbul karena sebuah flat yang di akibatkan oleh kurang (tidak) bersihnya kulit wajah (atau bagian kulit lain), namun ada juga yang mengatakan bahwa tahi lalat itu timbul karena alasan keturunan. Kembali ke topik artikel ini kita akan membahas bagaimana cara menghilangkan tahi lalat dengan mudah, tanpa operasi dan tentunya dengan biaya yang murah pula. Persiapkan bahan dan alatnya: Bawang putih Kapur sirih/injet Sabun colek Sendok Madu Perban atau alat lain yang sejenis 1.Cara menghilangkan tahi lalat dengan bawang putih Langkah pertama kupaslah atau pisahkanlah bawang putih dari kulitnya Kedua Tumbuk bawang putih tersebut sampai halus dan terlihat berair Taburkan hasil tumbukan bawang putih tadi ke atas tahi lalat yang ingin di hilangkan, tips bungkuslah dengan perban supaya ba...