5 เคล็ดลับเพื่อให้แน่ใจว่าการพัฒนาซอฟต์แวร์ปราศจากข้อผิดพลาด

เผยแพร่แล้ว: 2017-10-24

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

มีระเบียบวินัยมากมายที่เกี่ยวข้องกับการติดตามจุดบกพร่อง เนื่องจากต้องสนับสนุนให้ทุกคนยืนหยัดตามกฎ โดยเฉพาะอย่างยิ่งในธุรกิจสตาร์ทอัพและอุตสาหกรรมที่ขับเคลื่อนด้วยความคิดสร้างสรรค์ เป็นเรื่องยากมากที่จะกีดกันการสื่อสารที่ไม่เป็นทางการ ในความเป็นจริง ในหลายกรณี ผู้คนไม่ได้ตั้งชื่อ 'การติดตามจุดบกพร่อง' ว่าเป็นส่วนที่เน้นมากที่สุดในโครงการ

จริงๆ แล้วการติดตามบั๊กเกี่ยวกับอะไร?

What is bug-tracking really about?

ตาม Technopedia: " การติดตามจุดบกพร่องเป็นกระบวนการที่ใช้โดยเจ้าหน้าที่ประกันคุณภาพและโปรแกรมเมอร์เพื่อติดตามปัญหาซอฟต์แวร์และวิธีแก้ไข

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

การจำแนกข้อผิดพลาด

ข้อบกพร่องของซอฟต์แวร์มีสามประเภท:

  • ข้อมูลจำเพาะไม่ถูกต้อง
  • ข้อบกพร่องในการใช้งาน
  • ไม่มีข้อมูลจำเพาะ

ข้อบกพร่องประเภทใดประเภทหนึ่งเหล่านี้สามารถจำแนกได้ง่ายว่าเป็นปัญหาสำคัญ (หรือจัดประเภทใหม่เป็นการปรับปรุง) แนวทางการจัดประเภทใหม่บางส่วนที่กล่าวไว้ข้างต้นซึ่งใช้โดย Sam Hatoum ผู้ก่อตั้ง Xolv.io

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

จะเพิ่มเงินเดิมพันสำหรับผู้จัดการผลิตภัณฑ์เพื่อจำแนกจุดบกพร่องอย่างมีประสิทธิภาพ เนื่องจากทีมพัฒนาได้รับคำแนะนำให้จัดลำดับความสำคัญของจุดบกพร่องมากกว่างานอื่นๆ ทั้งหมด นักพัฒนาจะไม่ทำงานหรืออย่างอื่นจนกว่าข้อบกพร่องทั้งหมดจะถูกลบออก

ขึ้นรูปมาตรฐานคุณภาพทีมงาน

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

ระบบการจัดประเภทใหม่ที่สอดคล้องกันช่วยให้คุณปรับความคาดหวังเทียบกับความเป็นจริงได้อย่างต่อเนื่อง ในขณะที่ยังคงแนวทางการส่งมอบที่มีโครงสร้างซึ่งให้ความสำคัญกับมาตรฐานคุณภาพทีมของคุณเป็นอันดับแรก

ข้อผิดพลาดความล้มเหลว

การศึกษาล่าสุดอ้างว่าเกือบ 40 เปอร์เซ็นต์ของความล้มเหลวของระบบเกิดจากข้อบกพร่องของซอฟต์แวร์ ในขณะที่ปัญหาด้านความปลอดภัยอื่นๆ และช่องโหว่ของโปรแกรมคิดเป็น 60 เปอร์เซ็นต์ ซึ่งเกิดจากปัญหาทั่วไปเกี่ยวกับหน่วยความจำและการทำงานพร้อมกัน การลดจุดบกพร่องของซอฟต์แวร์ในแอปพลิเคชันของคุณเป็นวิธีที่ดีที่สุดในการเพิ่มความปลอดภัย ความเสถียร และความน่าเชื่อถือของซอฟต์แวร์ของคุณ

เคล็ดลับเพื่อให้แน่ใจว่าการพัฒนาซอฟต์แวร์ปราศจากข้อบกพร่อง

ในระหว่างการพัฒนาเครื่องมือบันทึก SmartInspect นักพัฒนาใช้วิธีการมากมายเพื่อรักษาคุณภาพของระบบให้อยู่ในระดับสูง รายการที่กล่าวถึงข้างต้นมีเทคนิคบางอย่างที่พวกเขาใช้

1. การสร้างห้องสำหรับการสื่อสาร

Creating room for communication

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

ในสถานการณ์การทดสอบบางสถานการณ์ ไม่มีที่ว่างสำหรับการเปิดเผยประเภทนั้นระหว่างนักพัฒนาและผู้ทดสอบ คำถามเช่น: 'ฉันจะติดต่อผู้เชี่ยวชาญที่รับผิดชอบได้อย่างไร' หรือ 'สามารถขอความคิดเห็นทางโทรศัพท์หรืออีเมลได้หรือไม่' จำเป็นต้องตอบในช่วงเริ่มต้นของกระบวนการติดตามจุดบกพร่อง

