Shared library คืออะไร และทำไมเราจึงควรใช้ในทีมและองค์กร วันนี้อยากจะมาเล่าเรื่อง Doppio Common Library

Doppio_Toasty-EDlT0R

Other

March 24, 2026

Table of Content

สวัสดีครับ บทความนี้อยากจะมาแชร์ไอเดียซึ่งหลายๆ คนอาจจะมีประสบการณ์กับอะไรพวกนี้มาอยู่แล้ว แต่มือใหม่ในด้าน Automation หลายๆ คน อาจจะยังไม่รู้จัก หรือยังไม่เข้าใจว่ามันคืออะไร บทความนี้ผมจะมาอธิบายให้ฟังกันครับ

จุดเริ่มต้น

หลายๆ คนที่ทำ automation อาจจะเคยประสบพบเจอกับเหตุการณ์ว่า พอเราย้ายไปทำโปรเจค automation อันใหม่แล้วบางทีเราก็มักจะเจอกับสิ่งที่เราเคยทำไปแล้ว ยกตัวอย่างเช่น

  1. ตอนอยู่โปรเจค A ฉันก็ต้องทำเรื่องการ download PDF ลงมาจากหน้าเว็บ แล้วก็ทำการ verify ว่าใน PDF มีข้อความที่ระบุหรือไม่
  2. ตอนอยู่โปรเจค X ฉันก็เคยต้องทำการตรวจสอบว่า บนหน้าเว็บหรือหน้าแอพที่ฉันเปิดอยู่ มันมีรูปนี้แสดงอยู่หรือเปล่า (Image processing)

และเหตุการณ์อื่นๆ ในลักษณะคล้ายกัน คือ เรา หรือเพื่อนร่วมทีมของเราที่อาจจะอยู่คนละโปรเจคหรือคนละทีม ได้เจอโจทย์คล้ายๆกันมาบ้างแล้ว และสิ่งที่เราต้องการในสถานการณ์นี้ก็คือ ทำยังไงให้เราสามารถสิ่งที่เราหรือใครสักคนในองค์กรเราเคยทำมาแล้ว ให้ได้เร็ว ไม่ต้องไปเสียเวลาเหมือนทำใหม่อีกรอบ ณ จุดเริ่มต้น (แบบตั้งไข่เลยนะ) เรามักจะมีประโยคคลาสสิคที่เราส่งไปให้เพื่อน “เฮ้ยๆ ขอโค้ดหน่อยดิ” , “เฮ้ยๆ ไป copy ได้ที่ repo ไหนบ้าง” ประมาณนี้ ทีนี้ถามว่ามันก็ตอบโจทย์ที่เราต้องการได้นะ ก็คือ ไม่ต้องเสียเวลาไปทำใหม่ แต่มันก็มีข้อเสียที่ยิ่งใหญ่อยู่ก็คือ
การที่เราจะต้อง copy กันต่อๆ ไปเรื่อยๆ มันจะมีปัญหาว่า

  1. โค้ดมีบั้ก แล้วก็ copy ไปใช้ต่อๆ กันไปจน track กันไม่ได้ว่า ใครใช้เวอร์ชั่นมีบัค ใครใช้เวอร์ชั่นปรับปรุงแล้ว และ version ปรับปรุงแล้วก็อาจจะแตกแขนงออกไปเป็น ปรับปรุงแบบ A , ปรับปรุงแบบ B , ปรับปรุงแบบ C
  2. ไม่มี standard ของ feature นั้นๆ เช่น มี keyword หรือ function ที่เอาไว้ตรวจสอบ pdf พอไม่มี standard กลายเป็นในทีมหรือในองค์กรอาจจะมี คีย์เวิดที่ทำหน้าที่เดียวกัน 5–6 แบบ แต่ละแบบเขียนต่างกัน รับ argument ต่างกัน พอคนย้ายโปรเจ็คสลับที่กัน ก็จะไม่สามารถทำงานได้ต่อเนื่อง เพราะต้องเสียเวลาเรียนรู้ว่า ของทีมนี้เค้าทำยังไงนะ ไม่เห็นเหมือนตอนทีมชั้นทำ PDF เลย

Solution

