Gambar penguji modern. Apa yang perlu Anda ketahui dan dapat lakukan



Ada pendapat bahwa cara paling sederhana untuk TI terletak melalui pengujian. Seperti, Anda tidak perlu tahu apa-apa, untuk bisa melakukan lebih dari itu, cukup keinginan dan kemauan untuk tidak menyipitkan mata dari rasa sakit dan air mata ketika Anda menerima serangkaian kasus uji untuk pengujian regresi.

Sebagian, ini bahkan benar, tetapi lebih untuk situasi yang ada di pasaran 10 tahun yang lalu. Sekarang semuanya sedikit berbeda. Ada banyak alasan untuk ini, dan mereka sangat berbeda. Jika Anda perhatikan kuncinya, maka mungkin ini:

Peningkatan persyaratan untuk penguji, pengetahuan dan kualifikasi mereka, karena tugas semakin ditangani sedikit lebih rumit daripada "klik-klik-dan-produksi". Pekerjaan penguji menjadi semakin banyak "rekayasa", itu membutuhkan pengetahuan teknis, pengetahuan khusus, keterampilan dan kompetensi. Penguji semakin menjadi insinyur QA (siapa pun yang berada dalam subjek memahami perbedaannya).

Meningkatnya pasokan di pasar ketika kerumunan "warga sipil" kemarin menyerbu jurang TI, didorong oleh banyak informasi: dari konferensi dan buku hingga artikel dan kursus pengujian perangkat lunak. Hamba Anda yang rendah hati pada suatu waktu juga memiliki andil dalam menciptakan sepasang kursus yang secara umum dapat diakses karena keinginan untuk meniru hal-hal dasar dari bidang profesionalnya (lihat di sini dan di sini ).

Oleh karena itu, hari ini semakin tidak mungkin untuk hanya mengandalkan kualitas moral-kehendak untuk memasuki TI dalam terang selera pasar yang meningkat dan banyak konferensi, kursus, pelatihan, literatur, artikel, dan sumber informasi lainnya yang berada di tangan para spesialis pemula.

Tentu saja, semakin banyak perusahaan yang mencoba menumbuhkan spesialis di bawah sayap mereka, menghujani yang beruntung dengan pengetahuan dan keterampilan baru, pada saat yang sama meningkatkan loyalitas kepada perusahaan. Namun, dalam kasus ini, perusahaan dan spesialis mereka menghadapi pertanyaan yang membakar dan akut ...
Bagaimana tidak tersesat dalam berbagai informasi yang diisi dengan Internet dan dunia sekitar?
Apa yang harus diajarkan pada diri sendiri atau apa yang harus diajarkan pada para petarung Anda?

Dalam artikel saya, saya akan mencoba menguraikan secara umum apa yang perlu Anda ketahui dan dapat bekerja sebagai spesialis di bidang jaminan kualitas di bidang yang paling populer dan dicari. Ayo pergi!

Spesialisasi berikut merupakan pangsa dominan pasar pasokan dan permintaan penguji, dan karenanya (dan karena kurangnya pengalaman kerja yang memadai dan relevan), artikel ini, sayangnya, tidak akan memiliki bagian mengenai kinerja dan spesialisasi desktop.

Materi untuk artikel ini didasarkan pada pengalaman saya sendiri bekerja dengan spesialis brilian dari tim saya, pada hasil mengajar di Universitas Negeri Moskow, MSTU dan kursus online, serta pada ratusan wawancara dan lusinan spesialis QA yang disewa dari berbagai profil. Saya tidak berpura-pura menjadi luar biasa dalam pendapat saya, tetapi saya percaya bahwa pengalaman saya memungkinkan sudut pandang saya cukup kompeten.

Karakter karakter


Akan aneh untuk percaya bahwa dengan meningkatnya persyaratan untuk aspek teknis dari pekerjaan penguji, pentingnya kualitas pribadi menurun atau menghilang sama sekali. Selain itu, saya yakin bahwa ciri-ciri karakter terletak di jantung spesialis yang sukses dan sangat penting untuk pengetahuan dan keterampilan yang sama. Bagaimanapun, kami bekerja bukan dengan antarmuka manusia ke Stack Overflow dan Wikipedia, tetapi dengan orang-orang yang masih hidup yang tinggal di kantor dan di rumah. Oleh karena itu, sangat penting untuk memperhitungkan ciri-ciri kepribadian dalam konteks pilihan industri, profesi, dan spesialisasi yang akan datang.

