Our Blog

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 ที่จั่วหัวในบทความนี้ ก็เกิดความสงสัยว่า มันต่างกันยังไง…

Other

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

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

Manual Test, QA

Non-Functional Test นั้นหรือ คืออะไร (Non-Functional Test 101)

หลายๆคนคงเคยได้ยิน หรือผ่านหูผ่านตามากับคำว่า Non-Functional Test มาบ้าง แต่ยังสงสัยอยู่ว่ามันคืออะไร มันใช่ Performance Test รึเปล่า แล้ว Performance Test คืออะไร ลองมาอ่านบทความนี้กันครับจะได้เข้าใจมันกันมากขึ้น เกริ่นนิดนึง ถ้าจะแบ่งกันตามหลักการแล้ว คำว่า Functional/Non-Functional test เนี่ยมันเป็นส่วนหนึ่งของ System Test นะ จากรูปด้านบนจะเห็นว่า keyword ของ Functional Test คือคำว่า “What?” คือการ test เพื่อทดสอบในมุมที่ว่า ระบบทำอะไรได้บ้าง พูดง่ายๆคือในแง่ของ function/feature นั่นแหล่ะ ทีนี้มาถึงพระเอกของเราในบทความนี้กันบ้าง keyword ของ Non-Functional Test นั้นคือคำว่า “How well?” ที่แปลว่า ดีแค่ไหน พูดง่ายๆคือ function/feature ที่เรา test แล้วว่ามันทำงานได้เนี่ย มันทำงานได้ดีแค่ไหน ตัวอย่างเช่น…

QA

สิ่งที่ควรเข้าใจและพึงระวังเมื่อเป็น QA

บทความนี้ขอเป็นฉบับสั้นๆที่รวบรวมสิ่งต่างๆที่คอยเตือนน้องๆในทีม (จากคนที่เคยเจ็บมาก่อน) จงเข้าใจ product (รวม use case, business และ architecture ของมัน) ก่อนจะคิด test strategy จงเข้าใจ requirement เป็นอย่างดีก่อนจะคิดทำ test case design (ถ้าไม่อย่างงั้น คุณจะได้มอเตอร์ไซค์ ที่ผ่านการเทสมาอย่าง perfect ในขณะที่ลูกค้าอยากได้จักรยาน ไม่ใช่มอเตอร์ไซค์) จงเข้าใจ testing technique ต่างๆเป็นอย่างดี ข้อดี ข้อเสีย ความเหมาะสมกับ product/requirement แต่ละประเภท ก่อนที่จะคิดใช้ testing technique เพื่อ optimize test case/coverage จงคิดก่อนว่า automation test ที่กำลังจะเขียนต้องสามารถถูก execute ได้วันละหลายร้อยรอบโดยไม่ต้องมีคนไปเตรียม data หรือมี process manual ไป clear data หลังรันเสร็จ จงทำขั้นตอนเหล่านั้นให้อยู่ใน automation step/process…

Automation Test

Doppio Tech OTP Test Automation Framework