จากปัญหาข้างต้นของการ copy โค้ดไปมา มันก็เลยมีไอเดียที่ใช้ได้ดีและแพร่หลาย นั่นก็คือ การทำ “Shared Library” หรือ “Shared Module” ขึ้นมาไว้ใช้ตรงกลาง ใครที่มาจากสายพวก Development จะคุ้นเคยดีกับคำว่า Don’t reinvent the wheel ก็คือ ถ้ามันมีคนสร้างล้อรถเอาไว้แล้ว พวกแกก็จงอย่าเสียเวลาไปสร้างล้อรถอีก ไปเอาล้อรถที่คนอื่นเค้าทำไว้แล้วมาใช้ประกอบเป็นรถไปเลย ถ้าให้ยกตัวอย่างก็เหมือนการที่คุณทำ Automate web โดยใช้ SeleniumLibrary แล้วมันก็มีคนทำ Keyword พร้อมใช้ในการ Click , Input Text อะไรมาไว้ให้แล้ว คุณก็แค่ไปหยิบมาใช้ประกอบร่างทำเป็น testcases ซึ่งสิ่งที่เราจะพูดถึงวันนี้มันก็คือการทำ Library ขึ้นมาไว้ใช้ตรงกลางแล้วแชร์กันระหว่างทีมภายในบริษัท ใน Doppio เราเรียก Library นี้ว่า Doppio Common Library (แต่ในบริษัทไม่มีใครเรียกชื่อนี้เลย เพราะมันยาว มันจะถูกเรียกติดปากว่า “Dobby”) , สำหรับ concept ของ Dobby นั้นก็ simple เรียบง่ายมากก็คือ มันจะเป็น Library ที่คนในบริษัท สามารถทำการ pip install ลงมาในเครื่องได้ง่ายๆ เหมือนพวก SeleniumLibrary และข้างในก็จะมี keyword ที่จะต้องใช้กันบ่อยๆไว้มากมาย เพื่อให้คนที่เอาไปใช้ ใช้งานได้เลยไม่ต้องเสียเวลาไปทำเอง

บางส่วนของ Keyword ที่ไว้พร้อมให้ใช้ทำ Mobile App automation ในDobby
บางส่วนของ Keyword ที่ไว้พร้อมให้ใช้ทำ Web Automation ในDobby
บางส่วนของ keyword ที่มีไว้ให้พร้อมใช้ในงานทั่วไป ใน Dobby

หลักการทำงานของมันคือยังไง

จริงๆ หลักการทำงานของมันก็ง่ายๆ เพราะมันก็เป็นแค่ Code ชุดนึง ที่ประกอบไปด้วย Python กับ Robot framework และเอาไปไว้บน repository ที่ใดที่หนึ่งเอาไว้เก็บชุดของโค้ด สิ่งที่อาจจะยากขึ้นมาหน่อยคือพยายามทำให้มี workflow ในการทำงานที่เมื่อมีการออกเวอร์ชั่นใหม่ ไม่ว่าจะเป็นการแก้บัค หรือเพิ่มฟีเจอร์ใหม่ๆ แล้วเราสามารถจัดการมันได้อย่างเป็นระเบียบและใช้เวลาน้อยที่สุด จึงได้ออกมาตาม workflow การทำงานด้านล่าง

Workflow ในการ Release version ใหม่ของ Dobby ที่ Doppio
  • เริ่มต้นจากสมาชิกคนใดก็ได้ของ Doppio เกิดไอเดียขึ้นมาว่า อยากจะเพิ่มฟีเจอร์นี้ลงไปใน Dobby project หรือ ไปเจอว่ามีบัค และอยาก contribute เพื่อแก้บัคนั้น สมาชิกคนนั้นก็ clone source code ทำการแก้ไข แล้วเปิด Merge request มาเหมือนการทำ automation ทั่วไป
  • ตัว Automated unit test จะทำการรันเทสโดยอัตโนมัติเพื่อตรวจสอบว่า changes ที่ทำการเพิ่มลงไปนั้นไม่ได้ไปทำให้ฟีเจอร์ใดๆ มีปัญหา
  • หลังจากนั้นโค้ดจะถูกรีวิวโดย Tech lead ทั้งในแง่ของการตั้งชื่อ keyword การใส่ Unit test รวมถึง Description ที่จะถูกเอาไป Gen เป็น keyword documentation
  • เมื่อ Code review ผ่าน โค้ดจะถูก merge เข้าสู่ branch หลักและหลังจากนั้น Jenkins จะทำการ trigger การ auto build bundle package โดยอัตโนมัติ (ถ้าใครไม่เข้าใจคำว่า bundle package ให้คิดง่ายๆ ว่า คือ package ที่พร้อมให้คน pip install ลงไปใช้)
  • หลังจากที่ตัว bundle package ถูก build แล้ว จะถูกนำไปวางไว้ที่ private central repository โดยมีเลข version ที่ถูก auto increase และรอการดาวน์โหลดไปใช้งาน
  • นอกจากนี้ตัว Jenkins จะทำการส่ง Slack notification ไปเพื่อประกาศให้ทุกคนในทีม /บริษัทรู้ว่า มี Dobby version ใหม่แล้วน้า มีฟีเจอร์อะไรใหม่ เพื่อให้ทุกคนมี visibility ร่วมกัน
  • และตัว Jenkins ยังจะมีการทำ Keyword document โดยอัตโนมัติ และ publish ขึ้นสู่หน้าเว็บเพื่อเป็น Reference สำหรับคนใช้งาน ถ้าใครอยากดูว่าตัว Document หน้าตาเป็นยังไง ก็ลองไปดูได้ที่ https://doppiotech.gitlab.io/dobbycommonlibrary/
    ปล: ตอนนี้เรายังไม่ได้เปิดรับ contributor จากข้างนอก และ ยังไม่ได้เปิดให้บุคคลทั่วไปสามารถ download dobby ได้นะครับ แต่ก็มีโอกาสในอนาคต
