Pertanyaan & Jawaban Wawancara Rekayasa Perangkat Lunak [Untuk Freshers & Berpengalaman]
Diterbitkan: 2020-11-18Rekayasa perangkat lunak adalah salah satu pilihan karir yang paling dicari saat ini. Profesional yang sukses di bidang kompetitif ini harus menyeimbangkan keterampilan teknis, bisnis, dan pribadi mereka untuk tetap unggul dalam permainan.
Apalagi, kemajuan teknologi mempercepat dan mendisrupsi industri. Jadi, sangat penting untuk tetap mengikuti konsep dasar. Melalui artikel ini, kami akan membahas pertanyaan dan jawaban wawancara rekayasa perangkat lunak teratas untuk memandu Anda dalam persiapan Anda.
Sebelum kita beralih ke T&J, mari kita lihat dulu beberapa sebutan pekerjaan yang dapat Anda ambil di domain ini:
- Desainer perangkat lunak
- Pengembang tumpukan penuh
- Pemrogram perangkat lunak
- manajer proyek TI
- Manajer sistem informasi
- Ilmuwan data
- Insinyur pembelajaran mesin
- Insinyur awan
- Insinyur keamanan siber
Saat mewawancarai salah satu posisi di atas, calon majikan Anda akan menguji pengetahuan dan keterampilan konseptual Anda. Oleh karena itu, calon insinyur perangkat lunak dapat mengambil manfaat dari menggabungkan gelar mereka dengan pengalaman praktis, baik melalui proyek langsung atau magang.
Selain itu, kemampuan komunikasi dan orientasi tim Anda dapat memainkan peran penting dalam membedakan Anda dari pesaing Anda. Jadi, saat Anda bersiap untuk siklus perekrutan, ingatlah hal-hal ini.
Pelajari Kursus Perangkat Lunak Online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Dengan ini, sekarang saatnya untuk menyelidiki pertanyaan yang paling banyak diajukan dalam wawancara kerja rekayasa perangkat lunak.
Baca: Karir dalam Pengembangan Perangkat Lunak
Pertanyaan dan Jawaban Wawancara Rekayasa Perangkat Lunak
1. Sebutkan jenis-jenis perangkat lunak yang berbeda.
Perangkat lunak komputer dapat diklasifikasikan ke dalam kategori berikut:
- Perangkat lunak sistem
- Aplikasi perangkat lunak
- Aplikasi web
- Perangkat lunak tertanam
- perangkat lunak AI
- Perangkat lunak ilmiah
2. Membedakan antara program komputer dan perangkat lunak komputer.
Program komputer terdiri dari kode pemrograman yang mampu melakukan tugas yang terdefinisi dengan baik saat dieksekusi. Sebaliknya, perangkat lunak komputer menyertakan file (dokumentasi dan panduan pengguna) di samping kode pemrograman. Oleh karena itu, baik program maupun perangkat lunak berisi sekumpulan instruksi, tetapi cakupan perangkat lunak lebih luas dibandingkan dengan sebuah program.
3. Jelaskan langkah-langkah utama SDLC.
SDLC adalah bentuk singkat dari Siklus Hidup Pengembangan Perangkat Lunak. Terdiri dari banyak tahapan, antara lain:
- Perencanaan: Estimasi perangkat lunak dan aspek lain dari perencanaan proyek
- Analisis kelayakan: Analisis kebutuhan, daftar spesifikasi perangkat lunak
- Desain perangkat lunak: Memutuskan pola desain, mengembangkan prototipe
- Pengembangan perangkat lunak: Menerjemahkan persyaratan ke dalam kode kerja
- Pengujian: Memeriksa kode untuk persyaratan yang dinyatakan, kualitas, praktik pengembangan yang aman, dll.
- Deployment: Menerapkan perangkat lunak dan mengintegrasikannya dengan sistem yang berbeda untuk menciptakan produk yang berfungsi penuh
- Dokumentasi proyek: Mengumpulkan sumber daya dan mengatur file perangkat lunak, termasuk kode, dokumen, dan lisensi.
- Pelatihan dan dukungan: Mengkomunikasikan penggunaan, fungsionalitas, dan kemungkinan teknologi baru dan memfasilitasi transfer pengetahuan yang efektif
- Operasi dan pemeliharaan: Melaporkan masalah dan melakukan perbaikan pada produk
4. Sebutkan beberapa model dan metodologi SDLC dasar. Menurut Anda, mana yang terbaik?
Waterfall, V-Model, Iterative, Spiral, Big-bag, dan Agile adalah beberapa model SDLC yang paling populer.
Adapun metodologi dengan peringkat terbaik, tidak ada jawaban tunggal karena solusinya tergantung pada kebutuhan proses pengembangan perangkat lunak. Misalnya, model Waterfall cocok untuk proyek jangka panjang di mana fleksibilitas lebih disukai. Model V-Shaped bekerja dengan baik ketika ada persyaratan yang tidak diketahui. Model Spiral sangat ideal untuk proyek yang sangat disesuaikan, dan sebagainya.
5. Apa yang dimaksud dengan rekayasa ulang perangkat lunak?
Rekayasa ulang perangkat lunak bertujuan untuk memperbaiki sistem perangkat lunak. Ini adalah proses memperbarui perangkat lunak tanpa mengganggu fungsinya saat ini. Ini dapat mencakup tugas pemeliharaan, seperti menambahkan fitur baru untuk membuat produk perangkat lunak lebih efisien dan ramah pengguna.
6. Tentukan hal berikut dalam konteks pengembangan perangkat lunak: (i) verifikasi (ii) validasi (iii) debugging
(i) Verifikasi melibatkan pelaksanaan serangkaian aktivitas untuk memastikan bahwa perangkat lunak dapat mengimplementasikan fungsi tertentu.
(ii) Validasi adalah tentang memastikan bahwa perangkat lunak memenuhi kebutuhan klien.
(iii) Debugging adalah bagian dari proses pengujian, termasuk penghapusan kesalahan.
7. Bagaimana Anda memastikan bahwa kode Anda cepat dan aman?
Jika eksekusi kode lambat, Anda akan menghitung kompleksitas waktu program. Ini mengacu pada berapa kali pernyataan dieksekusi, yang bergantung pada bahasa pemrograman, sistem operasi, dan kekuatan pemrosesan, di antara faktor-faktor lainnya.
Selain itu, terlepas dari bahasa pemrograman yang Anda gunakan, ada beberapa cara untuk mengamankan kode Anda. Di sini, pengetahuan tentang praktik pengkodean yang aman menjadi penting. Misalnya, memindai kode dengan alat gratis dapat membantu Anda mendeteksi kerentanan dalam paket sumber terbuka di GitHub.
8. Apa persyaratan perangkat lunak fungsional dan non-fungsional?
Persyaratan adalah deskripsi sistem perangkat lunak, fitur yang diinginkan, dan fungsionalitas yang ditargetkan. Mereka dapat dibagi menjadi kebutuhan fungsional dan non-fungsional.
Persyaratan fungsional adalah apa yang diharapkan pengguna dari produk yang diusulkan, dan persyaratan non-fungsional berhubungan dengan aspek seperti tampilan, kinerja, keamanan, dan antarmuka pengguna.
9. Bagaimana Anda melacak kebutuhan perangkat lunak?
Ada berbagai macam alat yang tersedia untuk mengumpulkan dan mengelola persyaratan perangkat lunak di pasar. Persyaratan Modern, ReQtest, Jama Connect, dan Orcanos adalah beberapa perangkat lunak RM yang paling dicari di kalangan praktisi saat ini. Pemilihan didasarkan pada metodologi dan tujuan dan berbeda dari proyek ke proyek. Namun demikian, langkah pertama dalam proses pelacakan adalah membuat daftar persyaratan dan membuat lembar Excel dengan detail seperti jenis, ketergantungan, prioritas, dll.
10. Apa yang Anda ketahui tentang modularisasi dan kohesi?
Modularisasi membagi sistem perangkat lunak menjadi modul-modul terpisah. Di sini, setiap modul diharapkan untuk melakukan tugas-tugas tertentu secara mandiri. Kohesi mengukur dan mendefinisikan ketergantungan antar elemen yang berbeda dari sebuah modul.
11. Apa yang dilakukan manajer proyek perangkat lunak?
Seorang manajer proyek ditugaskan dengan tanggung jawab seperti perencanaan proyek, pemantauan kemajuan, dan komunikasi. Dalam proses pengembangan perangkat lunak, tugas utama manajer proyek adalah mengelola sumber daya, menyeimbangkan risiko, dan memberikan produk yang diinginkan dengan mematuhi batasan waktu, biaya, dan kualitas.
12. Apa itu lingkup perangkat lunak?
Lingkup perangkat lunak mencakup semua aktivitas yang diperlukan untuk mengirimkan produk perangkat lunak. Ini mendefinisikan aspek-aspek berikut untuk merampingkan proses pengembangan:
- Apa yang akan dilakukan produk?
- Apa yang bukan bagian dari proyek?
- Estimasi proyek (dengan bantuan konsultan, ahli, atau formula)
13. Bagaimana Anda menentukan kelayakan proyek Anda?
Studi kelayakan membantu mengukur manfaat praktis yang dapat dibawa oleh proyek pengembangan perangkat lunak ke organisasi. Penganalisis perangkat lunak mempertimbangkan tiga faktor utama sebelum menyiapkan laporan akhir mereka. Kami telah menjelaskannya secara rinci di bawah ini:
- Ekonomis: Biaya fitur dan alat tambahan, biaya pelatihan, dan analisis biaya-manfaat proyek akhir secara keseluruhan
- Teknis: Kesesuaian mesin dan perangkat lunak operasi, termasuk kemungkinan mengembangkan sistem yang diusulkan dengan dukungan teknis dan sumber daya manusia yang tersedia
- Operasional: Kemampuan untuk melakukan penyesuaian dan mengikuti tuntutan dan kelayakan proyek dengan perkiraan biaya.
14. Sebutkan beberapa alat analisis dan desain perangkat lunak.
Analisis perangkat lunak dan prosedur desain membantu menerjemahkan spesifikasi kebutuhan ke dalam implementasi. Berikut adalah beberapa alat standar:
- Diagram aliran data
- Kamus data
- Bagan terstruktur
- Grafik HIPO (Hierarchical Input Process Output)
- Diagram Entity-Relationship atau ER
- Tabel keputusan
15. Apa perbedaan antara Structured English dan Psuedo Code?
Bahasa Inggris asli yang digunakan untuk menulis struktur modul program dikenal sebagai Bahasa Inggris Terstruktur. Ini termasuk kata kunci bahasa pemrograman.

