Job Desk QA Engineer
- Menyusun dan Mengelola Rencana Pengujian:
- Menyiapkan dokumen rencana pengujian (test plan) yang mencakup tujuan pengujian, cakupan, pendekatan, dan sumber daya yang dibutuhkan.
- Mengidentifikasi kebutuhan pengujian berdasarkan spesifikasi fungsional dan teknis dari Odoo.
- Membuat dan Menjalankan Test Cases:
- Menulis test cases berdasarkan persyaratan yang diberikan oleh tim pengembang dan analis bisnis.
- Menjalankan test cases secara manual atau otomatis dan mencatat hasilnya.
- Pengujian Fungsional dan Non-Fungsional:
- Melakukan pengujian fungsional untuk memastikan semua fitur bekerja sesuai dengan spesifikasi.
- Melakukan pengujian non-fungsional, seperti pengujian kinerja (performance testing), keamanan (security testing), dan usability.
- Melaporkan dan Melacak Bug:
- Mengidentifikasi, mendokumentasikan, dan melaporkan bug atau masalah yang ditemukan selama pengujian.
- Bekerja sama dengan tim pengembang untuk memperbaiki masalah dan memastikan bahwa perbaikan telah diuji dan diverifikasi.
- Regresi Testing:
- Melakukan regresi testing untuk memastikan bahwa perubahan atau perbaikan kode tidak menimbulkan masalah baru.
- Otomatisasi Pengujian:
- Mengembangkan skrip otomatisasi untuk pengujian berulang guna meningkatkan efisiensi dan konsistensi pengujian.
- Pengujian Integrasi:
- Menguji integrasi antara Odoo dan sistem lainnya untuk memastikan semua komponen berfungsi dengan baik.
- UAT (User Acceptance Testing):
- Membantu tim bisnis atau pengguna akhir dalam menjalankan UAT dan memastikan bahwa aplikasi memenuhi kebutuhan bisnis mereka.
Hal-hal yang Perlu Diketahui tentang Odoo 17
- Fitur dan Modul Odoo:
- Familiarisasi dengan berbagai modul yang tersedia di Odoo, seperti CRM, HR, Akuntansi, dan Inventory.
- Memahami cara konfigurasi dan kustomisasi modul-modul tersebut.
- Arsitektur Odoo:
- Memahami arsitektur Odoo termasuk framework dasar, ORM (Object-Relational Mapping), dan model-data.
- Odoo Studio:
- Menggunakan Odoo Studio untuk kustomisasi tanpa kode (low-code) dan pengujian kustomisasi tersebut.
- API dan Integrasi:
- Memahami bagaimana Odoo berinteraksi dengan API dan cara menguji integrasi dengan sistem eksternal.
- Pengujian Database:
- Mengetahui cara melakukan pengujian pada data yang ada di database, termasuk migrasi data antara versi Odoo yang berbeda.
- Automated Testing Tools:
- Mengenal alat-alat pengujian otomatisasi yang kompatibel dengan Odoo, seperti Selenium atau PyTest.
- Best Practices:
- Mengikuti praktik terbaik dalam pengujian perangkat lunak, seperti menggunakan versi kontrol, menulis dokumen pengujian yang baik, dan menjalankan pengujian terus menerus (continuous testing).
Tools yang Bisa Digunakan
- JIRA atau Trello: Untuk manajemen proyek dan pelacakan bug.
- Selenium: Untuk pengujian otomatisasi.
- Postman: Untuk menguji API.
- Odoo Testing Framework: Odoo menyediakan framework testing tersendiri yang bisa digunakan.
Odoo Testing Framework merupakan bagian integral dari platform Odoo yang membantu QA dan pengembang melakukan pengujian terhadap modul dan fitur yang dikembangkan. Berikut adalah langkah-langkah dasar untuk menggunakan Odoo Testing Framework:
1. Memahami Struktur Testing di Odoo
Odoo menggunakan unittest dari Python untuk menjalankan tes. Tes ini biasanya terletak di dalam direktori tests di dalam modul Odoo.
2. Menulis Unit Test
Buat file Python baru di dalam direktori tests dalam modul Anda, misalnya test_example.py. Berikut adalah contoh dasar dari unit test di Odoo:
python Copy codefrom odoo.tests.common import TransactionCaseclass TestExample(TransactionCase):def setUp(self):super(TestExample, self).setUp()# Inisialisasi data yang diperlukan untuk pengujianself.example_model = self.env['example.model']def test_example_function(self):# Panggil fungsi yang akan diujiresult = self.example_model.example_function()# Periksa hasilnyaself.assertEqual(result, expected_value)
3. Menjalankan Tes
Untuk menjalankan tes, Anda bisa menggunakan perintah berikut dari direktori root Odoo:
sh
Copy code
./odoo-bin -d database_name --test-enable -i module_name
-d digunakan untuk menentukan nama database, --test-enable untuk mengaktifkan pengujian, dan -i untuk menginstall modul yang akan diuji.
4. Menggunakan Odoo Shell
Untuk pengujian yang lebih interaktif, Anda bisa menggunakan odoo shell untuk menjalankan kode Python langsung di lingkungan Odoo:
sh
Copy code
./odoo-bin shell -d database_name
5. Pengujian Data dengan Demo Data
Anda bisa menggunakan demo data untuk membantu dalam pengujian. Pastikan demo=True di file __manifest__.py modul Anda. Kemudian, Anda bisa menulis tes yang menggunakan data demo tersebut.
6. Menggunakan Odoo Testing Framework untuk Web Client
Odoo juga mendukung pengujian untuk antarmuka web dengan framework testing berbasis JavaScript. Tes-tes ini biasanya ditempatkan dalam direktori static/tests.
Contoh pengujian JavaScript:
javascript Copy codeodoo.define('my_module.tests', function(require) {'use strict';var FormView = require('web.FormView');var testUtils = require('web.test_utils');QUnit.module('my_module', function(hooks) {hooks.beforeEach(function() {this.data = { /* setup data for tests */ };});QUnit.test('simple test', function(assert) {assert.expect(1);var form = testUtils.createView({View: FormView,model: 'res.partner',data: this.data,arch: '<form><field name="name"/></form>',});assert.strictEqual(form.$('input').val(), 'Expected Value');});});});
7. Melihat Hasil Tes
Setelah menjalankan tes, Anda bisa melihat hasilnya di terminal atau log file. Hasil tes akan menunjukkan berapa banyak tes yang berhasil, gagal, atau terlewat.
8. Tips dan Praktik Terbaik
- Isolasi Tes: Pastikan setiap tes berjalan secara independen dan tidak bergantung pada tes lainnya.
- Mocking dan Stubbing: Gunakan mocking untuk menggantikan bagian dari sistem yang tidak ingin Anda tes secara langsung.
- Continuous Integration (CI): Integrasikan pengujian ke dalam pipeline CI/CD untuk memastikan pengujian otomatis pada setiap perubahan kode.
Dengan mengikuti langkah-langkah ini, Anda akan bisa menggunakan Odoo Testing Framework secara efektif untuk memastikan kualitas modul dan fitur yang dikembangkan.
