ข้อแตกต่างระหว่างการดีบักและการทดสอบคืออะไร


11

คำแนะนำเกี่ยวกับการทดสอบซอฟต์แวร์ (Ammann & Offutt) กล่าวถึง p.32 แบบทดสอบครบกำหนด 5 ระดับ:

ระดับ 0ไม่มีความแตกต่างระหว่างการทดสอบและการดีบัก

ระดับ 1วัตถุประสงค์ของการทดสอบคือการแสดงให้เห็นว่าซอฟต์แวร์ใช้งานได้

ระดับ 2วัตถุประสงค์ของการทดสอบคือการแสดงให้เห็นว่าซอฟต์แวร์ไม่ทำงาน

ระดับ 3จุดประสงค์ของการทดสอบไม่ได้เป็นการพิสูจน์สิ่งใดเป็นพิเศษ แต่เพื่อลดความเสี่ยงในการใช้ซอฟต์แวร์

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

แม้ว่าพวกเขาจะไม่ได้ลงรายละเอียดเพิ่มเติมมากนัก การดีบักและการทดสอบต่างกันอย่างไร


1
ส่วนใดของหน้าวิกิพีเดียในการดีบักทำให้คุณสับสน? en.wikipedia.org/wiki/Debugging โปรดโพสต์วลีหรือคำพูดที่คุณคิดว่าสับสน
S.Lott

4
เวลาเฉลี่ยที่โปรแกรมเมอร์ใช้เวลาทดสอบ: 10 นาที เวลาเฉลี่ยที่โปรแกรมเมอร์ใช้เวลาในการดีบักสิ่งที่ควรทดสอบ: 2.5 ชั่วโมง
Craige

1
จำเป็นต้องทำการทดสอบอย่างเป็นทางการจริง ๆ หรือไม่เมื่อ 80% ของร้านค้าทั้งหมดไม่มีการทดสอบใด ๆ เลย
งาน

@Craige: โดยทั่วไปแล้วการทดสอบจะใช้เวลานานกว่า 10 นาที อาจใช้เวลานานกว่าการดีบักรวม อย่างไรก็ตามเวลาที่ใช้ในการทดสอบนั้นเป็นเชิงรุก (การครอบคลุมที่ครอบคลุมถึงแม้ว่าจะมีการทดสอบเพียงไม่กี่เปอร์เซ็นต์เท่านั้นที่จะเปิดเผยข้อบกพร่อง) ในขณะที่เวลาที่ใช้ในการดีบักนั้นจะเกิดปฏิกิริยาอีกครั้ง (ข้อผิดพลาด ภายใต้ความกดดันที่จะกำจัดข้อผิดพลาดและสิ้นสุดการแนะนำข้อบกพร่องเพิ่มเติมเป็นส่วนหนึ่งของการแก้ไข).
rwong

คำตอบ:


21

การทดสอบมีวัตถุประสงค์เพื่อค้นหาข้อบกพร่องในรหัสหรือจากมุมที่แตกต่างกันเพื่อพิสูจน์ในระดับที่เหมาะสม (ไม่สามารถเป็น 100%) ที่โปรแกรมทำสิ่งที่ควรทำ สามารถเป็นแบบแมนนวลหรือแบบอัตโนมัติและมีหลายชนิดเช่นหน่วยการรวมระบบ / การยอมรับความเครียดการโหลดการแช่ ฯลฯ

การดีบักเป็นกระบวนการค้นหาและลบบั๊กเฉพาะจากโปรแกรม มันเป็นกระบวนการแบบใช้ครั้งเดียวด้วยตนเองเสมอเนื่องจากข้อบกพร่องทั้งหมดแตกต่างกัน

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


โปรดทราบว่าในบริบทนี้ข้อบกพร่องคือความแตกต่างระหว่างสิ่งที่โปรแกรมตั้งใจจะทำและสิ่งที่มันทำจริง

1
"การทดสอบ" นั้นเป็นความเข้าใจของฉันเกี่ยวกับการทดสอบหน่วย การดีบักโดยเฉพาะอย่างยิ่งถ้าเป็นรหัสของคุณเป็นเพียงการลองผิดลองถูก
ott--

