Saya telah melihat banyak artikel penelitian dan blog teknologi yang membanggakan manfaat pengujian perangkat lunak. Saya sudah yakin akan hal itu. Tetapi karena semua penelitian pengujian perangkat lunak dilakukan oleh perusahaan perangkat lunak besar, saya tidak percaya mereka benar-benar berlaku untuk startup. Karena startup memiliki kebutuhan dan kendala yang berbeda dibandingkan dengan perusahaan perangkat lunak besar.
Jadi ini menimbulkan pertanyaan. Haruskah startup teknologi menulis tes otomatis? Jika demikian, apakah mereka dilakukan dengan cara yang sama dengan perusahaan perangkat lunak besar? (tes asap, tes regresi, dll.) Yang terbaik adalah jika Anda dapat merujuk beberapa artikel penelitian tentang hal ini .. karena saya tidak dapat menemukannya sendiri.
(Saya harus mengakui bahwa meskipun saya masih awal dalam karir saya, tetapi saya belum melihat startup yang secara serius berkomitmen untuk menulis tes otomatis)
Jawaban:
Selalu ada konflik antara apa yang harus dilakukan dan apa yang secara realistis kita punya waktu. Ya, banyak startup mengabaikan pengembangan yang didorong oleh pengujian dan pengujian otomatis untuk mengurangi waktu istirahat agar proyek dapat berjalan dan berjalan.
Situs jejaring sosial dan perusahaan aplikasi seluler adalah gelembung besar sekarang, dan mereka sangat kompetitif. Terkadang perbedaan antara tayang dalam 4 bulan versus 5 bulan berarti Anda Kalah.
Waktu untuk memasarkan adalah kuncinya, dan kemudian jika kesuksesan terjadi maka sekarang saatnya untuk skala, maka akan ada banyak waktu untuk memperbaiki perangkat lunak Anda yang belum diuji menjadi sesuatu yang berharga.
sumber
Pengujian perangkat lunak bukan agama. Itu hanya ide yang sangat bagus.
Anda mengatakan Anda tidak memiliki tenaga untuk menulis tes sekarang? Baiklah. 6 minggu dari sekarang, apakah Anda akan memiliki tenaga untuk menemukan bug yang merusak aplikasi Anda, yang akan segera ditemukan jika Anda memiliki tes yang tepat di tempat?
Terlalu banyak pengujian dapat memperlambat pengembangan. Terlalu sedikit pengujian juga dapat memperlambatnya. Anda harus menemukan keseimbangan yang tepat, dan biasanya sulit untuk mengatakan di mana itu. Dan semua ini tidak khusus untuk perusahaan besar atau kecil.
sumber
Selama bertahun-tahun, ketika bekerja di perusahaan kecil dan perusahaan baru, saya berada di bawah kesalahpahaman bahwa saya "tidak punya cukup waktu untuk menulis unit test untuk kode saya" .
Ketika saya menulis tes, itu adalah hal-hal berat yang membuat saya berpikir bahwa saya seharusnya hanya menulis tes unit ketika saya tahu itu diperlukan.
Baru-baru ini saya didorong untuk menggunakan Test Driven Development dan saya menemukan ini sebagai wahyu yang lengkap .
Saya sekarang sangat yakin bahwa saya "tidak punya waktu untuk tidak menulis unit-test" .
Dalam pengalaman saya, dengan mengembangkan dengan pengujian dalam pikiran Anda berakhir dengan antarmuka yang lebih bersih, kelas & modul yang lebih fokus dan umumnya lebih SOLID , kode diuji.
Setiap kali saya bekerja dengan kode lama yang tidak memiliki tes unit, dan harus menguji sesuatu secara manual, saya terus berpikir "ini akan jauh lebih cepat jika kode ini sudah memiliki unit test" . Setiap kali saya harus mencoba dan menambahkan fungsionalitas unit test ke kode dengan kopling tinggi, saya terus berpikir "ini akan jauh lebih mudah jika telah ditulis dengan cara de-coupled" .
Jika ada satu hal yang saya temukan selama bertahun-tahun, jika Anda bekerja pada permulaan, Anda harus gesit , dan tidak hanya dalam arti metodologi pengembangan perangkat lunak . Bagi saya TDD adalah alat penting yang memungkinkan memulai dan tetap gesit .
sumber
Ini bukan tentang siapa yang harus melakukan pengujian perangkat lunak, Pengujian perangkat lunak itu semacam filosofi pengembangan perangkat lunak. Pengujian Perangkat Lunak menetapkan dasar kualitas perangkat lunak yang baik, dan di awal, kualitas perangkat lunak adalah bonus ketika akuisisi oleh perusahaan besar sudah dekat;)
sumber
Praktik terbaik bersifat luas di industri, apakah Anda menjadikan nenek situs web atau membuat sistem panduan untuk satelit. Mereka harus selalu diikuti oleh mereka yang ingin menganggap diri mereka profesional, itu sebabnya mereka disebut praktik TERBAIK.
sumber
Ya, startup terkadang mengambil jalan pintas dan tidak memaksakan pengujian yang tepat. Terkadang ini tepat (untuk proyek yang cukup kecil atau ketika waktu / uang sangat penting)
Ini bukan eksklusif untuk startup. Salah satu pemasok kami, kontraktor TI, bahkan memiliki lingkungan pengujian. Semuanya dilakukan langsung untuk hidup dan ini adalah perusahaan perangkat lunak multi-nasional besar (menakutkan!)
sumber
Haruskah mereka Iya. Apakah mereka melakukannya dalam praktik, tidak sesering yang seharusnya.
Alasan paling umum yang diberikan adalah kurangnya sumber daya yang mencakup waktu pengembang, biaya mempekerjakan penguji khusus atau paruh waktu, biaya menyiapkan lingkungan pengujian dan sebagainya. Anda bahkan dapat menemukan alasan-alasan ini dalam pengaturan perusahaan yang besar serta memulai yang kecil.
Melihat dengan cara lain, pengujian adalah salah satu hal termudah untuk memotong dari jadwal pengembangan, terutama yang dengan tekanan waktu yang sangat ketat dan / atau tekanan biaya untuk menghasilkan hasil yang terlihat. Seiring dengan pekerjaan desain yang terperinci, itu dianggap 'halus' oleh banyak manajer dan tempat pertama mereka akan mengatakan "memotongnya sehingga kita dapat membuat jadwal dan anggaran kita bekerja" diikuti oleh "Mengapa Anda tidak coding?".
Di beberapa perusahaan, akan ada seseorang yang melakukan push testing. Biasanya ini adalah pengembang yang dipekerjakan dan biasanya mereka akan menjadi seseorang yang berpengalaman dan mungkin seseorang yang memiliki kepentingan keuangan di perusahaan. Perusahaan yang memulai dengan "DNA" ini mungkin akan melakukan pengujian sejak awal.
sumber