ตัวอย่างหน้า Info web page และ Keyword document สำหรับเวอร์ชั่นต่างๆ ของ Dobby
สร้าง Visibility ให้ทุกคนเห็นร่วมกันผ่าน Slack

ข้อดี / ข้อควรระวัง

ข้อดี

  1. แก้ปัญหาโค้ดกระจัดกระจาย copy โค้ดกันไปมา โค้ดบินว่อนทั่วบริษัทได้เป็นอย่างดี
  2. มี Process ในการ release version ใหม่ เพื่อช่วยสร้าง visibility ให้กับทั้งทีม/องค์กร พร้อมทั้ง Document ที่ช่วยให้ผู้ใช้นำไปใช้งานได้อย่างสะดวกและเป็นระเบียบ
  3. เพิ่ม Speed ในการทำงาน โดยเอาเวลาไปทำงานอย่างอื่นที่สร้าง Value มากกว่าการทำงานซ้ำซ้อนกับสิ่งที่เคยมีคนในทีม/องค์กรได้ทำไปแล้ว ★

ข้อควรระวัง

  1. Process การทำ Automated unit test / การรีวิวโค้ดควรจะต้องถูกออกแบบมาอย่างดีและมีคุณภาพ เพราะการที่มีโค้ดที่เสียหายหลุดเข้าไปใน main branch สามารถกระทบกับหลายโปรเจคได้ในวงกว้าง
  2. ควรต้องมีการพยายามกระจายและให้หลายๆ คนได้มีโอกาสเป็น contributor เพื่อฝึกฝน skill และหลีกเลี่ยงการที่คนในทีมไม่ได้เรียนรู้และหยิบของสำเร็จรูปมาใช้อย่างเดียว

สำหรับบทความนี้ตอนนี้ก็เริ่มยาวแล้วเลยขอจบไว้เพียงเท่านี้ก่อนนะครับ ถ้าเพื่อนๆ พี่ๆ น้องๆ ท่านใดมีคำถามหรืออยากจะแลกเปลี่ยนความรู้กันก็ยินดีมากๆ ครับ และถ้าใครสนใจอยากลองทำงานใน environment แบบนี้ ก็ติดต่อมาได้ที่ careers@doppiotech.com ได้เลย เรายังรับ Full stack QA automation engineer อีกหลายตำแหน่งจ้า วันนี้ลาไปก่อน ขอบคุณที่ติดตามคร้าบ

Related Blog

Other

QA career — Soft Skill กับ Attitude นั้นสำคัญไฉน