4

การดีบักเป็นกระบวนการทีละขั้นตอนด้วยตนเองที่เกี่ยวข้องไม่มีโครงสร้างและไม่น่าเชื่อถือ โดยการทดสอบผ่านการดีบักคุณสร้างสถานการณ์ที่ไม่สามารถทำซ้ำได้ดังนั้นจึงไม่มีประโยชน์สำหรับการทดสอบการถดถอย ทุกระดับนอกเหนือจาก 0 (ในตัวอย่างของคุณ) ยกเว้นการดีบักในมุมมองของฉันด้วยเหตุผลที่แน่นอนนี้


Saff บีบเป็นเทคนิคการแก้จุดบกพร่องที่มีโครงสร้างมากความน่าเชื่อถือมากไม่ได้เกี่ยวข้องโดยเฉพาะอย่างยิ่งและน่ากลัวอย่างน้อย automatable บางส่วน ทำได้โดยการรับรู้ว่าในความเป็นจริงไม่มีความแตกต่างระหว่างการทดสอบและการดีบัก
Jörg W Mittag

หากคุณทำการดีบั๊กคือ "ไม่มีโครงสร้างไม่น่าเชื่อถือและมีคู่มือ" คุณไม่ได้ทำถูกต้อง! หรือชัดเจนเราแค่ใช้สองคำนี้เพื่อหมายถึงสิ่งที่แตกต่าง
MemeDeveloper

3

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

การทดสอบคือความพยายามในการสร้างปัญหาผ่านวิธีการต่างๆในการใช้รหัสที่สามารถดีบั๊กได้ มันทำเกือบทุกครั้งใน userspace ซึ่งคุณใช้รหัสในฐานะผู้ใช้ปลายทางที่จะเรียกใช้และพยายามทำให้มันพัง


1
ฉันเห็นด้วยและฉันต้องการเน้นจุดของคุณเกี่ยวกับ "การเรียกใช้รหัสในฐานะผู้ใช้ปลายทางจะเรียกใช้มัน" เพียงเพื่อเน้นย้ำว่าคนที่มีความสำคัญมักจะทำการทดสอบอัตโนมัติและ TDD โดยเฉพาะอย่างยิ่งสำหรับแอปที่ทำงานบนเว็บ - มีข้อมูลเพิ่มเติมอะไรบ้างรหัสทดสอบโค้ดหรือบุคคลกำลังทดสอบเว็บเพจ
MemeDeveloper

2

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

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


1

ไม่มีเลย หากคุณทำถูกต้อง:

Hit 'em High, Hit' em Low :

การทดสอบการถดถอยและ Saff Squeeze

Kent Beck สถาบันทรีริเวอร์ส

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


ในบางระบบเช่น Smalltalk - ไม่มีความแตกต่างเลยเพราะคุณสามารถดำเนินการรอบการทดสอบการเขียน / การเรียกใช้การทดสอบ / การเขียนรหัสภายในตัวดีบักเกอร์ของคุณ
Frank Shearar

@ FrankShearar: มันอาจจะไม่เกิดอุบัติเหตุที่กระดาษข้างต้นเขียนโดย Smalltalker เก่า วงจร TDD (ซึ่งแน่นอนโดย Kent Beck) นั้นเป็นคำอธิบายถึงวิธีการเขียนโค้ด Smalltalk ตั้งแต่รุ่งอรุณของเวลา: เขียนโค้ดตัวอย่างในพื้นที่ทำงานให้ debugger ตรวจจับข้อยกเว้นโดยไม่มีวิธีคลิกที่สร้าง วิธีการเขียนรหัสดำเนินการดำเนินการ (yay สำหรับข้อยกเว้นที่กลับมาทำงานต่อได้!) ทำซ้ำ
Jörg W Mittag

1

การทดสอบเป็นสิทธิ์พิเศษที่คุณจะได้รับก่อนที่จะปล่อยให้ลูกค้าทราบ

บั๊กส์เป็นฝันร้ายที่คุณต้องอดทนหลังจากปล่อยให้ลูกค้า


