พื้นฐานสำคัญที่ควรรู้ของการเป็น QA Engineer

สัปดาห์ที่ผ่านมา แอดเรียนจบ sprint 01 ของคอร์ส QA Engineering แล้ว โดยรวมแอดชอบเลย เนื้อหาเป็นแบบ text-based มี audio บ้างนิดหน่อย

ใช้เวลาเรียนประมาณ 5-6 ชั่วโมง รวมทำโปรเจ็คอีก 2-3 ชั่วโมง แอดนั่งเรียนช่วงค่ำๆหลังเลิกงาน แบบ 20.00-21.00 น. แล้วก็เก็บเนื้อหาอีกทีวันเสาร์

น่าจะสรุปไม่จบในบทความเดียว เพราะแค่เรื่อง testing อย่างเดียวก็จุกๆแล้ว 555+

พอได้เรียน QA Engineering แอดคิดว่าความรู้นี้น่าสนใจมากเลย มีนักเรียนหลายคนทักมาว่าตอนนี้ทำงานเป็น QA อยู่เหมือนกัน สุดยอด

ในคอร์สเค้าบอกว่าสายงานนี้จริงๆต่อยอดไปเป็น Product Manager ได้สบายๆ เพราะเราเข้าใจการเขียน requirements/ tests ของ product อยู่แล้ว

QA engineers do more than test software, but it’s a big part of the job.

เรื่อง testing แอดก็เพิ่งรู้ว่ามันมีเยอะขนาดนี้ 555+ เช่น smoke test, regression test, exploratory test ไม่รวมรายละเอียดยิบย่อยอีก ไว้แอดเขียนสรุปให้อ่าน

Soft skill ที่สำคัญมากของ QA engineer คือเรื่องการสื่อสาร ไม่ว่าจะเป็นการเขียน (Writing) หรือการเล่าเรื่อง (Communication) เพราะเราต้องคุยกับคนอื่นๆ ทั้งเพื่อน software engineer ด้วยกัน ผู้บริหาร รวมถึงลูกค้าหรือ end-users

Learning Plan

QA Engineering (Quality Assurance) ของ tripleten เป็นหลักสูตร 5 เดือน 9 sprints เรียนแบบออนไลน์ของประเทศอเมริกา เนื้อหาครอบคลุมเรื่อง

  • เข้าใจภาพรวมของการทำงานเป็น software engineer/ developer
  • ออกแบบและเขียน test, document และ bug reports
  • manual vs. automated test
  • ได้ลอง test หลายๆ applications เช่น web, app, database, API
  • รู้จักเครื่องมือหลักของ QA engineer เช่น Postman, Jira, SQL
  • เรียนพื้นฐาน JavaScript สำหรับงาน QA Engineering

บริษัทแม่ของ tripleten คือ Yandex เป็น tech giant ของรัสเซีย รายได้ 12 เดือนหลังสุด อัพเดท ก.ย. 2023 อยู่ที่ $7.85B หรือประมาณสองแสนล้าน โหดมาก

จริงๆแอดเคยลงเรียน practicum bootcamp มาปีก่อนๆ แต่ไม่จบ 555+ รอบนี้มาแก้ตัวใหม่อีกรอบ จะสู้เต็มที่ เป็นกำลังใจให้แอดด้วยนะครับ ✌️

Sprints

Sprint แรกของ bootcamp คือ Testing Fundamentals แบ่งเป็น 6 chapters

  • Introduction to the QA profession
  • ✅ Software development lifecycle (SDLC)
  • ✅ Types of testing
  • Exploratory testing
  • ✅ Bug reports
  • First project

✅ คือหัวข้อที่แอดคิดว่าสำคัญ และ QA engineer ทุกคนต้องรู้เรื่องนี้แม่นๆเลย

Sprint คือรูปแบบการทำงานของ agile (scrum) team โดยใช้เทคนิค time-boxing เพื่อทำงานให้เสร็จในเวลาที่กำหนด ส่วนใหญ่ sprint หนึ่งจะใช้เวลา 1-2 สัปดาห์

สมัยแอดไปฝึกงานที่ ODDS ทำ mobile app ก็ใช้ 2-week sprint งานรีบ 555+

ส่วนตัวแอดคิดว่า sprint ใช้งานได้ดีมากเลย แนวๆ deadline driven เลยหยิบไอเดียนี้มาใช้ตอนสร้าง data science bootcamp รูปแบบการเรียนของเราเป็น sprint เหมือนกัน นักเรียนจะเก่งขึ้นเรื่อยๆพอจบแต่ละ sprint

Agile เรียก concept นี้ว่า “Incremental Development” คูลมาก

QA Profession

Amazon, Spotify, Meta, Apple, NASA, Tesla และทุกบริษัท tech ที่เรานึกออกต้องการ test engineers ทั้งหมดเลย

เราสร้าง software ขึ้นมาเพื่อตอบโจทย์ purpose บางอย่าง

และ test engineers หรือ QA จะเป็นคนที่คอยเช็คว่า software นั้นทำหน้าที่ได้อย่างที่เราคาดหวังไหม

Bug คือความแตกต่างระหว่าง actual และ expectation โดย QA จะเป็นคนหาและรายงาน bug เหล่านั้น เขียนรายงานส่งให้ software engineer ไปซ่อม ก่อนที่จะปล่อยอัปเดต software ให้ end-users ใช้งาน

Remember the Mars climate orbiter incident in 1999
Remember the Mars Climate Orbiter incident from 1999? (Source – Simscale)

แล้วถ้าเราไม่แก้ bug จะเกิดอะไรขึ้น?

ตัวอย่างโปรเจ็คของ NASA – Mars Climate Orbiter หลงทางในอวกาศปี 1999 ก็เกิดมาจากความผิดพลาดของซอฟต์แวร์ ทีม dev ใช้ระบบไม่เหมือนกันในการคำนวณเส้นทาง metric vs. imperial system เสียหายไป $125 ล้าน

ลองจินตนาการ mobile app ที่มี bug เพียบ users คงลบทิ้ง และเขียนรีวิว 1 ดาวกันหมด ไม่มีใครอยากใช้ app ที่เต็มไปด้วยข้อผิดพลาด

เขียนมาตั้งยาวสรุปคือ QA และ test engineers สำคัญจริงๆ 555+

QA Task Workflow

การทำงานของทีม software development (ต่อไปแอดเรียกสั้นๆว่า development team) จะแบ่งเป็น 4 phases ตั้งแต่ setting the task ไปจนจบ testing

Software development workflow
Software development workflow

Workflow การทำงานของ QA engineer จะตีขนานไปกับทีม development โดยแบ่งออกเป็น 4 phases เช่นกัน ตามรูปด้านล่าง

QA engineering workflow
QA engineering workflow

Phase 01 & 02 คือการวิเคราะห์ requirements และวางแผนการทำงาน แต่ละ task จะใช้เวลาเท่าไหร่ อะไรยังไง sprint นี้จะทำอะไรเสร็จบ้าง

Phase 03 – เขียน test cases และสร้าง checklists

Phase 04 – Testing execution รัน tests ทั้งหมดที่วางแผนไว้ ทำสรุปผลรายงาน document & bug report ส่งให้ทีม development ใน sprint ต่อไป

พอจบ sprint นั้นๆ หลังจากทำ retrospective (รีวิวงานต่างๆกับทีม) ก็จะเริ่ม loop 1-4 ใหม่ วิ่งวนแบบนี้ไปเรื่อยๆ ไม่มีวันจบ หรือจนกว่า product เราจะสิ้นอายุขัย

Types of Testing

รูปแบบการ testing แบ่งได้เป็น 7 หัวข้อหลักๆ อันนี้แอดยังจำได้ไม่หมดเหมือนกัน เยอะจัด 555+ เหมือนเป็น framework ให้เราเลือกทำ test ได้เหมาะสมขึ้น

น่าจะต้องค่อยๆซึมซับมันเข้าไป พอมาเขียนสรุปใน newsletter แบบนี้เหมือนแอดได้ทบทวนไปในตัวด้วย ขอบคุณทุกคนมากๆ 555+

  • Level of automation
    • Manual
    • Automated
  • Characteristics of the appplication
    • Functional
    • Non-Functional
  • Level of planning
    • Scripted
    • Exploratory
  • Iteration of testing
    • Testing new feature
    • Regression
  • Coverage level
    • Smoke
    • Extended
    • Exhaustive
  • Level of isolation
    • Component
    • Integration
    • System
  • Access to source code
    • Black
    • Gray
    • White

ที่แอดชอบสุด แบบเปลี่ยน mindset เลย คือการเลือกระหว่าง manual vs. automated testing แอดเคยเข้าใจว่าทุกอย่างต้อง automated หมด

จริงๆคือถ้าเราต้อง test ฟีเจอร์ใหม่ๆที่ requirements ยังไม่นิ่ง หรือมีความซับซ้อนสูง การทำ manual อาจจะเหมาะสมกว่าในช่วงแรก

จนกว่าทุกอย่างจะนิ่ง และชัดเจน เราค่อยเปลี่ยนมาทำ automated test หรือเขียนโค้ดเพื่อเช็คทุกอย่าง ความเสี่ยงของการทำ automated test ตั้งแต่แรก คือมีโอกาสสูงมากที่เราต้องเริ่มทำทุกอย่างใหม่อีกครั้ง (เพราะ change in requirements)

นั่ง recall เนื้อหาที่เรียน แอดจำ test ตัวหลักๆได้ตามนี้

  • Functional testing คือการทดสอบฟีเจอร์พื้นฐานของ app ว่าทำงานได้อย่างที่เราต้องการ เช่น users สามารถกดอัปโหลดรูป profile ใหม่ได้ ไม่เจอ bug
  • Smoke testing คือการเทสควัน เดี๋ยวๆ 555+ เป็นการ test รูปแบบที่ง่ายสุด แบบเช็คว่า app เราทำงานได้ไหม ไม่ได้ลงลึกมากเมื่อเทียบกับ exhaustive testing
  • Regression testing เวลาที่ app มีฟีเจอร์ใหม่ๆออกมา เราควรจะ test ฟีเจอร์เก่าๆด้วย ว่ามันยังใช้งานได้เหมือนเดิมไหม
  • Tour testing เป็นรูปแบบหนึ่งของ exploratory testing ที่ทดสอบ product ตาม theme ที่เรากำหนด เช่น feature tour หรือ scenario tour
  • Black-Gray-White testing คือระดับของ QA ที่มองเห็น code base ของ app ที่เราสร้างขึ้นมา black ไม่เห็นเลย ไปจนถึง white เห็นทุกอย่าง

แปลว่า QA engineer ที่สามารถเขียน อ่านและเข้าใจ coding ด้วย น่าจะเติบโตไปได้หลายสายเลย ชอบเขียนโค้ดก็พัฒนาไปเป็น software engineer

หรือถ้าชอบสายธุรกิจ ก็พัฒนาตัวเองไปสาย product management

The Project

ทุกๆ sprint จะมีโปรเจ็คให้เราลองทำจริงด้วย ของ sprint แรกเป็นการสร้าง Bug Reports ง่ายๆบน Jira

Jira คือซอฟต์แวร์สำหรับ issue & project tracking ใช้กันเยอะมากในสาย tech

จริงๆแอดว่า Notion ก็ทำได้เหมือนกัน สร้าง template ใน database + kanban แต่ฟีเจอร์ตอนนี้ยังสู้ Jira ตรงๆไม่ได้ เพราะมัน design มากันคนละแบบ

ตัวอย่าง bug reports บน Jira

โปรเจ็คนี้แอดเข้าไปหา bugs ใน web-app แผนที่ของ tripleten จะมี test cases ให้เราทำตาม และเขียนรายงานตาม template ที่เค้ามีให้

สิ่งที่ต้องเขียนลงใน bug report ในคอร์สนี้สอนว่ามี 6 หัวข้อ

  • Description ของ test ที่เรารัน
  • Environment เช่น Windows 11, Chrome Browser เวอร์ชัน 1.0x
  • Preconditions สถานะก่อนที่เราจะเริ่ม test เช่น blank form ก่อนเราใส่ข้อมูล
  • Steps ขั้นตอนการ test ของเรา เขียนเป็นขั้นตอน 1, 2, 3, …
  • Expected result ผลลัพธ์ที่ควรจะเป็น
  • Actual result ผลลัพธ์ที่เกิดขึ้นจริง

แอดส่งไปสองรอบ ก็ผ่านแล้ว ไม่ยาก 555+ sprint แรกหลอกเราให้ตายใจก่อน

We only know what we make.

แอบดูเนื้อหา sprint ถัดไป เรื่อง Test Design and Document จะเป็นลม เนื้อหาเกือบสองเท่าของรอบก่อน มีเวลาเรียนประมาณ 2 สัปดาห์ เดี๋ยวแอดไปลุยต่อแป๊บ

Podcast, Maybe?

กำลังคิดว่าแต่ละสัปดาห์ จะอัดเป็น podcast เล่าเนื้อหาใน newsletter ฉบับนั้นๆด้วย เพื่อนๆคิดว่าไงบ้าง อยากอ่าน + ฟังเลยดีไหม

Comment บอกแอดได้ในโพสต์นี้เลยนะครับ รออ่านไอเดียทุกคนแล้ว ✌️💯

เจอกันใหม่ใน newsletter สัปดาห์หน้า ส่งตรงเข้า inbox ทุกวันจันทร์คร้าบ

Join 7 other subscribers

Comments

