Rumah  >  Artikel  >  Peranti teknologi  >  Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

WBOY
WBOYke hadapan
2024-03-15 15:46:111053semak imbas

Mengenai pengarang

Thales Fu, pengurus kanan R&D Ctrip, komited untuk mencari cara yang lebih baik untuk menggabungkan AI dan kejuruteraan untuk menyelesaikan masalah kehidupan sebenar.

Pengenalan

Dalam kitaran pembangunan perisian yang cepat berulang, ujian automatik antara muka pengguna (UI) telah menjadi kunci untuk meningkatkan kecekapan dan memastikan kualiti produk. Walau bagaimanapun, apabila aplikasi menjadi semakin kompleks, kaedah automasi UI tradisional secara beransur-ansur mendedahkan batasannya. Automasi UI dipacu AI ada di sini, tetapi ia masih menghadapi cabaran ketepatan dan kebolehpercayaan. Dalam konteks ini, artikel ini mencadangkan perspektif yang inovatif: melalui teknologi penyahpepijatan masa nyata, keberkesanan skrip automasi UI yang ditulis oleh AI boleh dipertingkatkan dengan ketara.

Masalah ini bukan sekadar cabaran teknikal, ia berkaitan cara mempercepatkan penghantaran perisian sambil memastikan kualiti perisian. Artikel ini akan meneroka cara penyahpepijatan masa nyata boleh membantu AI memahami dan melaksanakan skrip ujian UI dengan lebih tepat, dan cara kaedah ini boleh membawa perubahan revolusioner kepada pembangunan perisian. . Walaupun kemajuan teknologi yang berterusan, kaedah automasi UI tradisional masih menghadapi cabaran apabila berhadapan dengan antara muka aplikasi yang berubah dengan pantas. Apabila aplikasi menjadi lebih kompleks dan dinamik, pendekatan tradisional mungkin tidak mencukupi. Oleh itu, jurutera sedang mencari penyelesaian yang lebih fleksibel dan boleh dipercayai untuk meningkatkan kecekapan dan kebolehpercayaan automasi UI. Alat dan teknologi automasi UI generasi baharu muncul untuk

Menurut hasil tinjauan industri, menulis skrip ujian secara manual adalah tidak cekap dan mengambil banyak masa untuk berfungsi semula apabila kemas kini digunakan. Penyelidikan menunjukkan bahawa mengekalkan skrip ujian automasi UI mungkin menyumbang 60% hingga 70% daripada keseluruhan kerja ujian. Dalam persekitaran pembangunan tangkas, ia boleh mengambil masa lebih daripada 100 jam untuk menulis semula dan menguji skrip automasi sedia ada untuk setiap kemas kini aplikasi. Kos penyelenggaraan yang tinggi ini menyerlahkan ketidakcekapan dan penggunaan sumber kaedah automasi UI tradisional.

2. Pengenalan Pembangunan Dipacu Tingkah Laku BDD

Pembangunan dipacu Tingkah Laku (BDD) ialah amalan pembangunan perisian tangkas yang menggalakkan komunikasi antara pembangun, penguji dan pihak berkepentingan bukan teknikal projek perisian dengan lebih berkesan. Berkomunikasi dengan lebih berkesan Timun ialah alat popular untuk melaksanakan metodologi BDD, yang membolehkan ahli pasukan menulis kes ujian eksplisit yang boleh dilaksanakan menggunakan bahasa semula jadi.

Timun menggunakan bahasa khusus domain (DSL) yang dipanggil Gherkin, yang sangat mudah dibaca dan membolehkan orang bukan teknikal memahami tujuan dan kandungan ujian. Senario ujian ditulis dalam bentuk satu siri pernyataan Diberi-Apabila-Kemudian, yang menerangkan dengan jelas bagaimana sistem harus bertindak balas dalam keadaan tertentu.

Sebagai contoh, fungsi troli beli-belah tapak web beli-belah dalam talian mungkin mempunyai senario Gherkin berikut:

Pendekatan ini memanfaatkan keupayaan penerangan bahasa semula jadi untuk memudahkan komunikasi dan komunikasi yang lebih baik antara pasukan teknikal dan bukan teknikal faham. Pada masa yang sama, senario ujian bahasa semula jadi juga memainkan peranan dokumentasi projek, membantu ahli pasukan baharu dengan cepat memahami fungsi projek. Ini membolehkan kakitangan bukan teknikal untuk mengambil bahagian secara langsung dalam proses penulisan dan pengesahan kes ujian, memastikan kerja pembangunan sejajar rapat dengan keperluan perniagaan.