ฮ่าฮ่า การตอบสนองที่สมจริง / เป็นจริงที่สุด ... ถ้าฉันทำได้เพียงโหวต x 100
MemeDeveloper

1

คนอื่น ๆ ได้กล่าวถึงความแตกต่างระหว่างการทดสอบและการดีบัก

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

ใครจะแยกข้อบกพร่อง (หรือดีบักโดยเฉพาะ) ไม่ว่าจะเป็นผู้ทดสอบหรือนักพัฒนาเป็นคำถามรอง


0

แบบจำลองวุฒิภาวะของการทดสอบที่คุณระบุไว้นั้นเป็นรายละเอียดของความคิดของทีมพัฒนา

สิ่งที่รายการแสดงถึงโดยไม่บอกอย่างชัดเจนคือการเปลี่ยนแปลงของความคิดส่งผลกระทบต่อวิธีการทดสอบ

เมื่อทีมพัฒนาก้าวหน้าไปอีกระดับขอบเขตของการทดสอบก็กว้างขึ้น

ที่ระดับ 0 จะไม่มีการทดสอบเนื่องจากทีมคิดว่าไม่จำเป็น

ที่ระดับ 1 จะทำการทดสอบเพื่อให้ครอบคลุมการใช้งานขั้นพื้นฐานเล็กน้อย

ที่ระดับ 2 การทดสอบจะขยายรวมทุกอย่างในระดับ 1 และเพิ่มในการทดสอบแบบทำลาย (ทีมทดสอบเฉพาะที่เข้าถึงข้อมูลทั้งหมดที่ผู้พัฒนาสามารถเข้าถึงได้รวมถึงซอร์สโค้ดและไบนารีและพยายามหาข้อบกพร่องที่สามารถ ถูกเรียกจากบทบาทผู้ใช้)

ที่ระดับ 3 นอกเหนือจากทุกอย่างในระดับ 1-2 การทดสอบที่ไม่ใช่การใช้งาน / การทดสอบที่ไม่ถูกต้อง (เช่นลักษณะของประสิทธิภาพ) จะถูกเพิ่มเข้าไป

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

(ข้อจำกัดความรับผิดชอบ: ฉันไม่มีสิทธิ์เข้าถึงตำราเรียนดังนั้นคำศัพท์ของฉันอาจไม่ถูกต้อง)


0

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


0

การพูดในชีวิตประจำวันแง่การปฏิบัติผมคิดว่ามันทั้งหมดขึ้นอยู่กับบริบท

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

การทดสอบมีขอบเขตกว้างปกติและเป็นทางการมาก - ในขณะที่การดีบักเป็นกระบวนการเฉพาะที่เกิดขึ้นเป็นครั้งคราวเมื่อมีความจำเป็นต้องแก้ไขข้อผิดพลาดเฉพาะ - ซึ่งไม่ชัดเจนและต้องมีการตรวจสอบการทำงานของระบบและผลลัพธ์ผลลัพธ์

ที่นี่ในการทดสอบความคิดของฉันเป็นสิ่งที่จำเป็นในขณะที่การแก้จุดบกพร่องเป็นเครื่องมือเฉพาะที่จำเป็นเฉพาะเมื่อการแก้ปัญหาความล้มเหลวเป็นทึบแสง

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

มันจะน่ารักถ้านี่เป็นความจริงที่แพร่หลายฉันจะรักถ้ารอบ dev ของฉันถูกคั่นด้วยเอาท์พุทไบนารีที่กำหนดไว้อย่างชัดเจน (สีแดงสีเขียว) แต่ ...

ในกรณีของฉัน (ซึ่งเป็นที่ยอมรับโดยเฉพาะ - การทำงานเดี่ยว 98% บนเว็บขนาดกลางขนาดเล็กที่ได้รับการสนับสนุนต่ำข้อมูลเน้นระบบการดูแลระบบขององค์กร) ฉันแค่ไม่สามารถเห็นได้ว่า TDD จะช่วยฉันได้อย่างไร หรือมากกว่า "การดีบัก" และ "การทดสอบ" จะเหมือนกันทุกประการ