ว่ากันด้วยเรื่องของ Test Automation กับการ test อะไรก็ตามที่ต้องใช้ OTP ส่วนใหญ่คนที่ทำ test automation น่าจะต้องเคยมีจุดที่ปวดหัวกับ OTP ไม่มากก็น้อย เพราะว่า มันเป็นส่วนที่ต้อง interact ระหว่าง test automation ที่เราเขียน กับ SMS ที่ได้ข้อมูลมาจาก sim card ของค่ายโทรศัพท์มือถือ เท่าที่ดูๆ Solution ที่มีคนแนะนำใน internet ทั่วๆไปก็จะมีประมาณนี้ 1. ให้ Dev ในทีมช่วย Fix ค่า OTP ให้ใน code เลย คือประมาณว่าถ้าใส่ 1234 คือให้ผ่านนะ อะไรแบบนี้ วิธีนี้ ข้อดีคือ ง่าย (ถ้าสามารถคุยกับ Dev ให้ช่วยทำได้) ส่วนข้อเสียคือ 1. ยาก (ถ้าไม่สามารถคุยกับ…

Automation Test

เขียน Code เก่ง ใช่ว่าจะทำ Test Automation ได้ดี

บทความนี้เขียนสำหรับน้องๆสาย Automation หรือน้องๆที่กำลังศึกษาเพื่อก้าวเข้ามาในสาย Test Automation นะครับ เท่าที่เห็นส่วนใหญ่ๆเวลาเริ่มศึกษาหรือทำงานไปซักพัก เราจะ focus อยู่แค่ ใช้ framework อะไร ใช้ภาษาอะไรเขียน แล้วก็ไปเรียนการเขียนภาษานั้นๆ พอเรียนพอฝึกไปซักพัก เขียนได้คล่องก็ อุ๊ย เก่งแล้วเรา เขียน Automate ได้หล่ะ ของ web หรือ mobile app ผมได้หมด ส่งงานมาเลยพี่ ผมพร้อม! เอาจริงๆ ถ้ามาได้ถึงขั้นนี้ ก็ควรภูมิใจจริงๆหล่ะนะ แต่ว่า ถ้าหยุดอยู่แค่นี้ เราก็ทำได้เหมือนคนอีกหลายพันหลายหมื่นคน (และคนหลายพันหลายหมื่นคนที่ทำระดับนี้ได้ กำลังเพิ่มขึ้นเรื่อยๆทุกวัน) จากประสบการณ์ที่เห็นมา คนที่ทำ Automate ได้เจ๋งเนี่ย เขียน code/script automate ได้ คือ พื้นฐานที่จำเป็นต้องมี แต่บทความนี้จะพยายามเล่าถึงส่วนอื่นๆที่จะทำให้เราก้าวไปอยู่ในระดับถัดไปได้ให้ฟังละกันนะครับ ยกตัวอย่าง ถ้าเรามี website ซื้อของ online ตัวนึง…

Other

What’s in it for them? ทำไมพูดอะไรไปก็ไม่เห็นมีใครเห็นด้วยเล๊ย เผยเทคนิคลับ ในการถกเถียงเจรจาต่อรอง

เชื่อว่าในชีวิตประจำวันของเรา ตอนทำงานบางทีเราก็รู้สึกว่าไอ้ตัวงานเนี่ย ง๊ายง่าย ไม่ได้ยากอะไรมากมาย แต่ทำไม๊ เวลาต้องไปติดต่อเจรจากับคนนี่มันยากจังนะ โดยเฉพาะกับคนที่เราไม่ได้สนิทด้วยหรือไม่ได้แบบมี relationship ที่จะทำให้พยายามช่วยเหลือกันโดยง่ายเนี่ย มันย๊ากยาก บางทีเราก็ว่าเรื่องทีเราบอกหรือขอไป มันโคตรจะ make sense แต่ทำไมอีกฝั่งมันไม่ get ไม่เห็นด้วยกับเราง่ายๆเลยนะ ปัญหามันอยู่ตรงนี้แหล๊ะ หลายๆครั้งเราคิดว่ามัน make sense เพราะเราคิดและพูดถึงสิ่งต่างๆในมุมมองของเรา ดังนั้นคำพูดของเรามันคือ what’s in it for me แต่ what in it for เรา (me) เนี่ย ส่วนใหญ่แล้ว มันจะไม่ใช่ what’s in it for them เล๊ย คำว่า what’s in it for them ในที่นี้ มองง่ายๆคือ ประโยชน์หรือ value ที่เกิดขึ้นกับคู่สนทนาของเรา…

QA

มาใช้ testing technique กันเถอะ ตอนที่ 1 Equivalence Partitioning

สืบเนื่องจาก blog ที่แล้ว Software Tester/QA 100.1 วันนี้มายกตัวอย่างการเป็น tester เก่งๆในหัวข้อที่ (2) ของ blog นั้นละกันนะ ให้เห็นภาพว่าการเป็น tester เก่งๆที่ใช้ test technique ในการออกแบบ test case เนี่ยมันคืออะไร เตือนไว้ก่อน อันนี้ยาว ย๊าว ยาววว นะ ใครไม่ชอบอ่านเยอะๆอนุญาตให้ข้ามไปได้ 555 อันว่า test technique นั้นมีมากมายหลากหลายประเภท วันนี้ยก technique ที่โดยส่วนตัวใช้บ่อยสุด หรือเกือบบ่อยสุด และเข้าถึงได้ง่ายที่ชื่อว่า Equivalence Partitioning (EP) Technique มาพูดให้ฟังละกันนะ EP มาจากศัพท์สองคำคือ Equivalence ที่แปลว่า เท่ากัน กับคำว่า Partition ที่แปลว่า การแบ่งกั้นเป็นส่วนๆ แปลแยกกันก็จะงงๆนิดนึง ไหนลองแปลรวมซิ สรุปง่ายๆแบบรวบรัด EP คือ…

QA

Software Tester/QA 100.1

วันนี้มาด้วยชื่อ blog แปลกๆ คือปกติมันต้องเริ่มด้วย 101 แต่ว่าอันนี้มันยิ่งกว่า 101 มันเป็นจุดเริ่มต้นยิ่งกว่านั้นเอาเป็นชื่อ 100.1 ละกันนะ Inspiration เริ่มมาจากมีน้องๆหลายคนมากมาสมัครงานแบบที่ไม่มีประสบการณ์ software testing เลย มีทั้งแบบ new grad และแบบที่อยากเปลี่ยนสายงาน จาก IT support มั่ง Sale มั่ง Admin มั่งทั้งที่จบตรงและไม่ตรงสาย เอาจริงๆเห็น potential น้องๆหลายคนเลยนะ ที่สามารถเรียนรู้และเปลี่ยนสายงานได้ (แล้วก็หางาน QA ให้ได้สำเร็จ ของไม่ตรงสายได้แล้วหนึ่งคน เย่) คือที่เห็น น้องๆหลายคนอยากเปลี่ยนสาย ก็พยายามไปหาความรู้ บางคนเริ่มไปดู automate บางคนไปอ่านกับเรียนวิธีการ test text box ต่างๆ เอาจริงๆก็ดีใจที่เห็นน้องอยากเปลี่ยนสายแล้วลงทุนเรียนรู้ แต่อีกมุมนึงก็รู้สึกว่าหลายๆคนไปกันแบบโหวงๆ ยังไม่รู้ด้วยซ้ำว่าจุดที่ชั้นไปอ่านไปเรียนมันคือตรงไหนของงาน ไม่เข้าใจลักษณะงานหลักๆเลยด้วยซ้ำ ก็เลยตั้งใจเขียนอันนี้ไว้เป็น guideline ให้มือใหม่อยากเข้าวงการ ให้อ่านแล้วเห็นภาพใหญ่ ก่อนจะเจาะลึกแต่ละส่วนละกันนะ…

Uncategorized

Bug นั้นสำคัญไฉน

อาจจะยาวหน่อยนะครับ ไม่ได้เขียนมานาน วันนี้จะมาเล่าประสบการณ์จริงกับการเชือดบั๊กไปประมาณสองพันตัวในระยะเวลาประมาณ 2 ปีให้ฟังกันเน้อ เริ่มปู background หน่อยละกันครับ เหตุการณ์ในเนื้อเรื่องเริ่มขึ้นตั้งแต่เมื่อประมาณ 7–8 ปีที่แล้ว ก็ทำงานเป็นหัวหน้าทีม QA มีลูกน้องร้อยกว่าคน ทุกคนมี mindset ของ Quality for business ดังนั้นเวลาเจอ bug กับ feature ใหม่ๆเนี่ย เราก็จะคิด เอ๊ะ severity ของ bug ตัวนี้คืออะไร แล้วก็จะมี practice ในการคิดว่าถ้าไม่ได้เป็น bug ตัวใหญ่มากๆ ถ้าเรา log bug ไว้แล้วแก้ตามหลังเนี่ย feature นี้ถ้าออกวันนี้จะทำเงินได้เพิ่มหนึ่งล้านต่อวัน (สมมติ) ส่วน bug ตัวนี้ถ้าเราปล่อยไปอาจจะสร้างความเสียหายได้มากสุดสองหมื่นบาทต่อวัน แทนที่จะรอ fix bug สามวัน เราsign-off ไปก่อนแล้วค่อย fix ตามหลังได้ ได้มากกว่าเสียเห็นๆ…

Uncategorized

ว่าด้วยเรื่องของ Regression Test การจัดการ มุมมอง และสิ่งต้องระวัง

Blog นี้คุยกันเรื่อง Regression Test นะครับ เนื่องจากที่สัมผัสมา แต่ละที่มีนิยาม สิ่งที่มีอยู่ และการจัดการกับ Regression Test ไม่เหมือนกันเลย เกริ่นไว้ก่อนว่า สิ่งที่จะเขียนต่อไปนี้ มิได้มีหนังสืออะไรมารองรับ มาจากประสบการณ์และมุมมองส่วนตัวเป็นหลักละกันนะ เรามาเริ่มจาก Regression Test คืออะไรก่อนละกันครับ ตามนิยามแล้ว Regression Test คือการ Test เพื่อหา Impact หรือ Side effect จาก Change ซึ่งคำว่า Change เนี่ย สามารถเป็นได้ทั้งการ Change ที่ตัว Software ของเราเอง หรือแม้แต่การ Change ของ component/system รอบข้างมัน หรือแม้แต่ Environment หรือ Platform ที่ตัว Software รันอยู่นะ ถ้ามองแบบนี้ก็จะเห็นภาพง่ายขึ้น ก็คือ มี…

Uncategorized

QA ที่เก่ง เป็น A player และ QA Career path จากมุมมองของพี่

สวัสดีพี่น้องชาว QA และ หลายๆคนที่อยากเปลี่ยนสายมาเป็น QA นะครับ Blog นี้อาจจะยาวหน่อยนะ ตอนแรกกะว่าจะเขียนเป็น post ธรรมดาในห้อง QA & Testers Thailand แต่เขียนไปเขียนมามันย๊าวยาวเลยเอามาแป่ะไว้ใน medium ดีกว่า เริ่มจากมีน้องๆหลายคนถามมาหลังไมค์ว่า ทำยังไงผมถึงจะเป็น QA ที่เก่ง ผมต้องไปเรียนอะไร ผมต้องทำยังไงดี ผม progress กับ careers นี้ต่อไม่ได้ผมต้องทำยังไงดี พี่เลยรวมๆเอามา share ใน blog นี้ละกันนะ หลักๆคือเรื่อง QA ที่เก่งที่เป็น A player (ในมุมมองของพี่) คืออะไร และทำยังไงถึงจะรอดถึงจะไปต่อกับ career path ทางนี้ของตัวเองได้ อย่างแรก QA ที่เก่งสำหรับพี่ หรือเวลาที่พี่มองน้องซักคนแล้วรู้สึกว่าไอ้คนนี้เจ๋ง เก่ง ไปได้ไกลเนี่ย มันประกอบไปด้วยหลายๆอย่าง อย่างแรกที่ขาดไม่ได้จริงๆ คือต้องเป็นคนที่รู้ลึกรู้จริง เกี่ยวกับ…