WeLoveBug

Thai Software Testing Blog

By

Testing กับ Multi Skills – เมื่อโลกมันเปลี่ยนไป๋ – manual functional test อย่างเดียวไม่เพียงพอ?

ช่วงหลังๆมานี้ ผมได้สังเกตเห็นความเปลี่ยนแปลงในความต้องการของตลาดงานและพบว่าหลายๆอาชีพต้องเผชิญกับความเปลี่ยนแปลงที่ให้ meet demand ของธุรกิจที่ต้องปรับตัวเข้ากับโลกที่เต็มไปด้วยการแข่งขัน และนี่คือตัวอย่างที่พบได้ง่ายมีสองอันครับ

– พนักงานร้านอาหาร นอกจากจะต้องจำรายละเอียดและราคาของอาหารเพื่อการบริการที่ดีได้แล้ว บางแห่งยังต้องมีการเต้น หรือมี skill ในการสร้างบรรยากาศและ entertain ลูกค้าได้ด้วย (เช่น MK)

– พนักงานขายและ cashier ในห้างนอกจากจะมี skill ในการขายแล้ว เดี๋ยวนี้ยังต้องมีทักษะการคำนวณและจดจำรายการ promotion on top ต่างๆ เพื่อแนะนำให้ลูกค้าในการเลือก option ในการจ่ายเงินด้วย… Promotion ห้างเดี๋ยวนี้โหดมาก มีใช้credit cardใบนั้น ซ้อนใบนี้ ต้องเอาบัตร one card ไปแลก coupon มาก่อน ที่ยอดเท่านั้นเท่านี้ อันนี้รวมใน promotion ได้ อันนี้ยกเว้น โดยรวมแล้วขอบอกว่าไม่ธรรมดา และผมก็ทึ่งกับความสามารถของนักชอบผู้หญิงหลายคนมากที่คิดได้ไวและสนุกสนานกับการ maximize ส่วนลดเหมือนกับการเล่นเกมส์อย่างไรอย่างนั้น :)

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

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

เกริ่นมาตั้งนาน แล้วมันหมายความว่ายังไงกับสายงาน testing ของเราล่ะ? …

เมื่อหลายปีก่อน หากมีประสบการณ์และความรู้ด้าน manual functional test ดีๆได้ ก็ตอบโจทย์ขององค์กรณ์และหางานได้ไม่ยาก แต่ในปัจจุบัน ในตลาดงาน testing มีความต้องการมากกว่านั้นเยอะแล้วครับ

อาวุธที่เราควรจะต้องเลือกมีและสามารถที่จะนำมาประยุกต์ใช้งานได้ดีนอกเหนือจากพื้นฐาน manual functional test มีอะไรบ้าง? ผมเห็น job description จากแหล่งงานหลายๆแห่งเลยอยากจะมาสรุปให้เพื่อนๆชาว welovebug ได้ดูกันครับ

Skill ด้าน performance test ตั้งแต่เรื่องของ test approach ไปจนถึงการเลือกใช้ test tool และ feature ที่มีได้อย่างเหมาะสมกับเนื้องาน และนอกจากที่จะบอกได้แล้วว่า performance ยังไม่ดีพอไม่ผ่าน แค่นี้ยังไม่พอครับ เรายังต้องสามารถเข้าใจโครงสร้างของระบบ และมีส่วนร่วมในวิเคราะห์ว่า pain point หรือ bottleneck น่าจะอยู่ที่ไหน โดยทำงานใกล้ชิดกับ dev กับทีม architect เพื่อจะนำเสนอข้อสรุปสุดท้ายพร้อมแนวทางแก้ไขให้ management เข้าใจได้ .. แนวโน้มที่เกิดขึ้นหลังจากหลายๆองค์กรณ์ได้เรียนรู้จากความผิดพลาดที่ไม่ได้ให้ความสำคัญอย่างเพียงพอในด้านนี้ เริ่มกระตุ้นให้เกิดความต้องการใน skill ในตลาดด้านนี้มากขึ้นๆเรื่อยๆ

skill ในการนำ automate test มาใช้ลด manual test … automate test เป็น top hit อันนึงที่ management ชอบ เพราะมองจาก high level แล้วเป็น technique ในการประหยัด effort ของ resourceที่มี เพื่อไปทำอะไรที่ value add ได้มากกว่า แต่หลายคนคงเห็นด้วยว่า หากบุ่มบ่ามเข้าไปทำ automate test อย่างไม่มีการเตรียมตัวที่ดีเพียงพอ นอกจากจะไม่ได้ผลที่ตั้งเป้าหมายไว้แล้ว กลับจะต้องเสียเงินและเวลามากขึ้นไปตามลำดับอย่างไม่น่าเชื่อ

Coding for unit test … scope ของการทำ automate test ไม่ได้หยุดอยู่ที่ end to end test จากมุมมอง user เท่านั้นอีกต่อไปแล้ว บางองค์กรณ์ระดับผู้นำ พยายามสรรหาคนที่มี skill ที่สามารถจะเป็น developer ได้แต่เสนอและ encourage ให้มาทำ coding for testing ไม่ว่าจะเป็นการเขียน script เพื่อทำ unit test ผ่าน JUnit, NUnit, SpringUnit, Tcl/Tk เป็นต้น ที่ผ่านมางานส่วนนี้มักจะเป็นหน้าที่ส่วนนึงของ developer แต่ในปัจจุบันองค์กรณ์บางแห่งได้ผลักดันให้ tester มาทำส่วนนี้ด้วย .. “Who said testers can’t code?”

- รู้ทันและเข้าใจ technology ใหม่ๆ … ปัจจุบัน technology ใหม่ๆ ออกมากันไวไม่ต่างกับ album เพลง pop ที่ตบเท้ากันออกมาไวอย่างไม่หยุดยั้ง และหลายอันก็มีอายุขัยของความนิยมที่สั้นไม่ต่างกันไปด้วย (ออกมาแป๊บเดียวแล้ววูบ) …  :P องค์กรณ์หลายที่มีความต้องการ tester ที่มี passion for technology เช่นรู้ Ajax, Ruby, XML เพื่อที่จะสามารถออกแบบการ test ที่สอดคล้องกับ technology ที่ใช้ 

- มีความรู้เชิงลึกของ business domain .. หากเราไม่มีความถนัดในส่วนที่กล่าวมาข้างต้น ตัวช่วยอีกด้านนึง ก็คือการมีความเข้าใจคุ้นเคยเชิงลึกกับ business domain อย่างน้อยหนึ่งอัน ตัวอย่างเช่น banking, Telco, financial service, retail เป็นต้น ความเข้าใจเหล่านี้จะทำให้คุณคุยกับ user ได้ง่าย อ่าน requirement เข้าใจและวิเคราะห์ได้ดี และสามารถ focus การทำ test และกำหนด priority ได้อย่างถูกจุด

- มีความเชี่ยวชาญในการใช้ tool .. เดี๋ยวนี้ tool มีความสำคัญมากขึ้น ถ้าคุณทำค่าย banking มีโอกาสสูงมากที่คุณจะต้องใช้tool ในตระกูล IBM/Rational เช่น Rational Test Studio,ClearCase, ClearQuest, Test Robot .. อีกค่ายที่ยอดนิยมใน Telco และ Financeคือฝั่ง HP/Mercury Test Director, QTP, Quality center… toolเหล่านี้คลุมไปถึง configuration management, requirement management, defect management tools … ถึงแม้บาง tool จะใช้เวลาศึกษาในมุมมอง user ไม่นาน หากคุณใช้ tool เป็นอยู่แล้ว บริษัทก็ไม่ต้องเสียเวลา train และ issue ในการทำงานผิดพลาดก็น้อยลง แถมยังอาจเอาคุณไป setup tool environment หรือสอนคนอื่นให้ใช้เป็นได้อีกตะหาก … กรณีที่คุณทำองค์กรณ์ที่ขนาดเล็กลงและทุนอาจไม่หนามากนัก ถ้าคุณมีความรู้ว่า opensource & free tool ตัวไหนที่ดีในแต่ละชนิดของ tool และสามารถเอามาsetup ในองค์กรณ์และปรับใช้กับงานขององค์กรณ์ได้ ช่วยเค้าลด cost ในขณะที่เพิ่ม productivity ได้ เค้าจะเห็นคุณค่าของคุณมากๆ

- Skill ในการตัดสินใจและวางแผน what not to test และ สามารถทำให้ stakeholder ที่เกี่ยวข้องเห็นด้วยหรือมีส่วนในการตัดสินใจร่วมกัน .. application ปัจจุบันมีความซับซ้อนขึ้นเยอะ และ scope ที่จำกัดเป็น clear cut ได้ยาก หลายๆคนให้ความสำคัญการกับการdocument “Items to be tested” แต่ในความจริงแล้วผมมีความเห็นว่า “Items NOT to be tested” ก็มีความสำคัญไม่แพ้กัน เพราะไม่ว่าจะยังไง เราไม่สามารถระบุเข้าไปในทุกรายละเอียดได้ว่าเราจะ test อะไรบ้าง ทั้งในมิติของ feature และ platform/environment… หากระบุละเอียดเกินไป ก็อาจจะไม่มีคนอ่านอีกตะหาก การที่เรานำเสนอ Items not to be tested ขึ้นมาพร้อมเหตุผลที่สมควรและสามารถที่จะ identify ได้ว่าใครจะต้องมีเห็นดีเห็นชอบกับเรา และเอาเค้ามามีส่วนร่วมได้ ถือเป็นความท้าทายในฐานะ tester เป็นอย่างยิ่ง

ผมเชื่อว่า list นี้คงไม่ได้ครบทุกอย่างหรอกครับ แต่อยากจะจุดประกายให้พวกเราชาว welovebugได้มีกำลังใจในการพัฒนา skill ที่หลากหลายในสายอาชีพที่รักของพวกเราต่อไป

12 Responses to Testing กับ Multi Skills – เมื่อโลกมันเปลี่ยนไป๋ – manual functional test อย่างเดียวไม่เพียงพอ?

  1. GTO Nick says:

    ได้ครับผม ตอนนี้ ผม ต้องรวบรวม เหล่าบรรดา Best Practice ทั้งหลาย มา implement กันหล่ะครับบ

    เอา ITIL CMMI และ Six Sigma ก่อน

  2. Zyracuze Zyracuze says:

    K.Nick,

    แฟน ITIL เหมือนกันหรือครับนี่ อิอิ งั้นขอส่งเทียบเชิญไว้ก่อนเลยครับกับ itil66.com ครับ กำลังจะขึ้นเร็วๆ นี้
    .-= Zyracuze´s last blog ..Narisa Tech Talk =-.

  3. GTO Nick says:

    ใช่ครับ เพราะ การวางแผน การ test ใน โครงการที่ Complex นี่ไม่ใช่เรื่องง่าย ๆ เลยครับตอนนี้

    ยิ่ง Vendor เยอะ Party เยอะ เวลาจำกัด พบ Defect เยอะ คือ ความยาก ของ Test Management ทั้งน้น วางแผนอย่างไรให้ ครอบคลุม

    โอ้ ITIL มาแล้ว น่าสนใจดีครับ ตอนนี้ กำลัง ดูแลส่วนของ CM พอดี

  4. Zyracuze Zyracuze says:

    K. UP1,

    ขอบคุณมากครับผม
    .-= Zyracuze´s last blog ..คุยไปกินไป เรื่อง ITIL Configuration Management =-.

  5. up1 up1 says:

    ตอบคุณ Zyracuze

    ใช่เลยครับ TDD และ BDD มาแรงครับ เดินคู่กันไปเลย เพียงแค่สร้างขึ้นมาให้เหมาะสมและเข้าใจง่ายในแต่ละกลุ่มให้มากขึ้น แต่เป้าหมายเหมือนกัน

    ส่วนเรื่อง Unit Testing ผมจะลองเขียนและนำมาแบ่งปันครับผม …..

  6. ekaluck ekaluck says:

    ขอบคุณสำหรับ feedback ของคุณ up1, คุณ Nick และ คุณ Zyracuze ครับ :)
    ผมนึกขึ้นมาเพิ่มได้อีกสองอันครับ การที่มี skill ในเชิง Agile methods เช่น Agile Testing, Testing in Scrum, อะไรพวกนี้ บางแห่งเค้าก็ให้credit นะครับ ส่วนอีกเรื่องนึงคือการที่สามารถ test integrate กับ hardware เช่น RFID, POS/barcode reader, embedded software พวกนี้ก็ถือเป็น skill ที่ specialize และหาคนเชี่ยวชาญได้ค่อนข้างยากครับ :) .. ท้ายสุดต่อยอดจากความเห็นคุณ Nick เรื่อง test management .. เนื่องจาก outsource เป็น trend ที่มาแรงมาก skill ในการ manage outsource test team ไม่ว่าจะอยู่ในประเทศเดียวกันทำงานใกล้ชิด หรือทำงานกันคนละ location เลยก็ถือเป็นอันนึงที่มีค่าในตลาดไม่น้อยทีเดียวครับ

  7. Zyracuze Zyracuze says:

    คุณ UP1 ผมว่าตอนนี้ทั้ง TDD และ BDD กำลังมาแรงนะ (หรือมันมานานแล้ว แต่ผมไม่รู้) ตอนนี้บน welovebug ยังขนาดเรื่องของ Unit Testing ครับ สนใจจะร่วมด้วยช่วยกันแบ่งปันประสบการณ์ไหมครับ :)
    .-= Zyracuze´s last blog ..Software Testing Working Group Meeting#4/2009 =-.

  8. Zyracuze Zyracuze says:

    ทั้งเรื่องของคุณโอ และความเห็นของคุณ Nick น่าสนใจมากครับ
    .-= Zyracuze´s last blog ..Software Testing Working Group Meeting#4/2009 =-.

  9. GTO Nick says:

    ในปัจจุบัน การ ทำ Test Management มาแรงครับ เพราะ คนที่จะสามารถ บริหารจัดการ ทำ test ให้อยู่หมัด มันยากมาก

    อย่างเช่น องค์กร ผมตอนนี้ ขาดแคลน Test Management (ทั้งหมด ข้างบนที่กล่าวมา ยัง มีอีกหลาย Area ที่ Test Manager ต้องมี Skill) อย่างแรง

    อีกตลาดนึงที่น่าสนใจคือ Quality Management หรือเราเรียกว่า Governance Team ซึ่งกำลังเป็น ทีมที่สำคัญ ในองค์กร IT หลาย ๆ องค์กร

  10. up1 up1 says:

    อ่านไปอ่านมา Multi Skills มากครับ …. ถ้าทำได้ทั้งหมดนี้แจ่มเลย

    ถ้าในสาย programmer กับ tester ไปด้วยกันแบบเนียนๆ ก็น่าจะเป็นการพัฒนาแบบ Test Driven Development ( TDD ) ครับ ซึ่งพยายามให้ทำ Test Case ทั้งหมดของระบบขึ้นมาก่อนที่จะพัฒนา ซึ่งส่งผลให้ต้องมีความเข้าใจใน functional และ non-functional ของระบบนั้นๆ ก่อน ถึงจะสร้าง Test Case ได้

    ในการทดสอบระบบนั้น Behavior Driven Development ( BDD ) ทำให้ทั้งคนที่เป็นและไม่เป็น programmer สามารถสร้างและอ่านการทดสอบระบบได้ดียิ่งขึ้น ถือเป็นวิวัฒนาการทางด้วยเอกสารและการสื่อสารที่ดีขึ้น

    ส่วนเรื่องการทดสอบ perfomance ของระบบก็มีทั้งแบบ user manual และ automattic แต่ทั้งนี้และทั้งนั้นการทดสอบเรื่อง performance ต้องอยู่พื้นฐานของความเป็น และ ความคาดหวัง ไม่ใช่ทดสอบแบบเอาเป็นเอาตาย หรือทดสอบในจำนวนที่เกินจริง … แค่หาข้อจำกัดและข้อผิดพลาดของระบบก็จะแย่กันอยู่แล้ว …. ไม่เช่นนั้นจะเกิด cost มามากมายตามที่ผู้เขียนกล่าวมา

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>