ทีม QA ทำอะไรในการพัฒนาซอฟต์แวร์หากไม่พบข้อบกพร่องทุกวัน
เผยแพร่แล้ว: 2023-01-27วิศวกรประกันคุณภาพ (QA) มักจะได้ยินสิ่งนี้:
“ทีมของคุณตรวจพบข้อบกพร่อง 20 รายการเมื่อวานนี้ แต่วันนี้คุณไม่พบเลย!”
จุดยืนนี้อาจดูเหมือนถูกต้อง แต่ขัดแย้งกับจุดประสงค์และเป้าหมายของการประกันคุณภาพในการพัฒนาซอฟต์แวร์
QA ทำอะไรในการพัฒนาซอฟต์แวร์กันแน่?
ในบทความนี้ Andrey Gilyov รองหัวหน้าหน่วย QA ของ ITRex อธิบายว่าทำไมทีม QA ของคุณถึงไม่ทำงานแม้ว่าพวกเขาจะพบจุดบกพร่องน้อยลงก็ตาม นอกจากนี้ คุณจะได้เรียนรู้ว่าเหตุใดคุณจึงควรจ้างวิศวกร QA เพื่อเพิ่มพูนทีมไอทีภายในองค์กรหรือจากภายนอก แทนที่จะให้วิศวกรซอฟต์แวร์ทดสอบโค้ด
ทำความเข้าใจกับเป้าหมาย QA และเหตุใดจึงไม่จำกัดเฉพาะการติดตามจุดบกพร่อง
ขึ้นอยู่กับประเภทและความซับซ้อนของโซลูชันซอฟต์แวร์ที่คุณต้องการสร้าง คุณอาจต้องการผู้เชี่ยวชาญด้าน QA แบบพาร์ทไทม์หรือทีม QA โดยเฉพาะที่มอบหมายให้กับโครงการของคุณ และความรับผิดชอบของพวกเขาขยายไปไกลกว่าการระบุจุดบกพร่องและรายงานต่อผู้จัดการโครงการและทีมพัฒนา
โดยเฉพาะอย่างยิ่ง เป้าหมายการประกันคุณภาพครอบคลุม:
- การป้องกันข้อผิดพลาด การสำรวจล่าสุดระบุว่าวิศวกรซอฟต์แวร์ใช้เวลาประมาณ 20% ของเวลาทั้งหมดเพื่อแก้ไขข้อบกพร่อง คูณเวลานั้นด้วยอัตรารายชั่วโมงโดยเฉลี่ยของวิศวกรซอฟต์แวร์ แล้วคุณจะรู้ว่าโค้ดที่มีข้อบกพร่องอาจทำให้บริษัทของคุณเสียหายได้มากเพียงใด ราคาของการแก้ไขข้อผิดพลาดยังเพิ่มขึ้นแบบทวีคูณตามเวลาในเวิร์กโฟลว์การพัฒนาซอฟต์แวร์ — และนั่นยังไม่รวมถึงผลกระทบระยะยาวของการปล่อยซอฟต์แวร์ที่มีข้อบกพร่องไปสู่การผลิต เช่น ช่องโหว่ด้านความปลอดภัย ประสบการณ์ของลูกค้าที่ลดลง และการสูญเสียชื่อเสียง ดังนั้น จุดประสงค์หลักของการประกันคุณภาพในการพัฒนาซอฟต์แวร์จึงอยู่ที่การค้นหาจุดบกพร่องก่อนที่จะสร้างความเสียหายอย่างมีนัยสำคัญ เพื่อให้บรรลุผลสำเร็จ ทีม QA เตรียมตัวสำหรับการทดสอบเป็นเวลานานก่อนที่จะวางมือในโซลูชันซอฟต์แวร์ กิจกรรมการเตรียมการเหล่านี้รวมถึงการทบทวนเอกสารประกอบการทดสอบ การเขียนแผนการทดสอบและกรณีทดสอบ การเลือกเครื่องมือทดสอบที่เหมาะสม และการกำหนดค่าสภาพแวดล้อมการทดสอบ
- การติดตามและประเมินสถานะของซอฟต์แวร์ ในการตัดสินใจอย่างรอบรู้ในโครงการซอฟต์แวร์ ผู้จัดการโครงการและลูกค้าต้องการข้อมูลล่าสุดเกี่ยวกับผลิตภัณฑ์ซอฟต์แวร์ที่พวกเขากำลังทำอยู่ เป้าหมายการประกันคุณภาพ เหนือสิ่งอื่นใด รวมถึงการให้ข้อมูลนี้ในช่วงเวลาใดก็ตามตามไทม์ไลน์ของโครงการซอฟต์แวร์ อย่างไรก็ตาม เป็นสิ่งที่ควรค่าแก่การกล่าวถึงว่าวิศวกรประกันคุณภาพไม่ได้เลือกเวลาที่ดีที่สุดสำหรับการเผยแพร่โซลูชันซอฟต์แวร์ แต่เป็นลูกค้าที่ตัดสินใจขั้นสุดท้าย เมื่อปรึกษาทีม QA แล้ว ลูกค้าอาจตัดสินใจเปิดตัวโซลูชันซอฟต์แวร์ที่มีข้อบกพร่องและข้อผิดพลาดที่บันทึกไว้เป็นเอกสาร! ตัวอย่างเช่น คุณสามารถตัดสินใจได้เมื่อกรอบเวลาสำหรับการเผยแพร่ผลิตภัณฑ์ของคุณค่อนข้างจำกัด และการแลกเปลี่ยนระหว่างรางวัล เช่น การแซงหน้าคู่แข่งหรือการเปิดใช้งานคุณลักษณะที่สำคัญ มีขนาดใหญ่กว่าความเสี่ยงที่จะเปิดตัวพร้อมกับข้อบกพร่องเล็กน้อย ไม่ว่าจะด้วยวิธีใด คุณต้องตรวจหา จัดทำเอกสาร และจัดลำดับข้อบกพร่องเหล่านี้ และนั่นก็เป็นหนึ่งในเป้าหมายของทีม QA ของคุณด้วย
- การตรวจสอบความต้องการ บทบาทหลักของ QA ในการพัฒนาซอฟต์แวร์คือการยืนยันว่าโซลูชันซอฟต์แวร์ของคุณทำงานตามที่คาดไว้และตรงตามเกณฑ์ทั้งหมดที่กำหนดโดยเอกสารข้อกำหนดข้อกำหนดซอฟต์แวร์ (SRS) เมื่อผู้เชี่ยวชาญด้านการประกันคุณภาพทำการทดสอบด้วยตนเองหรือแบบอัตโนมัติและระบุจุดบกพร่อง พวกเขาจะสร้างตั๋วในระบบซอฟต์แวร์ติดตามจุดบกพร่อง เช่น Jira หรือ ClickUp สำหรับทีมพัฒนา เมื่อทีมพัฒนาแก้ไขข้อผิดพลาดแล้ว วงจรการทดสอบจะเกิดขึ้นซ้ำ ดังนั้น การค้นหาจุดบกพร่องจึงไม่ใช่จุดประสงค์ของการประกันคุณภาพ ค่อนข้างเป็นผลิตภัณฑ์เสริมของกิจกรรม QA
ทีม QA บางครั้งไม่พบจุดบกพร่องใดๆ และไม่เป็นไร
ตอนนี้คุณได้สรุปเกี่ยวกับเป้าหมายและวัตถุประสงค์ของ QA แล้ว ให้กลับไปที่คำถามที่เราตั้งขึ้นในตอนต้นของบทความนี้
ทีม QA ทำอะไรในการพัฒนาซอฟต์แวร์หากรายงานข้อบกพร่องของพวกเขาไม่มีข้อบกพร่องเป็นเวลาหลายวัน
มีเหตุผลหลายประการที่ผู้เชี่ยวชาญด้าน QA อาจไม่พบจุดบกพร่องในซอฟต์แวร์ของคุณ:
- ซอฟต์แวร์ได้รับการทดสอบอย่างละเอียด หากโซลูชันซอฟต์แวร์ผ่านการทดสอบอย่างละเอียด มีโอกาสน้อยที่ข้อบกพร่องจะเกิดขึ้นเมื่อวงจร QA ซ้ำหรือผลิตภัณฑ์เข้าสู่การผลิต
- ซอฟต์แวร์มีการออกแบบที่เรียบง่าย แอปพลิเคชันที่มีชุดคุณลักษณะที่จำกัด การผสานรวม และส่วนต่อประสานผู้ใช้ที่เรียบง่าย มีโอกาสน้อยที่จะมีข้อบกพร่องมากกว่าซอฟต์แวร์ที่มีข้อกำหนดด้านสถาปัตยกรรมและประสิทธิภาพที่ซับซ้อนกว่า
- ซอฟต์แวร์นี้สร้างขึ้นโดยใช้แนวทางปฏิบัติที่ดีที่สุด ทีมวิศวกรรมซอฟต์แวร์ที่เขียนโค้ดที่ชัดเจนและมีเอกสารครบถ้วน ปฏิบัติตามมาตรฐานการเข้ารหัส และใช้การควบคุมเวอร์ชันมักจะส่งมอบผลิตภัณฑ์ซอฟต์แวร์ที่มีข้อผิดพลาดน้อย จุดบกพร่องเหล่านี้ได้รับการตรวจพบและแก้ไขตั้งแต่เนิ่นๆ ในกระบวนการทดสอบ และไม่มีข้อบกพร่องเพิ่มเติมที่จะแสดงออกมาในขั้นต่อๆ ไป
- กระบวนการทดสอบอาจครอบคลุมมากกว่านี้ การไม่มีเวลา ทรัพยากร หรือทักษะอาจทำให้ผู้เชี่ยวชาญด้าน QA ไม่สามารถทดสอบโซลูชันซอฟต์แวร์ของคุณได้อย่างละเอียดถี่ถ้วน เป็นผลให้ข้อผิดพลาดบางอย่างอาจถูกมองข้าม
- ข้อบกพร่องไม่สามารถทำซ้ำได้ บางครั้ง ผู้เชี่ยวชาญด้าน QA อาจไม่พบจุดบกพร่องใดๆ เนื่องจากข้อผิดพลาดไม่ได้เกิดขึ้นอย่างสม่ำเสมอ ปัจจัยต่างๆ รวมถึงความซับซ้อนของซอฟต์แวร์ การใช้ไลบรารีของบุคคลที่สาม หรือการมีอยู่ของการอ้างอิงภายนอก อาจนำไปสู่สถานการณ์ดังกล่าว
ไม่ว่าจะด้วยสาเหตุใด คุณไม่ควรประเมินความสำคัญของ QA ในการพัฒนาซอฟต์แวร์ต่ำเกินไป อย่าประสากับความคิดที่จะให้นักพัฒนาทดสอบโค้ดให้คุณ
อย่าเข้าใจฉันผิด: เป็นเรื่องปกติสำหรับนักพัฒนาในการเขียนและดำเนินการทดสอบอัตโนมัติในทีม Agile ข้ามสายงาน หรือแม้แต่ทดสอบซอฟต์แวร์ด้วยตนเอง
อย่างไรก็ตาม ในทีมดังกล่าวซึ่งมักมีการแชร์บทบาทของโครงการ เป้าหมายหลักคือการเผยแพร่ซอฟต์แวร์หรือคุณลักษณะที่ใช้งานได้เร็วขึ้น ลดเวลาในการสร้างคุณค่าและรวบรวมความคิดเห็นตั้งแต่เนิ่นๆ ที่นี่เราอาจจัดการกับปัญหาความเสี่ยงเทียบกับรางวัลที่อธิบายไว้ในส่วนก่อนหน้า และโครงการของคุณอาจสะสมหนี้ทางเทคนิค ซึ่งนำไปสู่ปัญหาด้านประสิทธิภาพและค่าใช้จ่ายในการดีบักที่สำคัญในอนาคต
เหตุผลอื่น ๆ ในการจ้างผู้เชี่ยวชาญด้าน QA โดยเฉพาะมีดังนี้:
- การรู้วิธีเขียนโค้ดไม่เท่ากับการรู้วิธีตรวจสอบโค้ดเพื่อหาข้อผิดพลาดที่อาจเกิดขึ้น
- นักพัฒนาไม่ค่อยสนุกกับการทดสอบ ในขณะที่ผู้เชี่ยวชาญด้าน QA ชอบ
- อัตรารายชั่วโมงของวิศวกรซอฟต์แวร์มักจะสูงกว่าอัตราของผู้เชี่ยวชาญด้านการประกันคุณภาพ
- โดยปกติแล้ว Developers และ QA Engineers จะมี Soft Skill ที่แตกต่างกัน สำหรับ QA การใส่ใจในรายละเอียด ความสามารถในการวิเคราะห์ระบบที่ซับซ้อน และการทำงานหลายอย่างพร้อมกันถือเป็นจุดศูนย์กลาง ในทางกลับกัน วิศวกรซอฟต์แวร์มักจะทำงานในสภาพแวดล้อมที่มีการทำงานร่วมกันและมุ่งเน้นไปที่งานเดียวในแต่ละครั้ง
ดังนั้น แม้ว่าวันนี้ทีม QA ของคุณจะไม่พบจุดบกพร่อง แต่อย่าถูกล่อลวงให้เลิกจ้างผู้เชี่ยวชาญด้านการประกันคุณภาพหรือมอบหมายงานทดสอบให้กับทีมพัฒนาหลัก แม้ว่าวิธีการนี้อาจลดเงินเดือนของคุณในระยะสั้น แต่ต้นทุนของการสูญเสียลูกค้าของคุณเนื่องจากประสิทธิภาพซอฟต์แวร์ต่ำหรือการโจมตีทางไซเบอร์ที่เกี่ยวข้องกับบั๊กอาจสูงขึ้นหลายเท่า
และถ้าคุณต้องการความช่วยเหลือในการตรวจสอบว่าซอฟต์แวร์ของคุณทำงานได้ดี ตรงตามข้อกำหนดทั้งหมดที่ระบุไว้ใน SRS หรือวิสัยทัศน์ทางเทคนิคของคุณ และช่วยให้คุณบรรลุวัตถุประสงค์ทางธุรกิจ โปรดติดต่อผู้เชี่ยวชาญของ ITRex QA!
เผยแพร่ครั้งแรกที่ https://itrexgroup.com เมื่อวันที่ 20 มกราคม 2023