ส่วนใหญ่แม้ว่าการใช้คำว่า "การทดสอบ" หมายถึง / เกี่ยวข้องอย่างใกล้ชิดกับวิธีการของ TDD

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

หรือค่อนข้างฉันไม่เห็นด้วยอย่างยิ่งกับสมมติฐานทั่วไปที่ว่า "การทดสอบ" เป็นกระบวนการที่ใช้รหัสอย่างเป็นทางการ

การคัดค้านพื้นฐานของฉัน (ใช้ในบริบท * โดยเฉพาะของฉัน) คือ ...

ถ้าฉันลาดเทเขียนโค้ดที่ทำงานได้อย่างน่าเชื่อถือ - แล้วว่านรกฉันควรจะเขียนโค้ดที่ทำงานได้อย่างน่าเชื่อถือในการทดสอบกล่าวว่ารหัสสันนิษฐานย่อยมาตรฐาน

ให้ฉันฉันไม่เคยเห็นตัวอย่างใด ๆ หรือโต้แย้งว่า (ในบริบทเฉพาะของฉัน) ชวนผมพอที่จะได้รำคาญคิดเกี่ยวกับการเขียนการทดสอบเดียวผมอาจจะเขียนโค้ดทดสอบบางอย่างไร้สาระหาญในขณะนี้อาจจะ "ไม่กลับมาเก็บข้อมูลของฉันผู้ใช้ เอนทิตีที่มีชื่อ == X เมื่อฉันขอให้มัน - และอย่างเดียว - นั่น? "แต่อาจมีประโยชน์มากกว่าสำหรับฉันในการเขียนการสตรีมนี้อาจจะ - อินเทอร์เน็ต - จริงๆ - เป็น - แค่ - บริสุทธิ์ - โง่ - spouting- ขยะมูลฝอยอย่างเดือดดาล แต่กลับกลายเป็นเรื่องไร้สาระ แต่ฉันแค่รู้สึกถึงความจำเป็นที่จะต้องแสดงความสนับสนุนของปีศาจที่นี่ (ชนิดของความหวังใครบางคนจะแสดงให้ฉันเห็นแสงและแปลงฉันอาจจะจบลงด้วยการให้ลูกค้าของฉันคุ้มค่าเงินกว่านี้?)

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

ฉันเห็นด้วย 100% กับยูทิลิตี้ที่เห็นได้ชัดในมนต์ TDD "สีแดง / สีเขียว / refactor" แต่สำหรับฉัน (ทำงานในงบประมาณต่ำ med, เดี่ยว dev RIA ที่ดิน) ฉันจริง ๆ รักใครสักคนที่จะโปรดแสดงให้ฉันเห็นว่าฉันสามารถอาจเป็นไปได้อย่างมีเหตุผลและมีเหตุผล ได้รับมูลค่าเพิ่มเติมใด ๆจากการเขียนมากขึ้น ( เช่นเดียวกับรหัสทดสอบที่มีข้อบกพร่อง ) มากกว่าที่ฉันทำจากการโต้ตอบกับผลลัพธ์เต็มรูปแบบ (และเป็นหลักเท่านั้น) ของความพยายามของฉัน

สำหรับฉันเมื่อนักพัฒนาพูดถึง "การทดสอบ" โดยทั่วไปแล้วมันหมายถึง TDD

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

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

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

อาจเป็นเพราะพวกเขาให้ความสำคัญกับแสงสีเขียวที่ให้ความมั่นใจและลืมที่จะใช้ผลงานของพวกเขาจริงเหรอ?

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


-3

เพียงแค่

การทดสอบหมายถึงการค้นหาอินพุตที่ทำให้ซอฟต์แวร์ล้มเหลวขณะทำการดีบักคือกระบวนการค้นหาข้อผิดพลาดของความล้มเหลวที่กำหนด


สิ่งนี้ดูเหมือนจะไม่นำเสนออะไรมากมายเกินกว่าที่ทำคะแนนและอธิบายไว้ในคำตอบก่อนหน้า 10 คำตอบ
ริ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.