Tetapi ia juga mempunyai batasan Walaupun senario ujian ditulis dalam bahasa semula jadi, pelaksanaan (definisi langkah) di belakang setiap langkah masih memerlukan kakitangan teknikal untuk menulisnya dalam bahasa pengaturcaraan. Ini bermakna melaksanakan logik ujian boleh melibatkan usaha pengekodan yang kompleks. Apabila aplikasi berkembang dan berubah, menyelenggara dan mengemas kini langkah ujian yang sepadan boleh menjadi membosankan. Terutama apabila UI kerap berubah, definisi langkah yang berkaitan juga perlu dikemas kini dengan sewajarnya. Terdapat juga had fleksibiliti dan kebolehsuaian: Skrip ujian timun bergantung pada langkah dan struktur yang telah ditetapkan, yang boleh mengehadkan fleksibiliti ujian. Untuk sesetengah senario ujian yang kompleks, melaksanakan logik ujian tertentu mungkin memerlukan cara kreatif untuk memintas pengehadan rangka kerja.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

3. Aplikasi semasa AI dalam automasi UI

Dalam beberapa tahun kebelakangan ini, teknologi AI telah disepadukan ke dalam automasi UI, terutamanya selepas kemunculan model besar yang diwakili oleh GPT, kerana ia sendiri mempunyai penjanaan Kod kemampuan. Industri juga telah mula mencuba untuk menjana secara langsung bahasa penerangan kes ujian Gherkin ke dalam kod ujian melalui model besar.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Namun, kod ujian yang dijana oleh model besar semasa tidak dapat memenuhi jangkaan sepenuhnya Terdapat beberapa masalah utama: pertama, skrip yang dihasilkan mungkin tidak dapat dijalankan kerana ralat sintaks; dilindungi dengan tepat. Kes penggunaan memerlukannya untuk menguji pusat pemeriksaan. Dalam amalan kami, kadar kejayaan pada percubaan pertama adalah tidak lebih daripada 5%.

Selepas ia gagal dijana, orang ramai perlu campur tangan dan melakukan beberapa kerja pembaikan. Termasuk: penyahpepijatan, mengubah suai kes penggunaan untuk menjana semula atau mengubah suai terus skrip yang dijana.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Dan tugasan ini sendiri juga memerlukan tenaga kerja yang ramai, yang bertentangan dengan niat asal sistem kami untuk menjana skrip ujian secara automatik melalui AI.

4. AI secara automatik menulis skrip ujian yang berkesan

Untuk menyelesaikan masalah ini, kami telah memikirkan semula keseluruhan proses penjanaan skrip ujian AI.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Kami juga menganggap kerja orang ramai bersama-sama. Orang telah melakukan kerja penyahpepijatan dan pengubahsuaian dalam sistem, jadi bolehkah AI melakukan bahagian kerja ini dengan sendirinya, dan biarkan AI nyahpepijat dan mengubah suai kod ralat yang dihasilkannya?

Oleh itu, kami telah melaraskan reka bentuk sistem untuk membolehkan AI melakukan tugas ini secara autonomi dan bukannya manusia. Akhirnya, untuk semua kes penggunaan halaman butiran pesanan hotel Ctrip, 83.3% daripada kes berjaya dijana tanpa penyertaan sesiapa Semasa proses penjanaan skrip, pepijat ditemui dalam 8% kes. Kami menjana kes penggunaan ini tiga kali berturut-turut, dengan kadar kejayaan masing-masing 84.3%, 81.4% dan 83.3% Sistem ini stabil dan berkesan. . kawasan pengoptimuman tempahan untuk memunculkan lapisan terapung harga.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Kemudian semak sama ada butiran yuran termasuk VIP Black Diamond.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Kod ujian akhir yang dijana adalah seperti berikut:

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

5. Perlaksanaan Sistem

adalah keseluruhan seni bina sistem. Bahagian teras sistem ialah program rangka kerja langchain. Ia akan mengakses model besar, dan kami telah melengkapkannya dengan pelbagai alat, yang terbahagi terutamanya kepada dua kategori, satu ialah alat untuk mendapatkan maklumat halaman, dan satu lagi ialah alat penyahpepijatan. Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Langchain secara automatik akan menggunakan alat pemerolehan maklumat halaman untuk mendapatkan data halaman seperti yang diperlukan untuk menentukan kawalan khusus yang diperlukan untuk operasi semasa menjana kod. Kemudian gunakan alat penyahpepijatan untuk melaksanakan kod pada telefon mudah alih dan nilai sama ada kod yang anda hasilkan adalah betul berdasarkan maklum balas penyahpepijatan.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

5.1 Kata-kata gesaan

Selepas kami mempunyai struktur asas, kami memerlukan kata-kata yang pantas untuk menggabungkan alatan ini dan membolehkan AI memahami cara ia berfungsi. Dari segi struktur, kata gesaan kami mengandungi beberapa bahagian: pertama, beritahu AI bagaimana ia harus berfikir dan berfungsi, kedua, beritahu ia untuk menyahpepijat setiap kenyataan yang dijana melalui Nyahpepijat, beritahu sekali lagi apakah format output, dan akhirnya beritahu ia Teks lengkap kes penggunaan yang akan dikendalikan oleh AI.