Sebaliknya, metodologi Kode Pseudo sangat mirip dengan bahasa pemrograman tetapi tanpa sintaks khusus.
Baca Juga: Ide Proyek Pengembangan Perangkat Lunak
16. Bagaimana Anda akan menemukan ukuran produk perangkat lunak?
Anda dapat menghitung ukuran perangkat lunak dengan menghitung baris kode yang dikirimkan atau titik fungsi. Titik fungsi dianggap sebagai pengukuran yang relevan karena mewakili fitur yang ditawarkan oleh produk perangkat lunak.
17. Apa itu metrik perangkat lunak?
Metrik perangkat lunak mengacu pada pengukuran persyaratan dan produk itu sendiri.
- Metrik persyaratan mencakup aspek seperti panjang dan kelengkapan.
- Metrik produk berhubungan dengan jumlah baris pengkodean, desain, metrik pengujian, metrik berorientasi objek, dll.
18. Apa sajakah teknik estimasi proyek yang berguna?
Estimasi proyek merupakan bagian integral dari perencanaan proyek perangkat lunak yang baik. Berikut adalah beberapa metode yang banyak digunakan:
- Dekomposisi (Ukuran perangkat lunak, berbasis masalah, dan teknik berbasis proses)
- Empiris (analisis regresi, model biaya konstruktif, dan persamaan perangkat lunak)
19. Bagaimana Anda mengukur pelaksanaan proyek?
Tinjauan implementasi perangkat lunak akan memerlukan pemantauan aktivitas, daftar periksa pencapaian, dan laporan status.
Alat manajemen proyek menyediakan cara yang nyaman untuk memeriksa kemajuan. Gantt Chart, Pert Chart, dan Resource Histogram adalah beberapa contoh lainnya.
20. Menentukan manajemen konfigurasi perangkat lunak.
Manajemen konfigurasi adalah tentang melacak dan mengendalikan perubahan dalam proyek perangkat lunak. Sangat penting untuk menjaga konsistensi sistem perangkat lunak dengan aturan dan regulasi organisasi.
21. Apa perbedaan antara jaminan kualitas dan kontrol kualitas?
Pemeriksaan jaminan kualitas dilakukan untuk mengetahui apakah proses pengembangan yang tepat telah diikuti. Di sisi lain, kontrol kualitas berkaitan dengan menjaga kualitas produk akhir.
22. Bandingkan pemrograman berorientasi antarmuka, berorientasi objek, dan berorientasi aspek.
Pemrograman antarmuka adalah pola arsitektur berbasis kontrak yang diterapkan untuk mencapai desain modular pada tingkat komponen.
Pemrograman berorientasi objek berkaitan dengan penulisan objek granular yang memiliki tujuan tunggal.
Pemrograman berorientasi aspek bertujuan untuk memisahkan kode sehingga beberapa objek membawa tugas utama dan objek independen membawa tugas tambahan.
23. Kapan mendeklarasikan kelas sebagai abstrak?
Kelas yang berisi kata kunci abstrak dalam deklarasinya tidak dapat dipakai. Yang terbaik adalah mendeklarasikan kelas sebagai abstrak dalam situasi yang disebutkan di bawah ini.
- Ketika setidaknya salah satu metode di kelas dideklarasikan sebagai abstrak.
- Ketika kelas yang diwarisi dari kelas abstrak masih menyertakan metode abstrak.
24. Sebutkan perbedaan utama antara: (i) Stack vs antrian (ii) Desain berorientasi objek vs berorientasi komponen (iii) Thread vs proses (iv) EXE vs DLL (v) Tag dan cabang
(i) Stack mengikuti prinsip Last In, First Out (LIFO). Padahal, Antrian selalu FIFO, yaitu First In, First Out.
(ii) Desain berorientasi objek dapat dimasukkan ke dalam desain berbasis komponen sampai batas tertentu. Namun, kebalikannya tidak mungkin.
(iii) 'Proses' mengacu pada contoh program komputer yang sedang dieksekusi. Ini lebih berat dan membutuhkan lebih banyak pengalihan konteks. 'Utas' adalah proses ringan yang dikelola oleh penjadwal secara independen. Satu program dapat memiliki lebih dari satu thread.
(iv) EXE dan DLL keduanya adalah program yang membutuhkan ruang penyimpanan untuk dijalankan. Sementara EXE adalah program dasar yang dapat dieksekusi, DLL lebih dinamis. Ini adalah repositori kode eksternal yang dapat Anda muat dan jalankan, sehingga menempati lebih sedikit ruang.
(v) Tag tetap berada pada versi kode tertentu dan biasanya tidak berubah. Mereka bertindak sebagai tempat penyimpanan sementara untuk rilis versi. Cabang selalu menunjuk ke atas garis pengembangan. Jadi, mereka dihapus setelah komit baru didorong atau ketika perubahan digabungkan ke dalam bagasi.
25. Apakah sebaiknya menggunakan catch (pengecualian)?
Catch (pengecualian) harus digunakan ketika jenis pengecualian diketahui. Ini adalah ide yang buruk karena Anda tidak dapat membaca pengecualian ketika tidak ada variabel yang ditentukan.
26. Mana yang lebih disukai di antara keduanya: pengetikan kuat atau pengetikan lemah?
Pengetikan yang kuat seharusnya menjadi pengetikan yang lemah karena memeriksa variabel pada waktu kompilasi. Selain itu, ini dapat sangat meminimalkan bug sistem. Bahasa yang diketik dengan lemah melakukan konversi hanya pada saat run-time dan dapat menghasilkan hasil yang tidak terduga.
27. Apa yang dimaksud dengan desain terstruktur?
Desain terstruktur mengkonseptualisasikan masalah mengikuti strategi 'bagi dan taklukkan'. Pendekatan sistematis ini memerlukan pemecahan masalah menjadi sub-elemennya dan menangani masalah-masalah yang lebih kecil ini secara individual. Karena taktik ini, itu juga disebut metode desain solusi.
28. Jelaskan pemrograman fungsional.
Metode pemrograman fungsional melibatkan penerapan konsep matematika. Ini menyediakan cara untuk menghitung fungsi matematika, sehingga menghasilkan hasil terlepas dari status program.
29. Bagaimana Anda memprioritaskan persyaratan?
Pertama dan terpenting, Anda harus mengevaluasi struktur data. Kemudian, Anda perlu merumuskan struktur kode untuk mendukung hal yang sama.
30. Apa yang Anda ketahui tentang CASE tools?
CASE adalah singkatan dari Computer-Aided Software Engineering. Ini terdiri dari satu set aplikasi perangkat lunak otomatis yang mendukung kegiatan SDLC. Alat CASE dapat meningkatkan dan memperkuat proyek perangkat lunak dengan menawarkan layanan ini:
- Analisis kebutuhan
- Analisis struktur
- Pembuatan kode
- Pembuatan kasus uji
- produksi dokumen
- Rekayasa terbalik
takeaways
Biro Statistik Tenaga Kerja (Amerika Serikat) memproyeksikan permintaan pengembang perangkat lunak akan tumbuh sebesar 22 persen hingga dekade berikutnya. Dan India kemungkinan akan menghadapi lonjakan permintaan yang sama.
Menurut 'Laporan Tenaga Kerja untuk India' oleh LinkedIn, lowongan pekerjaan rekayasa perangkat lunak di platformnya adalah yang tertinggi di berbagai industri pada paruh pertama tahun 2018. Saat kami bergerak maju, peluang di sektor-sektor terkemuka seperti pendidikan, hukum, dan desain akan terus meningkat. Baca tentang gaji pengembang perangkat lunak di India.
Seperti yang diamati melalui pertanyaan-pertanyaan yang tercantum di atas, seseorang yang ingin memasuki profesi ini akan membutuhkan berbagai kompetensi yang saling terkait. Berikut adalah cuplikan dari keterampilan keras yang harus Anda kuasai:

- C++, C#, Java
- HTML, CSS JavaScript
- SQL, Python, Bootstrap
- Desain berorientasi objek
- Debugging dan pengujian perangkat lunak
- Pengkodean dalam bahasa modern (Ruby, Go, R, dll.)
- Pengetahuan tentang proyek kecerdasan buatan, dan sebagainya
Terlepas dari kemampuan teknis ini, Anda perlu menguasai seni multitasking, komunikasi, manajemen waktu, perhatian terhadap detail, dan kerja tim.
Adapun kualifikasi pendidikan, gelar sarjana dalam ilmu komputer atau bidang terkait biasanya mencakup kriteria kelayakan minimum untuk pekerjaan entry-level. Tetapi jalur karier setiap orang ternyata sedikit berbeda. Beberapa mungkin telah memasuki dunia kerja melalui belajar mandiri, kursus online, atau bootcamp pengkodean. Orang lain mungkin telah mengejar gelar yang lebih tinggi setelah bekerja di bidang TI selama beberapa tahun.
Memiliki kredensial tingkat pascasarjana dapat membantu Anda memulai karir Anda dan bahkan mendapatkan promosi pekerjaan yang didambakan. Lihat Magister Ilmu Komputer upGrad yang disertifikasi oleh Liverpool John Moores University. Ini bertujuan untuk membekali Anda dengan keterampilan yang relevan dengan industri melalui pedagogi yang sangat interaktif.
Anda juga dapat mengikuti Program PG Eksekutif dalam Pengembangan Perangkat Lunak – Spesialisasi dalam Pengembangan Tumpukan Penuh oleh IIIT-B atau sertifikasi PG khusus, tergantung pada minat dan aspirasi karir Anda. Sertifikat tersebut memiliki komitmen waktu yang lebih pendek dibandingkan dengan program master dan diploma. Mereka memungkinkan Anda untuk menunjukkan keahlian Anda di bidang tertentu, seperti pengembangan back-end, pengembangan front-end, keamanan siber, DevOps, data besar, dan komputasi awan.
Dengan ini, kami telah membahas pertanyaan dan jawaban wawancara rekayasa perangkat lunak teratas . Kami berusaha memasukkan topik umum dan teknis. Juga, kami menyebutkan pilihan karir potensial dan memberikan gambaran tentang tren dan prospek di industri TI. Gunakan informasi ini sebagai rambu untuk perjalanan belajar Anda dan sederhanakan strategi persiapan Anda!