จากประสบการณ์การทำงานมา 20 ปีของพี่ (พูดแล้วก็รู้สึกแก่ 😅) ทำงาน QA มาตั้งแต่เรียนจบเป็น Junior ตัวกระจ๊อย จนมาทำงานในบริษัทยักษ์ใหญ่ สร้างทีม QA ร้อยกว่าคน จนสร้างบริษัทที่มี QA ร่วม 200 คน สิ่งที่สังเกตุเห็นมาตลอดและแอบเป็นสิ่งน่าเศร้าคือ ไม่ค่อยมีใครสอน หรือ พูดถึงความสำคัญของ Attitude หรือ Soft skill ที่จำเป็นสำหรับสายงานนี้ (จริงๆคือไม่ค่อยเห็นการพูดถึงเรื่องพวกนี้ในงาน Tech ทั้งหมดด้วยแหล่ะ) ทั้งๆที่มันเป็นสิ่งสำคัญมากนะ เริ่มตั้งแต่ทำให้คนๆนึงได้งาน ถัดมามันเป็น skill ที่ทำให้คนๆนั้นอยู่รอดกับการทำงานในช่วงแรก และในที่สุดมีส่วนสำคัญในการแยกความแตกต่างระหว่าง QA ธรรมดาที่เดินไปถึงจุดตัน (ถึงแม้จะมี technical skill ที่ดีเยี่ยมก็ตาม) กับ QA ที่เติบโตไปเรื่อยๆจนเป็น A player ใน market ทุกวันนี้ส่วนตัวพี่เอง แทบไม่ได้สอน Technical skill ให้น้องๆด้วยตัวเองละนะเพราะมีคนช่วยสอนเยอะหล่ะ แต่จะใช้เวลาส่วนใหญ่ในการค่อยๆสอน Soft Skill…

QA

QA คนไหนมี Hardskill ดีแล้ว อย่าลืมฝึก Softskill ไว้ด้วยนะ #doppiotech #สายเทค #softwaretester

QA เก่งแค่ Hard Skill พอไหม? ทำไม Soft Skill ถึงเป็นอาวุธลับที่ทำให้คุณกลายเป็น "Star" ในทีม ในคอมมูนิตี้ของคนทำงานสายเทคและ QA มักจะมีคำถามยอดฮิตว่า "ถ้าอยากเก่งขึ้นต้องเรียนรู้อะไร?" หรือ "อยากย้ายสายต้องฝึกสกิลไหน?" ซึ่งคำตอบส่วนใหญ่มักจะพุ่งเป้าไปที่ Hard Skill เช่น การทำ Automation, การเรียนรู้เครื่องมือใหม่ๆ หรือเทคนิคการเขียน Test Case แต่ในมุมมองของผู้สัมภาษณ์งานและหัวหน้าทีม ความจริงที่น่าสนใจคือ มีผู้สมัครจำนวนมากที่ไปเรียนรู้ทักษะทางเทคนิคมาสารพัด แต่กลับไม่มีความโดดเด่นเพียงพอที่ทำให้บริษัทรู้สึกว่า "ต้องรับคนนี้เข้าทำงานให้ได้" Hard Skill คือพื้นฐาน แต่ความเก๋าอยู่ที่ "การจัดการ" สำหรับ QA ที่มีประสบการณ์ 4-5 ปี การเขียน Test Case ให้ดีเป็นเรื่องที่ควรทำได้อยู่แล้ว แต่ความแตกต่างระหว่าง Test Case ที่สมบูรณ์แบบ (Perfect) กับเกือบสมบูรณ์แบบนั้นไม่ได้สร้างความแตกต่างให้ตัวคุณดู "เฉิดฉาย" ในสายตาหัวหน้าเท่ากับ "สกิลในการจัดการ"…

Automation Test

Full Stack Automation Engineer @ Doppio

สวัสดีครับ หลายคนอาจจะเคยดูคลิปการสอน Automation ของผมใน Youtube channel ของ Doppio tech ไปบ้างแล้ว (อย่าลืมกดติดตาม และ กด Subscribe ให้ด้วยน้า) สำหรับวันนี้เลยอยากจะมาเล่าเรื่องหน้าที่และความรับผิดชอบของ Full stack automation engineer ที่ Doppio เพื่อแชร์ประสบการณ์ให้หลายๆ คนที่กำลังเริ่มศึกษาหรือมองหางานด้าน Automation test engineer ได้รู้จักกับงานในสายนี้มากขึ้น รวมทั้งรู้จักกับ Doppio มากขึ้นด้วย Full stack automation engineer คืออะไร ? หลายคนอาจจะเคยได้ยินงานในลักษณะตำแหน่งที่เรียกว่า QA automation enginner / QA automation / Automation tester แต่พอมาได้ยินคำว่า Full stack automation engineer ที่จั่วหัวในบทความนี้ ก็เกิดความสงสัยว่า มันต่างกันยังไง…