ผู้ทดสอบต้องเขียนโค้ดหรือไม่

คำถามที่พบบ่อยมากว่าซอฟต์แวร์ การทดสอบ ผู้ปรารถนามีคือ... ผู้ทดสอบต้องเขียนโค้ดมั้ย??

ก่อนที่เราจะตอบคำถามนี้ จำเป็นต้องมีความเข้าใจอย่างถ่องแท้เกี่ยวกับบทบาทการทดสอบซอฟต์แวร์ต่างๆ

Software QA โดยทั่วไปจะแบ่งออกเป็น 2 ประเภท คือ

  1. นักวิเคราะห์คุณภาพ: QA จะตรวจสอบการทำงานและความสมบูรณ์ของการทดสอบ QA จะตรวจสอบซอฟต์แวร์หลังจากขั้นตอนการพัฒนาเท่านั้น บทบาท QA ไม่ใช่ด้านเทคนิคเหมือนกับนักพัฒนาและอาจไม่จำเป็นต้องเขียนโค้ด
  2. SDET (วิศวกรออกแบบซอฟต์แวร์ในการทดสอบ): ในขณะที่ SDET เป็นผู้เข้าใจการทำงานภายในของผลิตภัณฑ์ พวกเขาเข้าใจแนวคิดเกี่ยวกับฐานข้อมูล ภาษาการเขียนโปรแกรม ฯลฯ และยังมีส่วนร่วมในการออกแบบผลิตภัณฑ์ การออกแบบข้อมูล และอินเทอร์เฟซผู้ใช้ SDET ต้องทำงานในช่วงการพัฒนาและต้องมีความรู้ในการเขียนโค้ด ดังนั้นบทบาทของ SDET จึงมีความท้าทายมากกว่า และเกี่ยวข้องกับงานของทั้งนักพัฒนาและผู้ทดสอบ ผู้ทดสอบระบบอัตโนมัติ (ผู้ที่ใช้เครื่องมือเช่น คิวทีพี, Selenium) ยังสามารถจัดประเภทเป็น SDET ได้

ผู้ทดสอบต้องเขียนโค้ดหรือไม่?

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

เราจะเห็นสิ่งต่าง ๆ ต่อไปนี้ในระหว่างการสอนนี้

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

คุณสมบัติของผู้ทดสอบที่ดี

วิธีการทดสอบซอฟต์แวร์จะแตกต่างกันไปตามความต้องการและข้อกำหนดของผลิตภัณฑ์ซอฟต์แวร์ QA หรือผู้ทดสอบซอฟต์แวร์ที่ดีมีบทบาทสำคัญในกระบวนการทดสอบให้เสร็จสิ้น

คุณลักษณะของผู้ทดสอบที่ดีคือ

  • ความรู้โดเมนที่ดี
  • มีความคิดเชิงตรรกะที่ดีและ
  • มีความรู้ทักษะการเขียนโปรแกรมเป็นอย่างดี

ผู้ทดสอบต้องใช้ความรู้การเขียนโค้ดมากน้อยเพียงใด

การเขียนโค้ดและการดีบักเป็นหน้าที่ของนักพัฒนา

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

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