Mengapa saya berpikir demikian? Semuanya sangat sederhana! Saya dapat dengan mudah mengirim spesialis ke kursus atau konferensi, memesan buku atau melakukan pelatihan tentang nuansa desain tes, bahasa pemrograman, SQL, jaringan dan aspek teknis lainnya, sehingga setelah beberapa saat saya mendapatkan hasil pertama dan memperbanyaknya, mengkonsolidasikan informasi yang diterima dalam praktik . Namun, Anda tidak dapat mengirim ke kursus "Bagaimana cara berhenti berlari setelah makan roti kantor dan mulai berinvestasi dalam pengetahuan Anda sendiri", "Bagaimana berhenti menjadi pembohong yang tidak bertanggung jawab dan mulai hidup dengan jujur", "Bagaimana berhenti menjadi tikus abu-abu dan menjadi orang yang antusias", "Bagaimana berhenti membenci orang dan belajar bekerja dalam tim ”dan mengandalkan hasil yang nyata setelah mendengarkan. Sayangnya, ini adalah kebenaran kehidupan, ketidaksepakatan internal yang memungkinkan strata luas "pengusaha informasi" untuk mendapatkan dari pemberontak, bersemangat untuk mengubah pilar fundamental dan karakter mereka dengan satu pelatihan atau serangkaian webinar online. Itulah mengapa sangat penting untuk memiliki motivasi dan kualitas hidup yang tepat untuk bekerja di bidang IT dan QA pada khususnya. Jadi apa yang penting?

Motivasi belajar dan belajar mandiri


Jawab pertanyaan Anda dengan jujur: apakah Anda suka belajar? Bukan satu kali, tetapi secara berkelanjutan. Apakah Anda siap untuk satu-satunya lompatan yang secara ajaib akan menuntun Anda "ke para wanita", atau apakah Anda benar-benar ingin menyerap pengetahuan baru setiap jam dan setiap menit? TI adalah area di mana agak tidak berhasil untuk berkedip, dan Anda sudah berada di sela-sela industri. Anda seharusnya tidak berharap bahwa setelah membaca buku tentang pengujian dalam setahun, Anda akan membuka sendiri gerbang menuju dunia indah pengetahuan baru yang akan memungkinkan Anda untuk berada dalam tren selama satu dekade ke depan. Idealnya, jika Anda tidak selalu membutuhkan mentor dan guru yang bijaksana untuk belajar dan Anda dapat mengatur sendiri untuk buku, webinar atau kursus baru sendiri.

Tanggung jawab


Nilai tingkat tanggung jawab Anda. Cara sederhana: pertama-tama, katakan pada diri sendiri beberapa kesalahan terbesar Anda dalam hidup. Tidak bekerja Ini bukan tentang ketidaksempurnaan Anda, ingatlah bahwa hanya orang yang tidak melakukan apa pun yang tidak salah. Ingat? Jika hanya beberapa hal kecil, maka ini adalah indikator yang menyedihkan. Lebih buruk lagi, jika Anda mengingat kesalahan masa lalu, Anda segera menyalahkan mereka secara internal atas orang lain atau keadaan, dan tidak mengakui tanggung jawab Anda atas apa yang terjadi. Tetapi jika Anda ingat beberapa gagal di mana Anda yang harus disalahkan, dan bahkan ingat bagaimana mereka diperbaiki, maka hal-hal dengan tanggung jawab Anda jauh lebih baik. Sebuah menara adalah ketika Anda tidak hanya memperbaiki kesalahan, tetapi juga mengasuransikan diri Anda dari masa depan sehingga tidak terulang kembali. Pendekatan yang bertanggung jawab untuk bekerja adalah kunci untuk karier yang sukses di bidang apa pun, dan karenanya bagi penguji ini adalah fitur yang sangat penting. Hal utama adalah tidak melangkah terlalu jauh dan mengetahui ukurannya, karena tanggung jawab yang berlebihan tidak selalu baik.

Gairah


