Testing

งาน Tester คำถามที่ต้องโดนสัมภาษณ์

ส่วนใหญ่เขาจะเกริ่นก่อนว่า ให้เรา
1. แนะนำตัวเอง โดยประมาณ 2 นาที ไม่ควรแนะนำตัวเองเกิน 5นาที
– ชื่อ นามสกุล
– ตำแหน่งงานที่เราทำ
– ประสบการณ์การทำงานทั้งหมดกี่ปี
– หน้าที่ความรับผิดชอบของงานที่ทำมีอะไรบ้าง
– อื่นๆ ที่คิดว่าเหมาะสม

2. Tester คืออะไร

Tester คือ คนที่มีหน้าที่ตรวจสอบคุณภาพของ software ที่ถูกผลิตขึ้นมาโดย programmer โดยใช้วิธีการ test ต่างๆ เพื่อให้มั่นใจว่า software ที่จะไปถึงมือลูกค้า ตรงตามความต้องการของลูกค้า มีคุณภาพและปราศจากข้อผิดพลาด (ฺDefects)

3. Test Case คืออะไร

Test Case คือ เอกสารที่บ่งบอกขั้นตอนหรือเงื่อนไขหรือตัวแปรต่างๆ ของ application ภายใต้ระบบที่เราจะใช้ทดสอบ เพื่อให้ทราบว่า application หรืิอ software ที่เราทดสอบนั้นๆ ตรงตามความต้องการของลูกค้า

4. วิธีการสร้าง Test Case มีขั้นตอนอย่างไร

การเขียน Test Case ให้ดีมี 8 วิธีหลักๆ ดังนี้

  1. เขียนให้เข้าใจง่าย ไม่ซับซ้อน
  2.  กรณี Test Case ที่ช้ำๆกัน ต้องให้สามารถนำมาใช้อีกกับ Scenario อื่นๆได้ โดยไม่ต้องสร้างขึ้นมาใหม่
  3. Test Case ควรจะต้อง review ร่วมกันทั้ง user และตัวเราที่เป็นคน create เพื่อความเข้าใจที่ตรงกัน
  4. ต้องสามารถให้คนอื่นหรือ user ที่นำไปใช้งานต่อได้ เข้าใจได้
  5. ควรจะต้องสร้างเป็น Framework Standard ของแต่บริษัท เพื่อให้การเขียน Test Case เป็นรูปแบบเดียวกัน เพื่อง่ายต่อความเข้าใจและสื่อสารกันได้ด้วย template เดียวทั้งองค์กร
  6. หลีกเลี่ยงการเขียน Test Cases ที่ซับซ้อน
  7. Test case จะต้องไม่เกิดจากการคาดคะแน หรือ คาดเดา
  8. Test Case จะต้องสามารถ execute ได้จริง 100%

ตัวอย่าง Test Case จะต้องประกอบ Field ดังนี้

  • Test Case ID: เป็น Integer หรือ char ก็ได้ แต่จะต้องไม่ซ้ำกันในแต่ล่ะ test case ID เช่น TD101 เป็นต้น
  • Purpose: บอกวัตถุประสงค์ของการทดสอบสั้นๆ ให้ได้ใจความ
  • Prerequisite: เงื่อนไขที่ต้องใช้ก่อนจะทำการทดสอบได้
  • Test Data: กลุ่มของข้อมูลหรือค่าตัวแปรที่เป็นไปได้ในแต่ละ test case ที่ต้องใช้งาน เช่น username, password, email หรือ อื่นๆ
  • Test Steps: บอถึงรายละเอียดขั้นตอนในแต่ล่ะ test case ที่จะใช้ในการ execute
  • Expected Results: ค่าผลลัพท์ที่เราคาดหวังเอาไว้ว่าก่อนที่จะทำการทดสอบ ในแต่ล่ะ step หรือ test case
  • Actual Results: ผลลัพท์ที่ได้จากการ executed เสร็จแล้ว ในแต่ล่ะ step หรือ test case
  • Result: ผลของการทดสอบ มี “PASS” และ “FAIL”
  • Comments: รายละเอียดเพิ่มเติมในการทดสอบเพื่อให้เข้าใจง่ายขึ้น อาจจะเป็น screenshots หรือ คำอธิบายก็ได้

5. Test Plan คืออะไร

Test Plan คือ เอกสารที่อธิบายถึง ขอบเขต , เงื่อนไข, จุดประสงค์ของงาน, เป้าหมาย, ระยะเวลา และ วิธีการทำงาน ภายใต้ Application หรือ งานที่เราต้องการทดสอบ ตามความต้องการของลูกค้า

6. อธิบาย Test Case / Test Plan แตกต่างกันอย่างไร