จำเป็นต้องมีผู้ทดสอบความรู้การเข้ารหัส

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

  • ขณะทำการทดสอบแบบ Black box ผู้ทดสอบไม่จำเป็นต้องมีความรู้ด้านการเขียนโค้ด ผู้ทดสอบเพียงทดสอบซอฟต์แวร์โดยป้อนข้อมูล จากนั้นจึงตรวจสอบผลลัพธ์
  • การทดสอบแบบ White Box หรือการทดสอบตามโค้ดต้องอาศัยความรู้เกี่ยวกับโค้ด การรู้แนวคิดการเขียนโปรแกรมต่างๆ เช่น C, C#, C++, แนวคิด RDBMSฯลฯ อาจเป็นประโยชน์
  • ผู้ทดสอบต้องมีความรู้ด้านการเขียนโค้ดที่ดีเมื่อต้องทดสอบอัตโนมัติหรือทดสอบกล่องสีขาว เนื่องจากการทดสอบอัตโนมัติเกี่ยวข้องกับการครอบคลุมคำสั่ง การครอบคลุมโค้ด ความซับซ้อนของวงจรฯลฯ แนวคิดทั้งหมดเหล่านี้จำเป็นต้องมีความรู้ที่ดีเกี่ยวกับทักษะการเขียนโปรแกรมและฐานข้อมูล
  • SQL (Structured Query Language)- บางครั้งการทดสอบจำเป็นต้องมีการตรวจสอบฐานข้อมูล ดังนั้นผู้ทดสอบจึงต้องมีความรู้พื้นฐานเกี่ยวกับ SQL คำสั่งเช่น –'select', 'create', 'update' และอื่นๆ
  • SQL – การฉีด “การแทรก SQL” เป็นหนึ่งในเทคนิคที่ใช้ในการแฮ็กฐานข้อมูลโดยการใส่คำสั่งที่ไม่ต้องการ ความรู้ดีๆ เกี่ยวกับ Javaต้นฉบับ และ SQL คำสั่งมีประโยชน์ในการป้องกันภัยคุกคามความปลอดภัยของซอฟต์แวร์ดังกล่าว
  • การทดสอบแบบ Agile- ใน การทดสอบที่คล่องตัว ทีมงานทั้งหมดมีหน้าที่รับผิดชอบต่อคุณภาพของซอฟต์แวร์ ตลอดกระบวนการที่คล่องตัว ผู้ทดสอบจะทำงานร่วมกับโปรแกรมเมอร์ตั้งแต่หนึ่งคนขึ้นไปเพื่อเขียนการทดสอบ ดังนั้นในการสร้างการทดสอบแบบอัตโนมัติ ผู้ทดสอบจึงจำเป็นต้องทราบโค้ด

เคล็ดลับสำคัญบางประการสำหรับนักวิเคราะห์ซอฟต์แวร์ QA

  • ความรู้เกี่ยวกับการทดสอบด้วยตนเอง ภาษาสคริปต์ เช่น Javaต้นฉบับฯลฯ จะเพิ่มเครดิตให้กับทักษะการทดสอบของคุณ
  • ในฐานะผู้ทดสอบ คุณควรสร้างความรู้พื้นฐานเกี่ยวกับภาษาการเขียนโปรแกรม เช่น Java, วีบีสคริปต์ ไม่จำเป็นต้องมี แต่จำเป็น ความรู้เกี่ยวกับแนวคิด SQL หรือแนวคิด DBMS ถือเป็นแนวทางปฏิบัติที่ดีสำหรับคุณ

นอกจากนี้ ยังมีเคล็ดลับทั่วไปบางประการที่สามารถช่วยนักวิเคราะห์ QA ของซอฟต์แวร์ได้

  • ทักษะการสื่อสาร
  • ความคิดเชิงวิเคราะห์
  • ความถนัด

การเรียนรู้การเขียนโค้ดในการทดสอบซอฟต์แวร์นั้นมีประโยชน์อย่างมากต่อนักวิเคราะห์ QA หรือผู้ทดสอบตลอดอาชีพของพวกเขา

สรุป

Software QA โดยทั่วไปจะแบ่งออกเป็น 2 ประเภท คือ

  • ผู้ทดสอบ QA: ไม่จำเป็นต้องมีความรู้ด้านการเขียนโค้ด
  • สเด็ท: มันต้องใช้ความรู้การเขียนโค้ด

คุณสมบัติของผู้ทดสอบที่ดีคือ

  • ความรู้โดเมนที่ดี
  • มีความคิดเชิงตรรกะที่ดีและ
  • มีความรู้ทักษะการเขียนโปรแกรมเป็นอย่างดี

ผู้ทดสอบจำเป็นต้องมีความรู้การเขียนโค้ดที่ดีเมื่อทำการทดสอบระบบอัตโนมัติ