Diffblue
ທີມງານຈາກ Oxford ສ້າງຕັ້ງຂຶ້ນ ເຄື່ອງມືອັດຕະໂນມັດສຳລັບການທົດສອບຫົວໜ່ວຍ (Unit Test) Java ລະດັບວິສາຫະກິດ. ນຳໃຊ້ການຮຽນຮູ້ແບບເສີມກຳລັງ (Reinforcement Learning) ແທນການຄາດເດົາແບບສ້າງສັນ, ຊ່ວຍສຳຫຼວດ ແລະ ບຳລຸງ
Diffblue ແມ່ນຫຍັງ
Diffblue ແມ່ນເຄື່ອງມືລະດັບວິສາຫະກິດທີ່ສ້າງຂຶ້ນໂດຍທີມງານຈາກມະຫາວິທະຍາໄລ Oxford ເຊິ່ງສຸມໃສ່ສິ່ງທີ່ທຸກຄົນຮູ້ວ່າມີຄວາມສຳຄັນ ແຕ່ບໍ່ມີໃຜຢາກເຮັດ: ນັ້ນຄືການຂຽນ Unit Test ໃຫ້ກັບ Java. ຫົວໃຈຫຼັກຂອງມັນແມ່ນຕົວແທນການທົດສອບອັດຕະໂນມັດ Diffblue Cover, ສາມາດສ້າງ Unit Test ໃນຂະໜາດໃຫຍ່ສຳລັບ Codebase ຂອງ Java ທີ່ມີຂະໜາດໃຫຍ່ໄດ້, ແລະ ຍັງສາມາດບຳລຸງຮັກສາການທົດສອບເຫຼົ່ານີ້ຕາມການປ່ຽນແປງຂອງໂຄດໄດ້ນຳອີກ.
ມັນມີຄວາມແຕກຕ່າງພື້ນຖານຈາກເຄື່ອງມືທົ່ວໄປທີ່ໃຊ້ LLM ເພື່ອສ້າງການທົດສອບ: Diffblue ໃຊ້ການຮຽນຮູ້ແບບເສີມກຳລັງ (Reinforcement Learning), ບໍ່ແມ່ນການຄາດເດົາຈາກ ພາສາໂມເດວແບບສ້າງສັນ (Generative Language Model). ນີ້ໝາຍຄວາມວ່າການທົດສອບທີ່ມັນສ້າງຂຶ້ນແມ່ນອີງໃສ່ການສຳຫຼວດພຶດຕິກຳຕົວຈິງຂອງໂຄດ, ບໍ່ແມ່ນ "ຂໍ້ຄວາມທີ່ເບິ່ງຄືວ່າເປັນການທົດສອບ", ເຮັດໃຫ້ມີຄວາມໜ້າເຊື່ອຖື ແລະ ສາມາດນຳມາໃຊ້ຊ້ຳໄດ້ສູງກວ່າໃນສະພາບແວດລ້ອມລະດັບວິສາຫະກິດ. ສຳລັບລະບົບ Java ເກົ່າທີ່ມີຂະໜາດຫຼາຍແສນແຖວ ແລະ ອັດຕາການກວມເອົາການທົດສອບ (Test Coverage) ຕໍ່າເລື້ອຍມາ, ຄວາມສາມາດໃນການສ້າງການທົດສອບອັດຕະໂນມັດໃນຂະໜາດໃຫຍ່ນີ້ແມ່ນຄືກັບການຊ່ວຍຊີວິດ.
ຄຸນສົມບັດ ແລະ ການນຳໃຊ້
ສະໜາມຮົບຫຼັກຂອງ Diffblue ແມ່ນລະບົບ Java ເກົ່າຂອງວິສາຫະກິດຂະໜາດໃຫຍ່. ລະບົບປະເພດນີ້ມັກຈະຖືກນຳໃຊ້ມາຫຼາຍປີ, ບໍ່ກ້າແກ້ໄຂເພາະວ່າບໍ່ມີຕາໜ່າງປ້ອງກັນການທົດສອບ, ແກ້ໄຂພຽງແຖວเดียว ກໍ່ຢ້ານລະບົບພັງ. Diffblue ເຂົ້າມາຊ່ວຍເພີ່ມການທົດສອບ, ເຊິ່ງທຽບເທົ່າกับการສ້າງຕາໜ່າງຄວາມປອດໄພສຳລັບການປັບປຸງໂຄດ (Refactoring), ການອັບເກຣດ ແລະ ການພັດທະນາໃນອະນາຄົດ, ເຮັດໃຫ້ທີມງານກ້າລົງມືເຮັດ.
ມັນຍັງເໝາະສົມສຳລັບການນຳເຂົ້າສູ່ຂະບວນການ CI/CD, ເຮັດໃຫ້ການສ້າງ ແລະ ການບຳລຸງຮັກສາການທົດສອບເປັນແບບອັດຕະໂນມັດ, ແທນທີ່ຈະໃຫ້ວິສະວະກອນຍາດເວລາowners ມາຂຽນດ້ວຍມື. ສຳລັບຂະແໜງການເງິນ ແລະ ປະກັນໄພ ທີ່ຢູ່ພາຍໃຕ້ການຄວບຄຸມ ແລະ ມີຄວາມຕ້ອງການສູງຕໍ່ຄຸນນະພາບ ແລະ ການປະຕິບັດຕາມກົດລະບຽບ, ການສ້າງການທົດສອບແບບອັດຕະໂນມັດທີ່ສາມາດນຳມາໃຊ້ຊ້ຳໄດ້ແມ່ນເໝາະສົມທີ່ສຸດ. ຕ້ອງສັງເກດວ່າອັນນີ້ແມ່ນຜະລິດຕະພັນລະດັບວິສາຫະກິດແບບເສຍເງິນ, ເຊິ່ງຕຳແໜ່ງຂອງມັນບໍ່ແມ່ນສຳລັບການໃຊ້ຫຼິ້ນສ່ວນຕົວ, ແຕ່ແມ່ນສຳລັບອົງກອນທີ່ມີຊັບສິນ Java ຂະໜາດໃຫຍ່ ແລະ ເຕັມໃຈລົງທຶນໃສ່ Test Coverage.
ຄຸນສົມບັດເດ่น
- ສ້າງ Unit Test ໃຫ້ Java ລະດັບວິສາຫະກິດແບບອັດຕະໂນມັດ
- ນຳໃຊ້ການຮຽນຮູ້ແບບເສີມກຳລັງແທນການຄາດເດົາແບບສ້າງສັນ, ມີຄວາມໜ້າເຊື່ອຖື ແລະ ສາມາດນຳມາໃຊ້ຊ້ຳໄດ້
- ບຳລຸງຮັກສາການທົດສອບທີ່ມີຢູ່ໂດຍອັດຕະໂນມັດເມື່ອໂຄດມີການປ່ຽນແປງ
- ຈັດການກັບ Codebase ເກົ່າຂະໜາດໃຫຍ່ໄດ້
- ສາມາດເຊື່ອມໂຍງເຂົ້າກັບຂະບວນການ CI/CD ເພື່ອປະຕິບັດງານແບບອັດຕະໂນມັດ
ຂໍ້ດີ
- ເສັ້ນທາງການຮຽນຮູ້ແບບເສີມກຳລັງເຮັດໃຫ້ຜົນການທົດສອບມີຄວາມສະຖຽນ ແລະ ສາມາດນຳມາໃຊ້ຊ້ຳໄດ້
- ເພີ່ມການທົດສອບໃຫ້ລະບົບເກົ່າ, ສ້າງຕາໜ່າງຄວາມປອດໄພສຳລັບການປັບປຸງໂຄດ
- ຄວາມສາມາດໃນການຂະຫຍາຍຂະໜາດສູງ, ເໝາະສຳລັບໂຄງການຂະໜາດໃຫຍ່ທີ່ມີຫຼາຍແສນແຖວ
ຂໍ້ເສຍ
- ເປັນຜະລິດຕະພັນລະດັບວິສາຫະກິດແບບເສຍເງິນ, ບຸກຄົນທຳມະດາ ແລະ ທີມງານນ້ອຍຍາກທີ່ຈະຈ່າຍໄຫວ
- ສຸມໃສ່ພາສາ Java ພຽງຢ່າງດຽວ, ຖ້າ 技術棧 (Tech Stack) ບໍ່ກົງກັນກໍ່ບໍ່ສາມາດໃຊ້ໄດ້
- ການທົດສອບທີ່ສ້າງຂຶ້ນອັດຕະໂນມັດຍังຕ້ອງການໃຫ້ມະນຸດກວດສອບວ່າຈຸດປະສົງທາງທຸລະກິດຖືກຕ້ອງແລ້ວບໍ
ກໍລະນີການນำໃຊ້
- ເພີ່ມອັດຕາການກວມເອົາ (Coverage) ໃຫ້ກັບລະບົບ Java ເກົ່າຂະໜາດໃຫຍ່ທີ່ບໍ່ມີການທົດສອບ
- ສ້າງຕາໜ່າງຄວາມປອດໄພກ่อนທີ່ຈະປັບປຸງໂຄດ ຫຼື ທັນສະໄໝລະບົບ
- ຄວາມຕ້ອງການການທົດສອບຕາມກົດລະບຽບສຳລັບຂະແໜງການເງິນ ແລະ ປະກັນໄພ
- ເຊື່ອມໂຍງ CI/CD ເພື່ອສ້າງ ແລະ ບຳລຸງຮັກສາການທົດສອບແບບອັດຕະໂນມັດ
ໝາຍເຫດຈากบັນນາທິການ
ໃນຂະນະທີ່ທຸກຄົນກຳລັງມุ่งໜ້າໄປຫາ Generative LLM, Diffblue ຍັງຄົງຍຶດໝັ້ນໃນການໃຊ້ການຮຽນຮູ້ແບບເສີມກຳລັງເພື່ອເຮັດການທົດສອບ Java, ເຊິ່ງເຮັດໃຫ້ມັນສາມາດຕັ້ງຫຼັກໝັ້ນໃນດ້ານຄວາມໜ້າເຊື່ອຖືຂອງວິສາຫະກິດໄດ້. ມັນເປັນເຄື່ອງມືທີ່ສະເພາະເຈາະຈົງ, ຕ້ອງເສຍເງິນ, ແລະ ບໍ່ໄດ້ເອົາໃຈນັກພັດທະນາບຸກຄົນ, ແຕ່ມັນແມ່ນເຄື່ອງມືທີ່ຖືກຕ້ອງສຳລັບອົງກອນທີ່ຖືຊັບສິນ Java ຂະໜາດໃຫຍ່. ພວກເຮົາໃຫ້ 4.1 ຄະແນນ.
ຄຳຖາມທີ່ພົບເລື້ອຍ
Diffblue ແຕກຕ່າງจากการໃຊ້ LLM ສ້າງການທົດສອບແນວໃດ?
ມັນໃຊ້ການຮຽນຮູ້ແບບເສີມກຳລັງເພື່ອສຳຫຼວດພຶດຕິກຳຕົວຈິງຂອງໂຄດມາສ້າງການທົດສອບ, ແທນທີ່ຈະອາໄສການຄາດເດົາຈາກໂມເດວພາສາ, ເຊິ່ງເຮັດໃຫ້มีความໜ້າເຊື່ອຖື ແລະ ສາມາດນຳມາໃຊ້ຊ້ຳໄດ້ສູງກວ່າໃນສະພາບແວດລ້ອມລະດັບວິສາຫະກິດ.
ມັນຮອງຮັບສະເພາະ Java ບໍ?
ແມ່ນແລ້ວ, Diffblue ສຸມໃສ່ລະບົບนิเวศ (Ecosystem) ຂອງ Java ໂດຍສະເພາະ, ຖ້າລະບົບຂອງທ່ານບໍ່ແມ່ນ Java ກໍ່จะไม่ສາມາດໃຊ້ງານໄດ້.