Apakah Anda orang yang penuh gairah? Jujur, apa yang kamu sukai? Tidak ada yang spesial? Atau apakah banyak hobi kecil yang Anda lakukan setahun sekali? Mungkin sesuatu yang besar, tetapi waktu terus habis, tetapi karena hobi sedang menunggu waktu yang lebih baik. Seseorang tetap menjadi orang baik di kantor maupun ketika dia meninggalkannya. Dan jika seseorang benar-benar bersemangat tentang sesuatu dalam kehidupan biasa, itu berarti bahwa dalam pekerjaan dia dapat terbawa dengan sesuatu yang sangat banyak sehingga dia akan tinggal di malam hari atau mempelajari masalah di akhir pekan atas inisiatifnya sendiri. Tugas seorang pemimpin yang kompeten dan spesialis itu sendiri adalah menemukan tugas-tugas seperti itu. Tentu saja, adalah penting pada saat yang sama untuk membawa apa yang telah dimulai pada kesimpulan logisnya dan tidak meninggalkannya di tengah jalan. Penguji tidak bisa menjadi "cracker". Tetapi jika ia terbakar dengan pekerjaan dan produknya, maka efektivitas karyawan tersebut akan lebih tinggi.

Fleksibilitas perilaku


Fitur penting untuk bekerja di perusahaan IT modern dan QA khususnya adalah fleksibilitas. Pengetahuan dan tren baru datang dengan kecepatan angin Jupiter, untuk berdiri dengan gaya Gandalf Gray "Kamu tidak akan lulus!" menghadapi industri sangat sulit dan tidak selalu disarankan. Oleh karena itu, sangat penting untuk dapat beradaptasi dengan kondisi kerja baru, apakah itu garis umum perusahaan, produk baru, tim, metodologi kerja atau peralatan. Semakin fleksibel karyawan, semakin besar peluang dia untuk mengembangkan karier di bidang TI.

Kemasyarakatan dan kontak


Tanpa ragu, Anda bisa menjadi spesialis yang sukses, cukup pendiam, tetapi pada saat yang sama tenggelam dalam tugas Anda, bagaimanapun, untuk mempelajari sesuatu yang baru dan mendidik orang lain lebih mungkin menjadi orang yang ramah dan kontak. Tidak perlu bagi semua orang untuk menjadi pembicara yang hebat dan berbicara di depan umum di berbagai acara, tetapi penting untuk dapat menemukan bahasa yang sama dengan kolega, mengekspresikan pikiran mereka secara verbal dan tertulis dengan benar. Dalam pekerjaan penguji, ini adalah fitur yang cukup penting, karena Anda perlu banyak berkomunikasi dan sering, dan semakin banyak Anda berbicara tentang QA, semakin dalam dan lebih detail Anda terbenam dalam bidang terkait, di mana kemampuan untuk membangun komunikasi adalah setengah dari keberhasilan.

Kerja tim


Penguji perlu menjadi pemain tim. Tidak masalah jika Anda bekerja dalam model pengujian layanan atau jika penguji terintegrasi ke dalam setiap tim. Sangat penting bagi Anda untuk memberikan "rasa tanggung jawab" kepada tim Anda sehingga mereka dapat mengandalkan Anda dan Anda pada mereka. Seseorang bukan pejuang di lapangan - bagi penguji ini juga cerita tentang pertumbuhan karir lebih lanjut. Bagaimanapun, itu adalah tim, sebagai lingkungan terdekat Anda, yang merupakan sumber utama pengetahuan yang akan Anda terima tentang produk, proses dan teknologi. Jika Anda seorang pemain tim, maka dalam pengujian Anda akan mencapai kesuksesan yang lebih besar daripada penyendiri.

Inisiatif dan tekad


Seperti yang Anda ketahui, air tidak mengalir di bawah batu yang berbaring, dan karena itu kelembaman akan datang kepada Anda secara menyamping dalam profesi seorang penguji. Penguji yang baik adalah proaktif, tidak mengharapkan tendangan dari kolega dan kepala, tetapi dilengkapi dengan solusi dan saran baru. Jika tester pernah diberitahu "ini bukan bug, tetapi fitur", maka ia tidak boleh menyerah. Alih-alih, ambil inisiatif dan nyatakan sudut pandang Anda. Tentu saja, Anda tidak boleh terlalu ekstrem dan berdebat dengan alasan apa pun, tetapi Anda tidak boleh setuju dengan semua yang mereka katakan. Pekerjaan seorang penguji yang baik tidak hanya didasarkan pada pemikiran kritis, yang menguji dunia sekitar untuk kekuatan, tetapi juga kemampuan untuk membentuk posisi sendiri pada waktu yang tepat dan mempertahankannya di depan orang lain.

