จริงๆแล้วบั๊กคืออะไร? กฎที่กำหนดไว้ล่วงหน้าใด ๆ
จริงๆแล้วบั๊กคืออะไร? กฎที่กำหนดไว้ล่วงหน้าใด ๆ
คำตอบ:
ข้อบกพร่องคือ:
ข้อผิดพลาดของซอฟต์แวร์เป็นคำทั่วไปที่ใช้เพื่ออธิบายข้อผิดพลาดข้อผิดพลาดความผิดพลาดความผิดพลาดหรือความผิดพลาดในโปรแกรมคอมพิวเตอร์หรือระบบที่ให้ผลลัพธ์ที่ไม่ถูกต้องหรือไม่คาดคิดหรือทำให้มันทำงานในรูปแบบที่ไม่ได้ตั้งใจ (จากWikipedia )
นี่คือคำจำกัดความที่ดีของสิ่งที่ถือเป็นข้อผิดพลาด ทั้ง:
ชุมชน Ubuntu มีคำจำกัดความที่ยอดเยี่ยมสำหรับข้อผิดพลาดในวิกินี้โดยเฉพาะอย่างยิ่งเน้นความแตกต่างระหว่างข้อบกพร่องและคุณสมบัติที่ขาดหายไป :
ข้อผิดพลาดของซอฟต์แวร์คือข้อผิดพลาดหรือความผิดพลาดในโปรแกรมคอมพิวเตอร์ซึ่งทำให้ไม่สามารถทำงานได้ตามที่ควรจะเป็น นี่อาจเป็นเรื่องง่ายอย่างที่ล้มเหลวในการทำงานเลยหรือมีความซับซ้อนเหมือนผลลัพธ์ที่ไม่ถูกต้องอย่างละเอียด [... ] บางสิ่งไม่ใช่ข้อบกพร่อง แต่เป็นคุณลักษณะที่ขาดหายไปซึ่งควรรวมอยู่ด้วย ฟีเจอร์ที่ขาดหายไปไม่ควรถูกรายงานว่าเป็นข้อบกพร่องแทนที่จะเขียน FeatureSpecifications แทน
ในขณะที่มันยากที่จะวาดเส้นแยกสองคำจำกัดความและตอบคำถามมันเป็นข้อบกพร่องหรือคุณสมบัติที่ขาดหายไป? เป็นไปได้ที่จะให้แนวทาง:
ความแตกต่างระหว่างการยืนยันทั้งสองคือ: อย่างแรกคือแพร่หลายมากขึ้น (สนับสนุน windows สมัยใหม่ FS) และสามารถดูเป็นคุณลักษณะที่ขาดหายไปในขณะที่อื่น ๆ เน้นปัญหาเฉพาะ (ไม่สามารถเขียนลงใน ReiserFS) - บั๊กเฉพาะ
หากคุณสนใจฉันขอแนะนำให้คุณดูที่วิกิของทีม BugSquad การต่อสู้ข้อบกพร่องเป็นหนึ่งในกิจกรรมที่น่าสนใจที่สุดที่เกี่ยวข้องกับวงจรการพัฒนาซอฟต์แวร์นอกเหนือจากการเป็นโอกาสในการเรียนรู้ที่ดี :-)
ขอบคุณ!
ฉันจะแกว่ง ในขั้นต้นพฤติกรรมที่ไม่ได้ตั้งใจโดยนักออกแบบ / โปรแกรมเมอร์ (ลดการออกแบบที่ไม่ดี) ในแง่ของข้อผิดพลาดที่คุณควรรายงานให้ผู้คนทราบสิ่งใดก็ตามที่ทำให้โปรแกรม HRder ใช้งานและเหมาะสมกับคำอธิบายข้างต้น ซึ่งรวมถึงตั้งแต่แย่ที่สุดไปจนถึงรุนแรงน้อยที่สุดระบบล่ม, ล่ม X, ล่มของโปรแกรมและข้อบกพร่องของโปรแกรมภายใน
บั๊กที่ทำให้เกิดปัญหาหรือการปิดหน้าต่างมักจะทำให้เอาต์พุตบางชนิดเป็น stderror ถ้าคุณเรียกใช้แอพพลิเคชั่นจากเทอร์มินัลสิ่งนี้จะมีประโยชน์ ดูบันทึกระบบเพื่อดูรายงานข้อผิดพลาด
ข้อผิดพลาดเป็นข้อผิดพลาดในโปรแกรมคอมพิวเตอร์หรือระบบดังนั้นโปรแกรมทำงานไม่ถูกต้องหรือไม่สามารถใช้งานได้เลย ดังนั้นข้อบกพร่องอาจเป็นผลมาจากรหัสการเขียนโปรแกรมที่ไม่ถูกต้องหรือรหัสการเขียนโปรแกรมที่ไม่แข็งแรงพอและไม่สามารถจัดการข้อยกเว้นบางอย่าง (ตัวอย่างเช่น: หารด้วย 0)
เพื่อวัตถุประสงค์ในทางปฏิบัติคำว่า "บั๊ก" ควรหลีกเลี่ยงเป็นคำที่คลุมเครือเกินไป
คำตอบที่ดีที่สุดสำหรับคำถามของคุณเติมทั้งเล่ม: "Why Programs Fail"โดย Andreas Zeller หนังสือที่ควรอยู่ในชั้นวางหนังสือของโปรแกรมเมอร์ทุกคน ผู้เขียนยังพยายามอย่างดีที่จะไม่เรียกพวกเขาว่า "บั๊ก" (อ่านต่อ) เพราะตามคำตอบของ crncosta แนะนำ "บั๊ก" ไม่ใช่แค่ข้อผิดพลาดในการเขียนโปรแกรม นี่คือเหตุผลที่บางคนชอบคำว่า "ปัญหา" แทน (ซึ่งนำไปสู่ "ปัญหาตัวติดตาม" แทนที่จะเป็น "ตัวติดตามปัญหา")
เพราะสิ่งที่รับรู้ว่าเป็นข้อผิดพลาดของผู้ใช้ไม่จำเป็นต้องเป็นข้อบกพร่องเลย มันสามารถ - แม้ว่าสิ่งนี้มักจะถูกใช้เป็นข้อแก้ตัวที่อ่อนแอ - ง่ายๆโดยการออกแบบ อย่างไรก็ตามความล้มเหลวบางครั้งเมื่อสังเกตจะถูกจัดประเภท "ข้อบกพร่อง" แม้ว่าพวกเขาจะเกิดจากการขาดคุณสมบัติ
ผู้เขียนหนังสือดังกล่าวใช้เวลาหลายหน้าในการกำหนดข้อกำหนดเช่นความล้มเหลวและข้อบกพร่องและอธิบายว่าทำไม "บั๊ก" จึงไม่ใช่คำที่เหมาะสม (คลุมเครือเกินไป)
บทสรุปของคำศัพท์ของเขา:
ในขณะที่คุณสามารถเห็นผู้เขียนแยกแยะระหว่างสาเหตุและผลกระทบซึ่งในกรณีของ "บั๊ก" นั้นมักผสมกันอยู่เสมอ เวลาส่วนใหญ่ของคำว่า "ข้อผิดพลาด" จะถูกนำไปใช้กับข้อบกพร่องการติดเชื้อ และความล้มเหลว