เทสเตอร์เป็นอะไรได้บ้าง

Tanawat Tassana
Coding Cat
Published in
2 min readSep 14, 2019

ในขณะที่ทุกวันนี้คนที่ทำงานเป็น developer/programmer มีทางเลือกและโอกาสมากมาย มีบริษัทที่สร้างสภาพแวดล้อมและจ่ายเงินแพงสุดๆเพื่อคนที่ทำหน้าที่เขียนโค้ด แต่ถ้าเรามองไปที่โลกของคนที่ถูกเรียกว่าเทสเตอร์ พวกเขามีอะไรแบบนั้นบ้างหรือเปล่านะ?

disclaimer: ผมเป็น developer

Photo by W R on Unsplash

เทสเตอร์กับการเป็น “พลเมืองชั้นสอง”

ไม่ว่าเราจะตั้งใจหรือไม่ แต่หลายๆบริษัทก็ไม่ได้ให้คุณค่ากับคนในบทบาทเทสเตอร์เทียบเท่ากับคนในบทบาทอื่น

  • เงินเดือนเริ่มต้นน้อยกว่า
  • อัตราการขึ้นเงินเดือนต่ำกว่า
  • แผนพัฒนาทักษะ/ศักยภาพไม่ชัดเจน (เมื่อเทียบกับ developer)
  • career path ไม่ชัดเจน เทสเตอร์ไม่รู้ว่าพวกเขาสามารถเติบโตไปเป็นอะไรได้บ้าง และการจะไปอยู่ตรงนั้นพวกเขาต้องมีทักษะอะไร แล้วพวกเขาจะต้องทำอะไรเพื่อพัฒนาทักษะเหล่านั้น

เทสเตอร์ as a resource

สาเหตุหนึ่งเพราะหลายๆบริษัทนั้นมองเทสเตอร์ตรงตัวตามชื่อคือเป็นเพียง “ผู้ทดสอบ (tester)” ซึ่งมีหน้าที่ที่ชัดเจนอยู่เพียงไม่กี่อย่าง

  • ทำความเข้าใจระบบ
  • ออกแบบ test case
  • ทดสอบตาม test case
  • รายงานผล

ผมเคยถูกบอกจากคนระดับหัวหน้าทีมของบางบริษัทว่าพวกเขาไม่นับเทสเตอร์เป็นส่วนหนึ่งของทีมพัฒนาซอฟต์แวร์ด้วยซ้ำ สำหรับเขาถึงแม้ทักษะในการทดสอบระบบจะสำคัญแต่ก็ไม่สำคัญเท่ากับทักษะในการเขียนโค้ดเพื่อสร้างตัวซอฟต์แวร์ออกมา

ผมไม่เห็นด้วย แต่เขาก็ทำให้ผมรู้ว่ามันมีชุดความคิดนี้อยู่จริงๆและมันก็จะสะท้อนออกมากับนโยบายของบริษัท ถ้าเขาเห็นคุณค่าไม่เท่ากัน เขาก็ให้ความสำคัญไม่เท่ากัน เงินเดือนหรือ career path หรือเรื่องอื่นๆก็จะถูกจัดการให้ไปในทิศทางเดียวกันนี้

หลายที่ก็ไม่ได้มองเทสเตอร์เป็นบทบาทสำคัญ มองเป็นเพียงแรงงานสำหรับทดสอบระบบที่ developer ทำเสร็จเพื่อให้มั่นใจว่าทำมาตรงตามความต้องการที่ให้ไว้เมื่อตอนเริ่มต้นเท่านั้น

เทสเตอร์ as an asset

บริษัทอีกกลุ่มหนึ่งกลับมองว่าเทสเตอร์นั้นมีบทบาทสำคัญกว่าการเป็นเพียงผู้ทดสอบมาก เพราะพวกเขามอบหมายให้เทสเตอร์ดูแล “คุณภาพ” ของทีมพัฒนา ซึ่งมันกินขอบเขตกว้างกว่าแค่การบอกว่ามันผิดหรือถูกตาม test case