35 responses to “พื้นฐานสำคัญที่ควรรู้ของการเป็น QA Engineer”

  1. narongyodf84f79dcc2 Avatar
    narongyodf84f79dcc2

    เชียร์ทำ Podcast นะครับบบ

    1. จัดไปคร้าบพี่เบิ้ล

    2. จัดเลยครับเห็นด้วย

  2. รอฟัง podcast นะคะแอด

  3. กำลังคิดว่ามีทั้ง 2 อย่างก็ดีค่ะ เวลาเล่าก็จะได้ฟลีต่างไป ลงรายละเอียดได้มากขึ้น แต่เกรงว่าแอดจะทำงานซ้ำซ้อน

    1. ขอบคุณครับคุณ Falaloon สบายๆเลย podcast แอดว่าใช้เวลาไม่นานคร้าบ

  4. ผมเชียร์พี่ทอย ทำ podcast ด้วยคับ ผมชอบอ่านและฟังเวลาพี่ทอยสรุปเนื้อหาครับ🔥🔥🙏🏻

  5. Podcast ก็ดีนะคะ คุณทอย
    ได้ฟังตอนวิ่งออกกำลังกายยย แน๊ เผื่อได้นอนบ้าง 555 ไม่ใช่เซ่ เป็นการย้ำๆ อ่านแล้วก็ฟังด้วย (ถ้าดมได้ดมแล้ววว ใช้ประสาทสัมผัสให้คุ้มเลย) ยังไงแล้วก็ขอบคุณ คุณทอยมาก อ่านเพลินๆ ต่อยอดได้เหมือนเคย

    1. ขอบคุณครับคุณ Pick รอฟังได้เลยจ้า

  6. Varis M. Vanich Avatar
    Varis M. Vanich

    จัดมาครับแอด สนใจ Black White Gray Testing มากครับ อยากรู้แบบลึกๆ ว่าโครงสร้าง 3 รูปแบบเป็นยังไงครับ

    1. จัดไปครับคุณ Varis เหมือนเป็น level of transparency

      QA มาสาย white คือ coding เป็นด้วย สามารถแก้ bug ได้ที่ระดับ codebase เลยครับผม ส่วน black box จะไม่เห็น codebase ใดๆเลย

  7. Regression test คุ้นๆ มีในเนื้อหาเซอร์ CISSP เลยค่ะ ส่วน black box white box นี่ฟีลเดียวกับเพนเทสเลย น่าเรียนๆ

  8. รอติดตาม podcast ค่าา เย้ๆ

  9. รอฟัง podcast แล้วค่าา ✌🏻

  10. jinnynonny Avatar

    มีประโยชน์มาก​ รออ่านหัวข้อต่อไป​ ขอบคุณแอดทอยมากค่ะ

  11. Arnon Sudyoddee Avatar
    Arnon Sudyoddee

    รอฟัง podcast ครับพี่ทอย ชอบฟังตอนขับรถ

  12. จัด podcast เลยครับอยากลองให้แอดทอยเอาท่านอื่นที่อยู่ในสายงานความรู้นี้มา ให้ข้อมูลเพิ่ม นั่งคุยกับแอดไปด้วยครับ

  13. pakbung.vegetable Avatar
    pakbung.vegetable

    เชียร์ podcast ค่ะพี่ทอย ถ้าบทความยาวๆแล้วฟังระหว่างขับรถดูน่าสนใจดี

    1. เด๋วอาทิตย์นี้ลองอัดเลย ขอบคุณคร้าบ รอฟังได้เลยครับ เย้

  14. รอฟัง podcast นะครับพี่ทอย

  15. Narongvit Thipjoy Avatar
    Narongvit Thipjoy

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

    1. ขอบคุณครับ เด๋วแอดลองดูหลายๆแบบ อยากให้ทุกคนได้เรียนสนุกๆด้วยกัน จัดไปคร้าบ : )

  16. ทำเป็นพอดแคสต์ด้วยจะเยี่ยมเลย เอาไว้ฟังเพลินๆค่ะแอด

  17. เชียร์ podcast +1 ค้าบแอดทอย ยังไงพักผ่อนด้วยนะครับแอด

    1. ขอบคุณครับคุณ Paveen ⛱️

  18. เชียร์ทำ podcast ครับผม เผื่อพี่ทอยขยายความ เห็นภาพมากขึ้นต่อได้ครับ

  19. ขอบคุณสำหรับ newsletter ครับแอดทอย มีส่วนเสริมเป็น Podcast อีกคือยอดเยี่ยมเลยครับ

  20. Khanokwain Khaewmart Avatar
    Khanokwain Khaewmart

    ยอมใจแอดทอย แชร์ความรู้ทุกช่องทาง อารมณ์เหมือนกลัวนักเรียนจะเจอบั๊กเลยค่ะ

  21. เชียร์ทำ podcast ครับ เป็นการทวนเนื้อหาให้แอดทอยไปในตัวด้วย 5555+

  22. ขอบคุณสำหรับเนื้อหาสัปดาห์นี้ค่ะ เชียร์ให้ทำ podcast อีกเสียงค่ะแอด

  23. ขอบคุณครับสำหรับความรู้

  24. Kiadtisak Avatar

    เชียร์ทำ podcast ครับ

  25. นายเกียรติศักดิ์ บัวเริง Avatar
    นายเกียรติศักดิ์ บัวเริง

    เชียร์ทำ podcast ครับ

  26. Hatsanai Pop Avatar
    Hatsanai Pop

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

  27. Natsakorn Avatar
    Natsakorn

    อ่านจนจบเลยครับ

Leave a Reply to Kasidis SatangmongkolCancel reply

Discover more from The Weekend Engineer

Subscribe now to keep reading and get access to the full archive.

Continue reading