Daftar ini dapat dilanjutkan dan ditambah, saya telah mengidentifikasi fitur-fitur utama berdasarkan pengalaman saya sendiri. Tentu saja, kita tidak berbicara tentang fakta bahwa jika Anda tidak memiliki sifat-sifat ini, maka Anda tidak cocok. Tetapi aman untuk mengatakan bahwa semakin sedikit kualitas yang dinyatakan akan ada dalam diri Anda, semakin sulit bagi Anda, tim Anda, dan pemimpin Anda. Pengecualian diizinkan, yang hanya menegaskan aturan.

Dasar-Dasar Pengujian


Pengetahuan dan keterampilan berikut sangat dibutuhkan oleh semua penguji, terlepas dari spesialisasinya. Hal-hal ini adalah dasar dari dasar-dasar, mereka belajar dengan cepat dan mudah, terutama jika mereka segera diperbaiki dengan latihan. Saya sangat merekomendasikan bahwa semua pemula, tanpa kecuali, menyelami topik yang disebutkan di bawah ini. Berbekal pengetahuan ini, Anda dapat menemukan dunia pengujian perangkat lunak yang tak ada habisnya, akhirnya menguasai salah satu bidang, tetapi pengetahuan yang diletakkan di dalam yayasan akan selalu tetap diminati.

Klasifikasi jenis pengujian


Bahkan tester pemula harus memiliki pemahaman dasar tentang berbagai jenis pengujian, kapan mereka digunakan dan untuk apa. Ini adalah teori kering, yang dengan sendirinya tidak diperlukan, tetapi tanpa itu, “meletakkan di atas” latihan bisa sangat menyakitkan dan memakan waktu, tetapi di sepanjang jalan, Anda juga dapat mengarang sepeda, tetapi Anda dapat mengumpulkan rake yang dikenal. Jangan malas, lihat, manfaat banyak sumber. Tapi kemudian Anda dapat dengan mudah melewati tugas-tugas tingkat "pensil tes" di wawancara.

Pelokalan kesalahan dan pelaporan bug


Temukan sedikit kesalahan. Sangat penting untuk melokalisasi kesalahan dengan cara yang benar, mengatur sebanyak mungkin keadaan dan kondisi untuk reproduksi yang stabil. Selain itu, Anda perlu mendapatkan keterampilan menyusun laporan bug berkualitas tinggi. Dalam ceramah saya dan ketika bekerja dengan tim, saya sering menggunakan perbandingan berikut: "Laporan bug Anda baik jika Anda pergi ke luar, mengambil nenek pertama yang datang, dan dia dapat mereproduksi cacat sesuai dengan deskripsi Anda atau memverifikasi tidak adanya" .

Teknik Desain Uji


Hal-hal dasar, yang sering diperiksa dalam satu bentuk atau yang lain pada saat wawancara atau dalam pekerjaan rumah, memberikan tugas tingkat “menguji formulir untuk memasukkan angka” dan “menulis autotest pada formulir otorisasi kami”. Penting untuk tidak hanya menghafal apa itu "kelas kesetaraan" atau "analisis nilai batas", tetapi juga untuk dapat menggunakan berbagai teknik dalam kondisi apa pun, menggabungkannya.

Pelacakan bug, pengetahuan dan sistem manajemen pengujian


Saat-saat ketika laporan bug ditulis pada lembar, dan dokumentasi uji, daftar periksa dan kasus uji dilakukan di dok Google telah lenyap terlupakan (ya, ya, saya tahu bahwa beberapa masih menulis, dan kadang-kadang bahkan lebih nyaman ) Samopal ini digantikan oleh alat profesional - sistem pelacakan bug (yang paling populer adalah Jira, Redmine), sistem manajemen pengetahuan (Confluence, Wiki, dan lainnya) dan sistem manajemen kasus uji (TestRail, Zephyr, TestLink, dll. ) Prinsip dasar bekerja dengan alat dapat diperoleh dengan memasukkan ke dalam program pengujian beta terbuka atau dengan menginstal perangkat lunak Anda sendiri (ada solusi dan shareware gratis pada skala sesi pencarian fakta di pasar).

Metodologi Pengembangan Perangkat Lunak


Penguji bahkan mungkin tidak memerlukan pemahaman mendalam tentang metodologi pengembangan perangkat lunak pada tahap awal, penting untuk memahami perbedaan yang paling populer (Waterfall, Scrum dan Kanban) setidaknya di jari. Tetapi seiring berjalannya waktu, ia harus menyelami metodologi ini lebih dalam lagi, memilih pendekatan dan teknik yang tepat ketika menguji dalam konteks proses pengembangan tertentu. Penting untuk dipersiapkan untuk ini dan memperhatikan sisi masalah ini.

Arsitektur server klien


Sebagian besar perangkat lunak modern dibangun di atas paus dari interaksi klien-server. Penting bagi penguji untuk berada dalam konteks arsitektur ini, untuk memahami prinsip kerjanya, kelebihan dan kekurangan utama. Ini akan memungkinkan tidak hanya untuk melakukan tes yang lebih baik dalam pekerjaan mereka, tetapi juga, jika perlu, untuk memahami bagaimana cacat yang ditemukan harus dilokalisasi, dengan tepat menentukan di sisi mana mereka berada.

Sistem operasi


Prinsip-prinsip pengoperasian sistem operasi, seperti apa mereka dan apa umumnya mereka - pengetahuan umum, yang, sebagai suatu peraturan, menyederhanakan kehidupan seorang tester. Bahkan memahami tren penggantian OS desktop dengan yang mobile, serta menguasai keterampilan bekerja dengan OS di tingkat pengguna sudah merupakan nilai tambah. Dan jika Anda mempelajari lebih dalam tentang masalah ini, maka seiring waktu Anda perlu memperoleh keterampilan untuk mengonfigurasi dan menggunakan seluruh galaksi OS (Android, Windows, iOS, macOS, Linux adalah yang paling populer).

Pengujian Klien Aplikasi Web


Salah satu cara termudah dan paling umum untuk melakukan pengujian adalah mulai menguji aplikasi web. Spesialisasi ini adalah salah satu yang paling luas di pasaran, namun, pada saatnya inilah arah pengujian klien terhadap aplikasi seluler dimulai. Dalam hal apa pun, Anda perlu memahami bahwa vektor pengembangan semacam itu adalah yang paling mudah diakses pada awal karier. Ada banyak materi pelatihan dan artikel tentang topik ini. Jika mau, Anda dapat mengembangkan ke arah lain, paling sering adalah otomatisasi atau perangkat seluler yang sama (misalnya, setelah menguasai pengujian aplikasi web untuk perangkat seluler).

Browser


Dalam konteks pengujian klien web, penting untuk memahami struktur klien tipis, peramban khususnya, serta perbedaannya, spesifikasi skrip rendering dan kerja, engine di bawah tenda, versi, alat peramban tambahan, dll. Penting bagi seorang penguji untuk selalu mengingat popularitas menggunakan peramban tertentu di antara pengguna nyata produk untuk mendistribusikan tes dengan cara yang paling efisien. Paling populer: Google Chrome, Safari, Firefox, Opera, Internet Explorer.

Konsol Pengembang di Peramban


Penguji web harus dapat menggunakan konsol pengembang di browser (setidaknya bekerja dengan elemen pada halaman dan permintaan jaringan). Dalam hal bekerja dengan elemen halaman, tester harus memahami cara melokalisasikannya atau, jika perlu, mengubahnya, dan dalam kasus interaksi jaringan, dapat memahami urutan permintaan dan respons yang diterima. Idealnya, Anda perlu mengetahui berbagai metode http (GET, POST, OPTIONS, dan lainnya), ketahui kode respons (10X-50X), dapat membaca header dan badan jawaban.

HTML, CSS, JavaScript


Untuk membuat tester lebih memahami apa halaman web modern terbuat dan bagaimana mereka disusun, akan sangat berguna untuk memiliki setidaknya pemahaman dasar tentang HTML, CSS, dan JavaScript. Pengetahuan ini juga akan membantu melokalkan kesalahan yang terkait dengan elemen spesifik pada halaman, dengan cepat menemukannya dan, jika perlu, mengubahnya di sisi klien.

Pengujian backend


Alam semesta terpisah adalah pengujian backend. Dunia ini tanpa kerutan dan keindahan, tidak ada tempat untuk antarmuka grafis di dalamnya, hanya kursor yang berkedip-kedip di konsol, kumpulan teks dan logika aplikasi murni. Arah pengujian khusus, yang tidak selalu mudah bagi pemula. Biasanya membutuhkan pelatihan teknis yang lebih menyeluruh dari seorang spesialis di awal.

Model OSI


Dasar dari mana backend tester harus dimulai adalah model OSI. Terlepas dari kenyataan bahwa dalam kebanyakan kasus, penguji tidak mungkin menemukan level yang berguna di bawah level yang diterapkan dan representatif, alangkah baiknya jika dia memahami di mana level-level ini relatif terhadap yang lain, apa kekhususan mereka dan bagaimana mereka diterapkan.

SISA SABUN JSON-RPC


REST, - , . REST- -, , (HTTP, JSON, XML). SOAP ( XML, XSD, WSDL) JSON/XML-RPC, .


- . , , , .. , , . bash-, , .

cURL. Postman. SoapUI


REST API cURL, , . ( GUI) API Postman, . SOAP API, SoapUI ( REST API).


, SQL (MariaDB, MySQL, PostgreSQL, MS SQL). SQL. , « SQL ». , INSERT, SELECT, DELETE, UPDATE, WHERE, ORDER BY, JOIN, INNER JOIN, RIGHT JOIN, LEFT JOIN. , NoSQL (MongoDB, Cassandra). .

-


, , . , , . , , — , , .

IDE


(XCode iOS, Android Studio Android). , , , , . , IDE , .

HTTP/HTTPS-


- . - , (Charles, Fiddler, Wireshark), . Yaitu , . , , ( , ). , .


, , Fabric (Crashlytics), HockeyApp, TestFlight. , , , .

Otomasi Tes


, . , , , , . , , . , , , . , .


. — . .

:

— , - - Python , - Java . , .

:

, . (, , ..), ( ). , , . , , , ( ), .

:

, , . .

Python, Java, PHP, — Kotlin, Objective-C Swift.


, , (xUnit, nose, unittest, pytest, TestNG, Cucumber) , . , .


, . , . , Selenium WebDriver, iOS — XCUITest, Android Espresso UI Automator ( Google), — Robotium Selendroid. , , , , — . Appium Cucumber.


, , , . , , — Allure. , , .


, , , , , , . , , , . . Git, SVN, Mercurial, TFS. , Git . , commit, push, pull (force), fetch, checkout, branch, merge, rebase, revert.


, , - . , Jenkins, TeamCity, Bamboo. , - CI- , , unit-. , . , ( , ..) , .


, , . , , . , -, , , , . , , , , , 1% , , , . , , — .


, . , , , . — , , . , — , . ?


, — , : «, , , ». , . , , . , , . , — , — . , - , , . - .


. , , . , , , . , , , , .


, , — . — . . , , . — , , , . , , - . , , .


, , . , , , . — , , . , , . , , , , . Itu perlu! , .


, , , . , , -, , -, . — , . , , , .


— , . , . , , . , , , , .

Total




, IT , - , — . , — . , , , . , , , , .

Sekali lagi saya ingin mengingatkan Anda tentang pentingnya sifat tertentu untuk bekerja di bidang TI dan pengujian pada khususnya. Ingatlah bahwa Anda dapat mengirim siapa saja ke kursus dalam bahasa pemrograman dan DBMS, tetapi ke kursus tentang keinginan untuk pengembangan diri dan dedikasi, yang akan memungkinkan Anda untuk berhasil menyelesaikan kursus pertama, sayangnya, tidak ada yang akan berhasil.

Saya berharap artikel itu bermanfaat bagi mereka yang membacanya, apakah itu pemula atau spesialis berpengalaman, karena pilihan jalur pengembangan profesional di bidang pengujian cukup besar untuk tersesat di dalamnya. Biarkan saya mengingatkan Anda bahwa keseluruhan cerita ini adalah pendapat saya yang rendah hati, dan karena itu jangan menilai dengan ketat dan jangan memakai sandal. Saya akan berterima kasih atas umpan balik yang membangun.

Semua kualitas!

Source: https://habr.com/ru/post/id426759/


All Articles