ซอฟต์แวร์ที่คุณภาพดีนั้นไม่ใช่แค่ทำถูกตาม check list แต่ต้องเป็นของที่ตรงกับสิ่งที่ลูกค้าหรือผู้ใช้งานอยากได้ด้วย ของที่ทำงานถูกต้องทุกอย่างแต่ไม่มีใครอยากได้ก็ไม่ใช่ของที่มีคุณภาพ

  • Do right thing ทำของที่ใช่ ของที่ลูกค้าหรือผู้ใช้อยากได้
  • Do thing right ทำของออกมาถูกต้องตามที่กำหนดไว้ ทั้งในมุมของความถูกต้องของฟีเจอร์และการใช้วิธีทำที่ถูกต้อง

เมื่อเทสเตอร์ต้องดูแลคุณภาพทั้งสองมุม บทบาทของพวกเขาจะกว้างกว่าเดิมมาก จากที่ต้องทำความเข้าใจตัวระบบ ก็ต้องทำความเข้าใจธุรกิจของลูกค้า ทำความเข้าใจความต้องการจริงๆ คุณค่าที่ลูกค้าอยากได้เพื่อให้มั่นใจว่าทีมกำลังจะทำในสิ่งที่ลูกค้าอยากได้จริงๆ

การช่วยไม่ให้ทีมทำสิ่งที่ลูกค้าไม่ได้อยากได้ เป็นการแก้บัคที่ออกแรงน้อยที่สุดที่มีคุณค่ามากที่สุด

บริษัทที่เข้าใจเรื่องนี้ จึงให้ความสำคัญกับเทสเตอร์ และมองการพัฒนาศักยภาพของเทสเตอร์ไม่แตกต่างไปจากที่พวกเขามีต่อ developer หรือบทบาทอื่นๆ ซึ่งมันก็จะสะท้อนออกมาที่นโยบายของบริษัทเช่นเดียวกัน

เทสเตอร์ที่เก่งที่สุด

เทสเตอร์ในยุคนี้มีเรื่องของการเขียน automation test มาเกี่ยวข้องเยอะ จนมีคนพูดว่า “เทสเตอร์ที่ดีต้องเขียนโค้ดได้” ซึ่งถึงแม้การเขียนโค้ดได้จะดีกว่า แต่ผมคิดว่าไม่ใช่เรื่องจำเป็น และจนถึงตอนนี้เทสเตอร์ที่เก่งที่สุดที่ผมเคยทำงานด้วยก็เป็นคนที่เขียนโค้ดไม่เป็น

ต่อไปนี้คือสิ่งที่เทสเตอร์คนนั้นทำ

  • ทำงานกับลูกค้าอย่างใกล้ชิด ทำความเข้าใจคุณค่าของสิ่งที่ลูกค้าอยากได้
  • วิเคราะห์และติดตามสถานการณ์ทางธุรกิจของลูกค้าอยู่เสมอ มองเห็นการเปลี่ยนแปลงที่จะเกิดขึ้น หลายครั้งสามารถบอกลูกค้าได้ก่อนลูกค้าจะรู้ตัวว่าควรเปลี่ยนฟีเจอร์ไหนหรือส่วนไหนที่ไม่ควรต้องทำแล้ว
  • ช่วยทีมจัดการเรื่องความสำคัญของสิ่งที่จะต้องทำ ช่วยวาง release plan ได้อย่างมีประสิทธิภาพ
  • เมื่อทำงานร่วมกับทีมสามารถเป็นเหมือนตัวแทนของลูกค้า/ผู้ใช้งาน (ซึ่งเกิดจากความเข้าใจในเรื่องคุณค่าเป็นอย่างดี)
  • สามารถออกความเห็นเรื่องวิธีการที่ทีมจะใช้ในการพัฒนาฟีเจอร์ได้ โดยวิเคราะห์ในมุมของประสบการณ์การใช้งานของผู้ใช้งาน (หลายๆครั้ง developer มักจะเลือกวิธีการจากข้อจำกัดทางเทคนิคอย่างเดียว)
  • ออกแบบ test case และทดสอบ โดยอิงตามคุณค่าที่มีต่อลูกค้า ไม่ได้เน้นเยอะหรือเน้น edge case อย่างเดียว

จะเห็นว่าเมื่อเทสเตอร์คนหนึ่งใส่ใจเรื่องคุณภาพอย่างเต็มที่แล้ว เขาสามารถไปได้ไกลเกินกว่าการเป็นผู้ทดสอบมาก และจะกลายเป็นคนสำคัญมากๆต่อทีมพัฒนา

เส้นทางของ Automate Tester

ทีมที่จะไปได้ไกลจะขาดส่วนที่เป็น automation ไปไม่ได้ อย่างไรก็ตามความชอบในเรื่อง technical ชอบเขียนโค้ด คงเป็นเรื่องที่ขาดไม่ได้ถ้าจะเติบโตบนเส้นทางนี้

  • ออกแบบ test case
  • เขียน automation code
  • ดูแลการนำเอา test automation เข้าไปรวมอยู่ใน continuous integration/deployment flow
  • นำผลการทดสอบและข้อมูลที่เกี่ยวข้องมาวิเคราะห์เพื่อพัฒนารูปแบบและวิธีการทดสอบ
  • ศึกษาเทคโนโลยีและเครื่องมือใหม่ๆ
  • สร้างเครื่องมือขึ้นมาใช้เองเพื่อเพิ่มประสิทธิภาพในงานที่จำเพาะเจาะจง

ผมมองว่าจริงๆแล้ว automate tester นั้นมีความใกล้เคียงกับงาน developer มากกว่า เราจึงควรให้คนกลุ่มนี้ได้ focus กับงานส่วนนี้เหมือนที่ให้ developer ได้ focus กับงานเขียนโค้ด ดังนั้นผมจึงไม่ได้คิดว่าเทสเตอร์คนหนึ่งจำเป็นต้องเก่งทั้งสองด้าน

สร้างสภาพแวดล้อมที่เอื้อให้เทสเตอร์ไปได้ไกล

ผมเชื่อว่าคนทำงานเทสเตอร์นั้นก็มีความทะเยอทะยานที่จะเก่งขึ้น จะพัฒนาตัวเองไม่แพ้คนที่เป็น developer แต่เราจำเป็นต้องมีสภาพแวดล้อมที่จะช่วยให้พวกเขาได้เติบโตด้วย ถ้าคุณมองว่าเทสเตอร์คือบทบาทสำคัญ

  • พวกเขาต้องมีโอกาสได้มีบทบาทที่สำคัญ ได้แสดงความเห็น ได้สร้างความเปลี่ยนแปลง
  • พวกเขาต้องมีเส้นทางการเติบโตที่ชัดเจน มีสิ่งที่พวกเขาจะ “กลายเป็น” ได้ ถ้าพวกเขาพัฒนาตัวเองไปเรื่อยๆ
  • เงินเดือน ผลตอบแทน ในระดับเดียวกับที่บทบาทอื่นๆในทีมเดียวกันได้รับ

อย่างไรก็ตาม ผมไม่ได้คิดว่าแบบใดถูกแบบใดผิด ต่างบริษัทก็ต่างบริบท มีเป้าหมายต่างกัน มีข้อจำกัดต่างกัน แนวทางก็ต่างกัน ส่งผลให้นโยบายก็แตกต่างกันไปตามปัจจัยต่างๆเหล่านั้น เทสเตอร์เองก็ไม่ได้มีแบบเดียว สภาพแวดล้อมที่ดีต่อเทสเตอร์คนหนึ่งไม่ได้หมายความว่าจะดีต่ออีกคนหนึ่ง มันจึงขึ้นอยู่กับว่า ตัวเทสเตอร์เองนั้นอยากเติบโตไปเป็นแบบไหน และอยู่ในที่ที่เหมาะสมกับเป้าหมายนั้นหรือเปล่ามากกว่าครับ

พื้นที่โฆษณา

BiggestFan Productions — บริษัทที่ผมทำงานอยู่ กำลังมองหาเทสเตอร์ที่มีความทะเยอทะยาน อยากพัฒนาตัวเองไปให้ไกลกว่าการเป็นแค่ผู้ทดสอบ ไม่ว่าจะเป็นด้านของการบริหารทีมหรือด้าน automate test ซึ่งเทสเตอร์สามารถเลือกได้ว่าอยากโตไปด้านไหน

เรามองสมาชิกทุกคนในทีมเท่าเทียมกัน ทั้งในมุมของบทบาทความสำคัญและผลตอบแทน คนที่สนใจอยากลองมาพูดคุย มาดูการทำงานของทีม หรืออยากมาร่วมงานกับเรา สามารถติดต่อผมได้โดยตรงที่ amp@biggestfan.net ครับผม

--

--