Untuk memberitahu AI bagaimana ia harus berfikir dan berfungsi, pengembangan termasuk bahagian berikut: Pertama, lihat modul apa yang ada pada halaman, modul mana yang sepatutnya menjadi langkah yang saya mahu kendalikan, kawalan dan komponen apa yang ada dalam modul ini , dan perkara yang saya mahu kendalikan pada masa ini Kawalan atau komponen manakah itu, apakah tindakan yang ingin saya kendalikan, dan apakah sintaks khas yang boleh saya gunakan, dan kemudian menjana pernyataan.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

5.2 Alat Nyahpepijat

Inti alat penyahpepijatan adalah untuk menyambung dari jauh ke telefon melalui alat adb. Selepas menyambung, kami boleh menghantar arahan yang dijana oleh AI ke telefon mudah alih untuk dijalankan, dan membaca keputusan yang sedang dijalankan kepada AI, membolehkan AI menilai sama ada arahan yang dijananya adalah betul.

5.3 Alat pemerolehan maklumat halaman

Tujuan utama alat pemerolehan maklumat halaman adalah untuk membantu AI menentukan kandungan yang akan dikendalikan seperti yang ditulis dalam kes penggunaan BDD dan ID khusus kawalan yang ia mahu beroperasi ialah Apa, dengan ID, arahan program seterusnya boleh dijana berdasarkan ID. Untuk mendapatkan ID, kami memerlukan perpustakaan kawalan dan komponen Teras perpustakaan ini ialah ID setiap kawalan dan komponen serta penerangannya. Dengan dua kandungan ini, AI boleh dibantu untuk meneka kawalan mana yang diperlukan berdasarkan penerangan kawalan selepas membaca kes penggunaan BDD.

Untuk mencapai tujuan ini, kami telah menubuhkan perpustakaan kawalan halaman. Selain ID dan perihalan setiap kawalan pada halaman, pustaka ini juga mengandungi hubungan antara halaman dan komponen serta hubungan antara komponen dan kawalan. Ia boleh memudahkan AI untuk membuat pertanyaan langkah demi langkah.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Pustaka kawalan itu sendiri dijana berdasarkan analisis statik kod kami melalui kerja. Walau bagaimanapun, dalam aplikasi sebenar, kerana kawalan yang dipaparkan pada halaman pada masa ini akan berbeza bergantung pada keadaan pemandangan, kawalan pada halaman akan disembunyikan dalam beberapa senario. Oleh itu, alat pemerolehan maklumat halaman akan bersilang dengan kawalan sedia ada pada halaman dengan kawalan yang ditanya dalam pustaka kawalan, dengan itu mendapatkan kawalan yang sebenarnya dipaparkan pada halaman semasa dan maklumat perihalannya.

5.4 Pemisahan Lanjut AI

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Selepas menyelesaikan tugasan ini, AI pada asasnya boleh melakukan bahagian kuning gambar di atas secara automatik, iaitu kerja manusia Kadar kejayaan penjanaan juga telah meningkat daripada 5% kepada 55%, tetapi kadar kejayaan 55% masih tidak mencukupi.

Kami terus menganalisis kes-kes yang gagal. Didapati bahawa masalah utama adalah halusinasi AI Walaupun kata-kata cepatnya agak terperinci, AI kadang-kadang tidak memprosesnya seperti yang diperlukan, dan kadang-kadang bercakap karut sendiri.

Kesimpulan kami ialah AI diberi terlalu banyak tanggungjawab dan ia mempunyai terlalu banyak perkara untuk dipertimbangkan. Bukannya ia tidak mempunyai token yang mencukupi, tetapi jika ia terpaksa melakukan terlalu banyak perkara, ia akan dilupakan dan tidak dapat melengkapkan keperluan dengan tepat. Oleh itu, kami mempertimbangkan pemisahan, dan masih menggunakan fungsi langchain Memandangkan AI boleh melengkapkan fungsi melalui alat, mengapa alat ini sendiri tidak boleh menjadi AI?

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Boleh belah lagi.

Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata

Melalui pemisahan ini, kami membuat kerja yang setiap AI perlu pertimbangkan kurang dan lebih mudah, dan juga menjadikannya proses dengan lebih tepat, dan kadar kejayaan generasi akhir meningkat kepada lebih daripada 80%.

VI. Perkembangan Susulan

Pada masa ini, melalui kerja kami, AI boleh menjana kod ujian automatik dengan kadar kejayaan kira-kira 80% tanpa penyertaan manusia Ini sangat menarik, tetapi masih terdapat banyak masalah teruskan menyelesaikannya.

1) Kos panggilan model besar masih tinggi adakah cara yang lebih baik untuk menyiapkan kerja dengan kos yang lebih rendah?

2) Pada masa ini terdapat beberapa operasi atau pengesahan yang sukar dikendalikan Kadar kejayaan sebanyak 80% masih mempunyai banyak ruang untuk penambahbaikan, dan orang ramai masih perlu menyemak hasil yang dihasilkan.

3) Di samping itu, terdapat ruang untuk penambahbaikan dalam aspek-aspek lain, yang patut kita teruskan penambahbaikan.

Atas ialah kandungan terperinci Biarkan AI menulis automasi UI yang berkesan dengan penyahpepijatan masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam