Software Tester VS Penetration Tester

Datafarm
3 min readOct 5, 2022

หลายคนในกลุ่ม IT จะคุ้นเคยกับคำว่า Software Tester ซึ่งทุกองค์กรหรือบริษัทที่ประกอบกิจการเกี่ยวกับ IT จะมีตำแหน่ง Software Tester หรือ QA อยู่ ซึ่งมีหน้าที่ทดสอบซอฟต์แวร์ว่ามีข้อผิดพลาดอะไรบ้าง แล้ว Penetration Tester ล่ะคืออะไร ? เหมือนกับ Software Tester รึเปล่า ? เคยสับสนกันไหม ? แล้วแต่ละอย่างมันทำอะไรบ้าง ? มันคืออะไร ? ต่างการอย่างไร? เราจำเป็นต้องทดสอบในส่วนของ Penetration Testing ด้วยเหรอ ? วันนี้จะมาสลายข้อข้องใจว่า Software Tester และ Penetration Tester มันต่างอย่างไร ? ความจำเป็นและความเหมาะสมของแต่ละตำแหน่งเป็นอย่างไรกัน เรามารู้จักแต่ละตัวกันก่อนเลย

Software Testing คืออะไร?

Software Testing หรือการทดสอบซอฟต์แวร์นั้น ๆ ก็คือ กระบวนการการประเมินและปรับปรุงคุณภาพซอฟต์แวร์ของบริษัท เพื่อค้นหาข้อผิดพลาดหรือข้อบกพร่องของซอฟต์แวร์ให้ปรากฎออกมาเพื่อหาแนวทางอุดช่องโหว่ของปัญหาที่เกิดขึ้นหรืออาจเกิดขึ้นได้นั่นเอง

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

หน้าที่โดยส่วนใหญ่ของ Software Tester มีอะไรบ้าง ?

เหล่า Software Tester มีหน้าที่ในการทดสอบระบบต่าง ๆ เพื่อให้ใช้งานได้ คอยตรวจสอบหาข้อบกพร่องข้อผิดพลาดของซอฟต์แวร์นั้น ๆ โดยใช้วิธีการทดสอบต่าง ๆ เพื่อให้ไม่เจอข้อผิดพลาด หรือเมื่อเจอข้อผิดพลาดนั้นก็สามารถทำการส่ง Report ไปให้ Programmer ทำการแก้ไขและปรับปรุง

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

  1. คิดกรณีที่ทำให้การทำงานของระบบหรือ Application ทุกกรณีที่เป็นไปได้ว่าจะเกิดขึ้น — design test cases
  2. เขียนขั้นตอนการทดสอบโดยคิดว่าคนอื่นสามารถอ่านแล้วเข้าใจ — create / produce test cases
  3. ติดตั้งระบบเพื่อใช้ในการทดสอบ — setup environment
  4. ทำ test script ในกรณีที่ตกลงกันว่าจะทำ — produce test script / test automation
  5. เริ่มการทดสอบระบบ — execute testing
  6. เขียนสรุปผลการทดสอบเพื่อรายงานให้ผู้ที่เกี่ยวข้องทราบ– produce test report

ป.ล.บางครั้งเวลาเจอข้อผิดพลาดของระบบหรือบั๊คอาจไม่ได้จบเพียงการทำ Report ส่งให้ทาง Programmer แก้ไขเท่านั้นแต่ยังต้องหามาตรการหรือหลักการในการป้องกันและแก้ไขในจุดที่เกิดข้อผิดพลาดด้วย

มี Programmer แล้ว ทำไมไม่ให้ Programmer ทดสอบระบบไปด้วยเลยล่ะ ?

สำหรับบางบริษัทตำแหน่งของ Tester จะควบรวมกับตำแหน่ง Programmer คือเขียน Code เองก็ทดสอบเองไปเลย

“เขียน Code เอง Test เอง Fix เอง ในคนคนเดียว อะไรนะ!! ลูกค้าใช้งานและระบบพังเหรอ เป็นไปได้ไงงงงงงงง !!”

ซึ่งส่วนใหญ่จะทดสอบเฉพาะส่วนที่ทำงานได้ปกติเท่านั้น ส่วนที่อาจจะเกิดขึ้น เช่น กรณี user กรอกค่าผิด, กดปุ่มผิดไปเจอข้อความ error หรือโปรแกรมปิดตัวเองไปเลย (program crash) เพื่อป้องกันกรณีเหล่านี้เกิดขึ้นกับลูกค้า จึงควรมีตำแหน่งที่มาทดสอบแยกออกจากกันกับ Programmer โดยผู้ที่มาทดสอบนี้จะไม่เกี่ยวข้องกับ code ที่ทาง Programmer เขียนมาดังนั้น โดยต้องรายงานสิ่งที่ทดสอบมาตามความเป็นจริง ไม่มีบิดเบือน Tester จึงมีความสำคัญมาก ๆ ในแต่ละงาน

เรามาดูในส่วนของ Penetration Tester กันต่อ

ทุก ๆ วันนี้จะมีเรื่องราวของ “ภัยบนโลกไซเบอร์” ให้อัปเดตกันอยู่ตลอดเวลา บางข่าวที่เจอออกมาว่า โรงพยาบาล A มีการทำข้อมูลหลุด อย่าง ชื่อ-สกุล, เลขประจำตัวประชาชน, หรือข้อมูลส่วนตัวมากมายออกไปยังโลกอินเทอร์เน็ต ทำให้เกิดความสูญเสียมากมายทั้งความน่าเชื่อถือของโรงพยาบาล และมูลค่าที่ต้องจ่าย

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

Penetration Tester คืออะไร ?

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

“ธนาคาร A มีความเสี่ยงที่จะโดนปล้น จึงจ้างนาย B (แทนตำแหน่ง Penetration Tester) มาปลอมตัวเป็นโจร (โจร แทน Hacker) โดยนาย B ต้องทำทุกวิถีทางที่จะต้องพยายามเข้าตึกของธนาคาร และให้ได้ของมีค่า เงินทอง ที่อยู่ในเซฟมาให้ได้เมื่อนาย B สามารถทำได้สำเร็จ ก็จะรายงานให้กับธนาคาร A ว่ามีวิธีใดบ้างเพื่อป้องกันสิ่งที่จะเกิดขึ้นนี้ให้ได้ก่อนที่โจรตัวจริงจะมาปล้น”

คนที่จะมาทำ Penetration Testing ได้นั้น จะให้ดีที่สุดควรจะเป็นคนที่ไม่ได้มีข้อมูลของระบบหรืออาจจะมีข้อมูลเพียงเล็กน้อย เพราะว่าทางผู้ทดสอบได้ทดสอบระบบเพื่อหาจุดบอดหรือช่องโหว่ของระบบเหล่านั้นที่ได้ออกแบบจาก Programmer หรือ Developer หรือจากการตั้งค่า Infrastructure ได้

ด้วยเหตุผลนี้การจ้างบริษัทที่รับทำ Pentest โดยเฉพาะมาจากข้างนอกจะเหมาะสมที่สุด บริษัทเหล่านี้จะใช้ความสามารถในการเจาะระบบเปรียบเสมือน Hacker บางคนอาจจะรู้จักในชื่อ White Hacker การที่จะดำเนินการจะเป็นการที่ได้รับอนุญาตจากทางเจ้าของระบบแล้ว เพื่อช่วยเพิ่มประสิทธิภาพในเรื่อง Security ของระบบได้มากขึ้น

สรุปแล้ว Software Tester กับ Penetration Tester อันไหนสำคัญกว่ากัน ?

ที่จริงแล้วมันสำคัญทั้งสองตำแหน่งแต่สำคัญต่างกันออกไป ถ้าไม่มี Software Tester แล้วใครจะมาทดสอบละว่าซอฟต์แวร์หรือแอปพลิเคชันที่ทำขึ้นมามีประสิทธิภาพ ไม่พังต่อหน้าลูกค้าหรือผู้ใช้งาน หรือตัวแอปพลิเคชันนี้มีบั๊คของการใช้งานตรงไหนบ้าง

เมื่อผ่านมือ Software Tester แล้วระบบจะคุณภาพเพิ่มสูงขึ้นหลังผ่านกระบวนการนี้มา ความพึงพอใจในการใช้งานของลูกค้าก็เพิ่มขึ้นเช่นกัน

ส่วน Penetration Tester จากที่ได้เล่ามาเบื้องต้นแล้วนั้น การทำ Penetration Testing นั้น ทำให้ระบบมีความปลอดภัยจากภัยคุกคามจากโลกไซเบอร์ได้ ยิ่งตอนนี้มีความเข้มงวดของกฏหมาย PDPA ในเมืองไทยเพิ่มขึ้นยิ่งต้องทำ Penetration Testing เพื่อป้องกันโอกาสที่ข้อมูลของลูกค้าหรือข้อมูลของระบบและของบริษัทหลุดรั่วออกไปได้ และยังเป็นการเพิ่มประสิทธิภาพในส่วนของ Security ของระบบให้มีความเข้มแข็งมากขึ้นด้วย ยิ่งในตอนนี้โลกเปลี่ยนไปไวมาก ผู้ไม่ประสงค์ดีหรือตัวแฮกเกอร์เองก็สามารถที่จะปรับและพัฒนาศักยภาพเพิ่มขึ้นเพื่อใช้โจมตีระบบของคุณ แบบนี้จึงจำเป็นอย่างยิ่งในการทำ Penetration Testing

--

--

No responses yet