Quality Assurance กับการพัฒนา Application

Quality Assurance คืออะไร?

 ในการพัฒนา Application ด้วยวิธีการทำงานแบบ Agile นั้น สิ่งที่จำเป็นคือ Development team ที่มีเป้าหมายในการทำให้งานนั้นลุล่วงไปด้วยดี ซึ่งก็ไม่มีกฏตายตัวที่จะกำหนดว่า ใน Development team จะต้องประกอบไปด้วยใครบ้าง ในบางทีม อาจจะคิดว่า Quality Assurance นั้นไม่จำเป็น เพราะคิดว่าไม่ต้องมี Quality Assurance ก็สามารถพัฒนาได้ตามเป้าหมาย แต่ก็ยังมีอีกหลายแห่ง ที่มี Quality Assurance ร่วมอยู่ในทีมด้วย

Quality Assurance หรือ QA แปลว่า “การประกันคุณภาพ” ซึ่งถึงจะชื่อตำแหน่งเดียวกัน แต่ QA ของแต่ละบริษัทก็อาจจะทำหน้าที่ไม่เหมือนกัน หรือในบางบริษัท QA อาจจะไม่ได้ทำหน้าที่เกี่ยวกับการพัฒนา Application เลยก็มี แต่สำหรับ Swiftlet QA นั้นสำคัญไฉน? เรามาดูหน้าที่ของ QA กัน

วางแผนในแต่ละ Story

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

แต่ละ Story มีการทำงานและเป้าหมายที่แตกต่างกัน มีสิ่งที่ควรทำได้ และสิ่งที่ไม่ควรทำ สิ่งสำคัญที่สุดของ QA คือการเป็นผู้ที่คิดขั้นตอนในการทดสอบสิ่งเหล่านั้น ทั้งสิ่งที่จำเป็นต้องมี และสิ่งที่ห้ามเกิดขึ้น เพราะหากไม่สามารถ Test ได้อย่างทั่วถึง ก็อาจจะทำให้เกิดข้อผิดพลาดหลุดไปสู่ผู้ใช้งาน หรือ อาจมีผู้ไม่หวังดี ใช้ช่องโหว่นั้นในการโจมตีได้ โดยในตอนเริ่มต้น QA จะต้องใช้ข้อมูลที่ได้จากการวางแผน เพื่อคิด Test cases เท่านั้น คือต้องจินตนาการภาพของการทำงานโดยยังไม่เห็นของจริง ซึ่งกำลังอยู่ในการพัฒนาของ Developer และหลังจากที่ Feature ที่พัฒนาเสร็จแล้ว จึงทำการทดสอบตามสิ่งที่คิดไว้ และอาจมีการเพิ่มเติม Test cases หลังจากที่ได้เห็นของจริง

 

Test cases

 ด้วยการทำงานแบบ Agile ทำให้การพัฒนาถูกแบ่งออกย่อยๆตาม Story แต่ละ Story ก็จะเป็น Software ที่ใช้งานได้จริง เพราะฉะนั้น การพัฒนาแต่ละ Story อาจจะทำให้เกิดผลกระทบต่อ Story ที่เคยทำมา จึงต้องได้รับการ Test อย่างสม่ำเสมอ ซึ่งหากเราใช้แรงคนในการ Test ทุกครั้ง เราอาจจะต้องมี Tester มากมายเพื่อมานั่ง Test เราจึงมีเครื่องมือที่ช่วยเหลือในการทำงาน โดยจาก Test cases ที่เราคิดมา และลงมือ Test ด้วยมือลงไป เราจะแปลงมันให้กลายเป็น Automated test ด้วยการเขียนคำสั่งด้วย tools ที่เรามี จากนั้นในทุกขั้นตอนของการพัฒนา เราก็สามารถ run automated test เพื่อทดสอบความถูกต้องได้ตลอด โดยไม่ต้องใช้แรงงานคนจำนวนมาก อีกทั้ง Automated test ที่ QA เขียนขึ้นนั้น เป็นการ Test ที่หน้า Application จริงๆ เปรียบเสมือนการใช้งานจริงของผู้ใช้ ทำให้สามารถ Test สิ่งที่ Unit testing ทำไม่ได้ เช่นการทำงานของ Javascript หรือ Angular JS ในการคลิก ลาก-วาง กรอกข้อมูล การทำงานกับ object ต่างๆในหน้าจอ เป็นต้น 

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

รับพัฒนาซอฟต์แวร์ และ แอปพลิเคชัน

           คุณสามารถเลือกหรือให้เราแนะนำ Platform ที่มีความเหมาะสมกับ ไอเดียหรือรูปแบบความต้องการทางธุรกิจคุณมากที่สุด ไม่ว่าจะเป็น Web Application / Mobile Application หรือ Native Application ฯลฯ โดยที่เราไม่ใช่เพียงแค่บริษัทรับพัฒนา Software หรือ Application แต่เราคือ Partner ด้าน Solution ของคุณที่ช่วยพัฒนาและพาธุรกิจของคุณไปข้างหน้าให้เป็นไปตาม Business Model ที่วางไว้