เพื่อหลีกเลี่ยงความเข้าใจผิดในนามของผู้ทดสอบและนักพัฒนา ให้พยายามทำให้ทุกคนเข้าใจตรงกัน และสร้างวัฒนธรรมที่เน้นความคิดเห็น โดยให้ความเคารพต่องานของทั้งสองฝ่ายในลักษณะเดียวกัน

2. เก็บไว้ตัวต่อตัว

หลีกเลี่ยงการพูดถึงจุดบกพร่องในการประชุมโครงการ ตอนนี้อย่าเข้าใจฉันผิด การทำงานเป็นทีมไม่ใช่เรื่องแย่ ทำซ้ำและแก้ไขข้อบกพร่อง แต่อย่าพูดถึงปัญหาในการประชุมที่ยาวนานกับคณะรัฐมนตรีทั้งหมด ตามที่ Thomas Peham บล็อกเกอร์ด้านเทคโนโลยีที่ Usersnap.com ได้รายงานจุดบกพร่องแล้วพูดคุยกันในช่วง 'ทดสอบซ้ำ' ของการพัฒนาครั้งต่อไป เป็นวิธีที่ค่อนข้างช้า

เป็นวิธีที่มีประสิทธิภาพมากกว่าในการรักษาแบบตัวต่อตัว ตามที่ Yegor เขียนไว้ในบทความของเขาเกี่ยวกับหลัก 5 ประการของการติดตามจุดบกพร่อง รายงานข้อบกพร่องแต่ละรายการจะเชื่อมโยงกันระหว่างคนสองคน – ตัวระบุและตัวแก้ไขปัญหา ไม่ว่าจะมีผู้เข้าร่วมกี่คนในกระบวนการ มีหน้าที่หลักเพียง 2 ประการ (โดยมีบทบาทต่างกันสองบทบาท) ในการแก้ปัญหาที่รายงาน

3. ให้แน่ใจว่าได้รับการบายอินจากทีมของคุณ

หากทั้งทีมของคุณไม่ได้ใช้ ฐานข้อมูลการติดตามจุดบกพร่องที่ดีจะไม่ได้ผล เป็นการดีที่สุดที่จะเริ่มต้นด้วยการให้ผู้มีส่วนได้ส่วนเสียทั้งหมดของคุณ (การบริการลูกค้า การประกันคุณภาพ ผู้จัดการโครงการ และนักพัฒนา) เพื่อประเมินเครื่องมือและพยายามตัดสินใจร่วมกัน การบันทึกและการแก้ไขข้อบกพร่องในลักษณะที่สอดคล้องกันโดยใช้ระบบเดียวกัน

หากคุณกำลังประสบปัญหาในการรับคนเข้าทำงาน นี่คือสิ่งที่คุณสามารถทำได้

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

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

  • ดีบักเกอร์ที่ดี

Visual Studio

หากคุณใช้ระบบเช่น Visual Studio หรือ Delphi คุณมีสิทธิ์เข้าถึงดีบักเกอร์ที่ทรงพลังอย่างยิ่งที่คุณควรใช้ ในกรณีของสภาพแวดล้อมการเขียนสคริปต์ที่นักพัฒนามักจะพยายามกำจัดจุดบกพร่องด้วยการลองผิดลองถูก กระบวนการนี้ไม่เพียงแต่จะกลายเป็นวิธีการระบุและแก้ไขปัญหาที่ยุ่งยากเท่านั้น แต่ยังเป็นอันตรายอย่างยิ่งหากคุณไม่เข้าใจรหัสของคุณอย่างถ่องแท้และไม่สามารถ ก้าวผ่านมันด้วยดีบักเกอร์ ช่วยตัวเองด้วยการสร้างแพลตฟอร์มการดีบักที่ดีสำหรับทีมของคุณ – มีโปรแกรมแก้ไขข้อบกพร่องสำหรับเกือบทุกอย่าง

4. รู้ว่าข้อผิดพลาด 'ปิด' หมายถึงอะไร

คุณเคยมีส่วนร่วมในการอภิปรายเกี่ยวกับการปิดจุดบกพร่องหรือไม่? ยินดีด้วย คุณอยู่ในสถานการณ์การติดตามบั๊กที่แย่ที่สุดเท่าที่เป็นไปได้

หากคุณพบว่าตัวเองอยู่ในการสนทนาเกี่ยวกับ 'สถานะข้อบกพร่อง' ให้ลองถอยออกมาและถามตัวเองด้วยคำถามต่อไปนี้:

  • การยอมรับผลลัพธ์เป็นความรับผิดชอบของใคร?
  • เกณฑ์การยอมรับคืออะไร?
  • ใครเป็นผู้รับผิดชอบในการออกคำสั่ง?

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