Test case จะเป็นส่วนย่อย (subset) ของ test plan โดย Plan จะบอกภาพรวมทั้งหมด ส่วน test case จะบ่งบอกรายละเอียดของแต่ล่ะงาน

7. Test Defect คืออะไร

Defects คือ error หรือ bug ที่เกิดขึ้นใน application อาจจะเกิดจาก Software สร้างหรือออกแบบโครงส้รางที่ผิดพลาด โดยความผิดพลาดที่เกิดขึ้นนั้นส่งผลให้ผลลัพท์ไม่ตรงกับ Requirement ของลูกค้า

8. Test Report คืออะไร

Test Report คือเอกสารสรุปผลการทดสอบ Software โดยหลักๆ มี 2 Report ดังนี้

  1. Test Report ที่สรุปผลการทดสอบที่ได้จากการ Execute Test จะค่อนข้างเป็นมีลายละเอียดในแต่ละ step หรือ หน้าจอ อาจจะมี Screenshot ให้แต่ใบบาง Step ด้วย
  2. สรุปผลการทดสอบภาพรวมทั้งหมด หลักๆจะบอกถึง
    1. Run Rate Run rate = number test cases executed/total test cases
    2. Pass rate = numbers test cases passed / test cases executed

9. Agile testing คืออะไร

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

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

10. Scrum คืออะไร

Scrum คือ รูปแบบหรือกระบวนการในการตรวจสอบและควบคุมการทดสอบ Software ให้ได้ตาม requirement ที่สมบูรณ์

11. Sprint คืออะไร

การกำหนดระยะเวลาการทำงาน โดยส่วนใหญ่แล้ว รอบการทำงานสั้นๆไม่เกิน 30 วัน เพื่อให้เราสามารถส่งมอบงาน ให้ลูกค้าดูได้อย่างรวดเร็ว ตามฟังก์ชั่นงานที่กำหนดไว้

12. SDLC คืออะไร มีขั้นตอนการทำงานอย่างไรบ้าง

SDLC (Software Development Life Cycle) หรือ วงจรชีวิตของการพัฒนาซอฟต์แวร์ คือ กระบวนการ วิธีการ ลำดับการทำงานสำหรับงานพัฒนาซอฟท์แวร์ มีขั้นตอนดังนี้

  • การวิเคราะห์ความต้องการ
  • การวางแผนงานตามความต้องการลูกค้าที่เราได้มา
  • การออกแบบขั้นตอนทั้ง Hardware และ Software
  • การเริ่มเขียนโปรแกรม
  • การทดสอบโปรแกรม ทั้ง Unit Test
  • การนำไปใช้งานจริงบน Production

13. STLC คืออะไร มีขั้นตอนการทำงานอย่างไรบ้าง

STLC (Software Testing Life Cycle) หรือ วงจรชีวิตของการทดสอบซอฟต์แวร์ คือ กระบวนการ วิธีการ ลำดับการทำงานสำหรับงานทดสอบซอฟท์แวร์ มีขั้นตอนดังนี้

  • การวิเคราะห์ความต้องการ
  • ขั้นตอนการวางแผน
  • การรวม Case Test และ Test Scenario
  • ตั้งค่าสภาพแวดล้อมการทดสอบ ทั้ง SIT, UAT, NFT, PenTest
  • ขั้นตอนการทดสอบ
  • สรุปผลการทดสอบ

14. SDLC และ STLC แตกต่างกันยังงัย

ต่างกันตรงที่ SDLC จะสร้าง Software ให้ได้ Product แต่ STLC คือทำสอบ Software ว่า Product นั้นใช้งานได้จริงหรือไม่

15. ตามเงื่อนไขของ SDLC แล้ว tester ควรเริ่มทำงานเมื่อใหร่

สิ่งที่ถูกคือเราควรเริ่มเทสตั้งแต่เริ่มต้น Project คือตอนเริ่มการวิเคราะห์ความต้องการ (Requirement) ทดสอบเพื่อป้องกันว่า Requirement นั้นๆเป็นไปได้และเราส่งมอบงานได้

แต่เอาเข้าจริงแล้วตอนทำงาน tester ก็จะเริ่มลงงานตอนเริ่ม SIT (System Integration Test) เพราะดารเริ่มจากตรงนี้มีคุณค่าและให้ผลตอบแทนมากที่สุด

16. Automated Testing Tools ที่รู้จัก มีอะไรบ้าง

แยกออกเป็น 2 อย่างหลักคือ

  • Commercial License
    • Funcational Test เช่น Unify Functional Test (UFT), Robotics Automation เป็นต้น
    • Performance Test เช่น LoadRunner, Silk Performer เป็นต้น
    • Secuity Test เช่น Fotify
  • Opensource/Freeware
    • Funcational Test เช่น Robot Framework, Katalon เป็นต้น
    • Performance Test เช่น JMeter เป็นต้น
    • Secuity Test เช่น Arachni, Grabber, Iron Wasp, Nogotofail, SonarQube, SQLMap, W3af, Wapiti, Wfuzz, Zed Attack Proxy (ZAP)


17. Black Box Testing
คืออะไร

Black Bok Testing คือ วิธีการทดสอบที่รู้แค่ input ที่เราใส่เข้าไปทดสอบและรู้ผลล่วงหน้าแล้วว่าผลลัพธ์ output เราต้องได้อะไร โดยไม่สนใจ กระบวนการวิธีการทำงานของ app ด้านในว่าไปทำกระบวนการอะไร

18. White Box Testing คืออะไร

White Box Testing คือ วิธีการทดสอบที่ต้องอาศัยกระบวนการวิธีการทำงานของ app ด้านในว่าไปทำกระบวนการอะไรมาถึงได้ผลลัพธ์ที่เราต้องการออกมา 

19. Unit Test คืออะไร

การทดสอบ Software โดยแบ่งออกเป็นฟังก์ชั่นงานแบบย่อยๆในแต่ละหน้าจอหรือเล็กว่านั้น และจะทำการทดสอบโดย Programmer หรือ Developer

20. System Testing คืออะไร

การทดสอบโปรแกรมและระบบ โดยดูภาพรวมของการทำงาน ว่าใช้งานทั้งในส่วนของฟังก์ชันการทำงานและประสิทธิภาพการทำงาน ต้องการของซอฟต์แวร์หรือไม่ ส่วนใหญ่จะเทสฟังก์ชั่นหลัก เช่น ฟังก์ชั่น login/logout, ฟังก์ชั่นการค้นหา, ฟังก์ชั่นการชื้อสินค้า, การออกบิล เป็นต้น

21. System Integration Testing คืออะไร

SIT (System Integration Test) คือ การนำ Web มาเชื่อต่อกับ App มาต่อกับ DB หรือแม้แต่การเชื่อมต่อกับระบบอื่นๆที่เกี่ยวข้อง เพื่อตรวจสอบว่าระบบต่างๆ สามารถทำงานร่วมกันได้อย่างถูกต้อง โดยการทดสอบ ก็จะทดสอบในแต่ละฟังก์ชั่นการทำงานของ application นั้นๆ

22. User Acceptance Testing คืออะไร

การทดสอบโดยให้คนใช้งานจริง (User) มาทำการลองใช้ระบบ ว่าสมารถทำงานได้จริงหรือไม่ ตรงตามความต้องการหรือไม่ โดยการทดสอบ ก็จะทดสอบในแต่ละฟังก์ชั่นการทำงานของ application นั้นๆ

23. Retest คืออะไร

การทดสอบซ้ำ กับสิ่งที่ทดสอบไปก่อนหน้า แต่ไม่จำเป็นต้องทดสอบทุก test case และทั้งหมด ส่วนใหญ่จะใช้ทดสอบกับ Defect ที่ถูกแก้ไข (fixed) มาแล้ว เราก็จะนำ test case นั้นมาทำการ retest เพื่อดูผลว่า defect ยังเกิดอู่หรือไม่

24. Regression Test คืออะไร

การทดสอบ test case และ test scenario ใหม่ทั้งหมด ไม่ว่าจะมีจำนวนเท่าใหร่ก็ตาม ต้องเทสให้หมด จะไม่เลือกแค่ defect ที่ถูก fixed เพื่อให้ทราบถึงผลกระทบว่าเมื่อมีการเปลี่ยนแปลงในระบบหรือซอฟท์แวร์อะไรบางอย่างแล้ว ฟังก์ชั่นสามารถทำงานได้ปกติและถูกต้องตามความต้องการ

25. Sanity Test คืออะไร

วิธีการทดสอบเพื่อวัดผลกับฟังก์ชั่นหรือ ซอฟท์แวร์ นั้นๆ เพื่อให้ผลว่ายังทำงานได้ปกติและถูกต้องตามความต้องการ โดยจะเลือกฟังก์ชั่นหลักๆ เท่านั้นมาทำการทดสอบ อาจจะ 5-10 test case หรือ ทดสอบเฉพาะจุดที่มีความสำคัญเท่านั้น

26. Non Functional Testing คืออะไร

การทดสอบเพื่อวัดผลความสามารถของระบบและซอฟท์แวร์ นั้นๆว่ารองรับคนใช้งานได้เท่าใหร่ ระบบจะล่มเมื่อใหร่ อัตราการตอบสนองในแต่ละฟังก์ชั่น นั้นๆ รวดเร็วขนาดใหน ต้องใช้เครื่อง spec H/W เท่าใหร่ที่ทำให้ระบบยังคงเสถียรอยู่ได้ ตามความต้องการและจำนวนของลูกค้า นั้นๆ

Patter S

Leave a reply

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