5. เครื่องเสมือน

เพื่อทดสอบซอฟต์แวร์ของคุณเพื่อหาจุดบกพร่องบนระบบปฏิบัติการและสภาพแวดล้อมต่างๆ ให้ได้มากที่สุด คุณควรใช้เครื่องเสมือนกับเครื่องมือต่างๆ เช่น Virtual PC หรือซอฟต์แวร์การจำลองเสมือนอื่นๆ คุณสามารถประหยัดเวลาได้มากด้วยวิธีนี้ เนื่องจากคุณสามารถคัดลอก แชร์ และรีเซ็ตเครื่องเสมือนได้อย่างง่ายดาย ช่วยให้คุณทดสอบซอฟต์แวร์ของคุณกับการกำหนดค่าทุกประเภท

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

ไม่ใช่แนวคิดใหม่

เมื่อ Hatoum คิดแนวคิดนี้ขึ้นมา เขาพบว่าแนวคิดของซอฟต์แวร์ Zero-Bug ไม่ใช่แนวคิดใหม่ อันที่จริงมีมาตั้งแต่ทศวรรษ 1960 เช่นเดียวกับปรัชญาโรงเรียนเก่าที่ถูกลืมไปหลายข้อ

ฟิลิป ครอสบี ผู้เชี่ยวชาญด้านคุณภาพระดับตำนาน ได้คิดค้นคำว่า Zero-Defect ขณะทำงานที่ Martin Company หรือที่รู้จักกันในชื่อ 'Lockheed Martin' ซึ่งปัจจุบันมีรายงานว่าพวกเขาบรรลุ "การลดข้อบกพร่องในฮาร์ดแวร์ 54% ภายใต้การตรวจสอบของรัฐบาล"

ในขั้นต้น เทคนิค Zero-Defect ถูกใช้ในการผลิตอากาศยานในทศวรรษที่ 60 และนำไปใช้ในการผลิตยานยนต์ในปี 1990 มีความคล้ายคลึงกันมากมายระหว่างอุตสาหกรรมการผลิตและการส่งมอบซอฟต์แวร์

ตัวอย่าง Kanban การจัดการที่คล่องตัวที่ได้รับความนิยมนั้นมาจากระบบการผลิตของโตโยต้า โดยพื้นฐานแล้วสิ่งนี้บอกเราได้ว่าเราสามารถพิจารณากระบวนการผลิตเหล่านี้เพื่อหาแรงบันดาลใจด้านเทคโนโลยีในการพัฒนาซอฟต์แวร์หรือแอพได้อย่างง่ายดาย และ Zero-Bug เป็นหนึ่งในแรงบันดาลใจเหล่านั้น

อย่างไรก็ตาม ต้นทุนที่สูงมากในการปฏิบัติตามมาตรฐานนั้นเป็นข้อวิจารณ์ที่สำคัญอย่างหนึ่งของแนวทาง Zero-Defect และหากนำไปใช้อย่างไม่ถูกต้อง เรื่องนี้ก็อาจเป็นจริงได้ ในแนวทาง Zero-Bug Hatoum ได้จัดการกับปัญหานี้โดยตรงผ่านการจัดประเภทข้อบกพร่องใหม่เป็นคุณลักษณะและการปรับปรุงที่สำคัญ ทำให้สามารถควบคุมต้นทุนได้ผ่านมาตรฐานคุณภาพของทีม

เริ่มวันนี้

ในฐานะผู้ใช้เทคโนโลยีและนักพัฒนา คุณสามารถเริ่มต้นผ่านข้อบกพร่องที่มีอยู่ทั้งหมดและจัดประเภทได้โดยใช้ระบบดังกล่าว หากคุณคิดว่าคุณมีปัญหาหลายแสนปัญหา นี่อาจเป็นเวลาที่ดีที่จะเริ่มงานค้างและเริ่มต้นใหม่ ไม่ต้องกังวล คุณสามารถย้ายจุดบกพร่องจากที่เก็บถาวรไปยังโดเมนปัจจุบันได้ตามต้องการ

ทีมพัฒนาไม่จำเป็นต้องรอจนกว่าการฝึกจำแนกประเภททั้งหมดจะเสร็จสิ้นก่อนที่จะเริ่มกำจัดจุดบกพร่อง พวกเขาสามารถเริ่มต้นได้ทันทีที่มีการจัดประเภทจุดบกพร่อง ทีมต้องไม่เริ่มทำงานกับรายการอื่นใน Backlog จนกว่ารายการทั้งหมดจะ 'ปราศจากข้อบกพร่อง' หรือจัดประเภทใหม่ กฎข้อนี้เองที่บังคับให้ผู้จัดการผลิตภัณฑ์จัดลำดับความสำคัญของงานใหม่อย่างถูกต้อง

สรุปว่า

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