คำถามติดแท็ก testing

การตรวจสอบพฤติกรรมของระบบซอฟต์แวร์กับพฤติกรรมที่คาดหวังของระบบนั้น

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

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

3
คำสำหรับคุณสมบัติ 'ลวง' หรือข้อผิดพลาดโดยเจตนาคืออะไร [ปิด]
ฉันลืมคำศัพท์การเขียนโปรแกรมสแลง สิ่งนี้เป็นข้อผิดพลาดโดยเจตนาหรือคุณสมบัติล่อที่ใช้เป็นสิ่งที่ทำให้ไขว้เขว ตัวอย่างการใช้งาน "สวัสดี Bob, QA กำลังทำการตรวจสอบวันนี้ใส่$THINGลงในโมดูลเพื่อให้พวกเขามีปัญหาในการค้นหาจริง" สิ่งนี้สามารถนำไปใช้ในเชิงลบเพื่อให้มีข้อบกพร่องโดยเจตนาที่ชัดเจนมากที่จะค้นพบว่าเป็นสิ่งที่ทำให้ไขว้เขวจากปัญหาจริง นอกจากนี้ยังสามารถใช้ในเชิงบวก มันเหมือนกับวิธีที่คุณปล่อยให้สุนัขกู้ภัย 'ค้นหา' ผู้ที่ตกเป็นเหยื่อเมื่อค้นหาพื้นที่ภัยพิบัติ นอกจากนี้ยังสามารถใช้ในการตรวจสอบว่ากระบวนการ QA จับข้อบกพร่องได้จริง คำศัพท์ที่ฉันกำลังมองหาคืออะไร?

11
ฉันจำเป็นต้องทดสอบทุกอย่างหรือไม่
ฉันจะเริ่มต้นโครงการจริงของฉันในRuby on Railsและฉันบังคับให้ฉันต้องเขียนการทดสอบTDD ฉันไม่เห็นข้อได้เปรียบที่แท้จริงในการเขียนการทดสอบ แต่เนื่องจากดูเหมือนว่าสำคัญมากฉันจะลอง จำเป็นต้องทดสอบทุกส่วนของแอปพลิเคชันของฉันรวมถึงหน้าสแตติกหรือไม่
28 testing  tdd 

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

6
อัตราส่วน "บรรทัดการทำงานของโค้ด" ปกติต่อ "การทดสอบบรรทัดของโค้ด" คืออะไร
ฉันค่อนข้างใหม่สำหรับวิธีการ TDD และการทดลองครั้งแรกของฉันบอกว่าการเขียนโค้ดฟังก์ชัน 1 บรรทัดหมายถึงการเขียนโค้ดทดสอบประมาณ 2-3 บรรทัด ดังนั้นในกรณีที่ฉันจะเขียน 1,000 LOC, codebase ทั้งหมดรวมถึงการทดสอบจะเป็นอะไรที่เหมือน ~ 3500 LOC นี่ถือว่าเป็นเรื่องปกติหรือไม่ อัตราส่วนในโค้ดที่คุณเขียนคือเท่าใด

4
ทำไมจึงไม่แนะนำให้โพสต์ข้อบกพร่องหลายอย่างในปัญหา / ตั๋วเดียวกัน
ฉันไม่แน่ใจว่านี่เป็นสถานที่สำหรับถามคำถามเชิงแนวคิดต่อไปนี้ (Stackoverflow ไม่แน่นอน) ฉันเห็นคำถามนี้ในการสอบแบบปรนัย (คำตอบเดียว) คล้ายกับการสอบISTQB : เหตุใดจึงไม่แนะนำให้รายงานข้อบกพร่องต่าง ๆ ในปัญหา / ตั๋วเดียวกัน เพื่อให้รายงานมีความกระชับและชัดเจน ข เนื่องจากผู้พัฒนาอาจแก้ไขข้อบกพร่องเพียงข้อเดียว ค เนื่องจากผู้ทดสอบกลุ่มทดสอบได้รับการจัดอันดับตามจำนวนข้อบกพร่องที่พบ d ระบบการจัดการข้อบกพร่องไม่สนับสนุนคุณสมบัตินี้ของข้อบกพร่องหลายรายการ ความเห็นของฉันaคือคำตอบที่ถูกต้อง b- ไม่สามารถทำได้เนื่องจากการแก้ไขข้อเสนอแนะที่แก้ไขแล้วปิดควรหลีกเลี่ยงกรณีดังกล่าว c- ผิดอย่างชัดเจน d - ปลั๊กอิน Redmine / Trac รองรับหลายฟิลด์ bคำตอบตามแผ่นคำตอบคือ มีคนอธิบายได้ไหม ความคิดเห็นที่มีความคิดเห็นเกี่ยวกับคำตอบยินดีต้อนรับ

3
การขัดหมายถึงอะไรในการเขียนโปรแกรม?
ฉันมักจะได้ยินคำว่า "ต้นขั้ว", "ต้นขั้วบางอย่างออก", "ต้นขั้ว" และอื่น ๆ การขัดหมายถึงอะไรในการเขียนโปรแกรมและคำนั้นมาจากไหน สามารถใช้บริบทใดได้บ้าง

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

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

14
การทดสอบซอฟต์แวร์ทำจริงในโครงการมืออาชีพหรือไม่?
ฉันมีส่วนเกี่ยวข้องกับหลายโครงการในหลาย บริษัท เพราะฉันเป็นนักพัฒนามานานและฉันเป็นผู้รับเหมา ฉันประเมินว่าโครงการน้อยกว่า 20%ได้รับการทดสอบอย่างมีระบบ ด้วยการทดสอบอย่างมีระบบฉันหมายถึงการทดสอบใด ๆ ที่เหนือกว่าแบบเฉพาะกิจไม่มีการทดสอบแผน ฉันยังคาดการณ์ว่าโครงการน้อยกว่า 10%ได้รับการทดสอบอย่างมีระบบอย่างละเอียดโดยที่พวกเขาได้ทุ่มเทผู้ทดสอบเป็นส่วนหนึ่งของทีมเอกสารทดสอบแผนที่นักพัฒนาเขียนการทดสอบอัตโนมัติจากนั้นพวกเขายังติดตามการทดสอบและวัดผล คำถามสองข้อ คุณมีค่าประมาณเปอร์เซ็นต์เกี่ยวกับปัญหานี้หรือไม่? ประสบการณ์วิชาชีพของคุณเกี่ยวกับการทดสอบซอฟต์แวร์คืออะไร หมายเหตุเพิ่มเติม เนื่องจากคำถามการทดสอบตามระเบียบวิธีอาจได้คำตอบที่ค่อนข้างเอนเอียง (คนชอบคุยโวเกี่ยวกับการเป็นคนเหนือกว่าคนอื่น ๆ ) ฉันสนับสนุนให้นักพัฒนาคนอื่น ๆ กำลังทำทุกที่ยกเว้นใน บริษัท ของคุณ
25 testing  metrics 

5
คุณระบุตัวพิมพ์“ edge” บนอัลกอริทึมได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา โดยทั่วไปแล้วคุณจะทราบได้อย่างไรว่ากรณีใดที่เลวร้ายที่สุดหรือดีที่สุดของคุณและกรณี "ขอบ" อื่น ๆ ที่คุณอาจมีก่อนที่จะมีและคุณจะเตรียมรหัสสำหรับพวกเขาได้อย่างไร

8
มันจะไม่เป็นประโยชน์ในการเขียนการทดสอบระหว่างการตรวจสอบรหัส?
เพื่อนร่วมงานของฉันเกิดขึ้นกับความคิดที่ฉันพบว่าน่าสนใจ มันจะไม่เป็นประโยชน์ในการเขียนการทดสอบในระหว่างการตรวจสอบโค้ดโดยผู้ที่ทำการตรวจสอบโดยสมมติว่าเราไม่ได้ทำ TDD? สำหรับคำถามนี้สมมติว่านี่เป็นโครงการทางวิชาการล้วนๆไม่มีชีวิตที่จะเสี่ยง ยิ่งกว่านั้นทีมคือ 4 คน ทุกคนรู้ภาษาและคุ้นเคยกับเครื่องมือ / ไลบรารี / กรอบงานทั้งหมดที่ใช้และสามารถเขียนแบบทดสอบได้ โดยทั่วไปแล้วคนที่ไม่ได้เป็นหัวหน้าเต็มสแต็คนำทีมวิศวกรนินจา แต่เป็นนักเขียนโค้ดที่ดี ข้อดีที่ฉันพบ: ส่งเสริมความเข้าใจที่ลึกซึ้งยิ่งขึ้นของรหัสระหว่างการทบทวนเพื่อเขียนการทดสอบที่มีความหมาย จากนั้นคุณสามารถเพิ่มการตรวจสอบโค้ดของการทดสอบเหล่านั้นโดยผู้เขียนโค้ดที่จะทดสอบ ข้อเสียฉันพบ: ข้อเสนอแนะวนซ้ำระหว่างการเขียนโค้ดและการทดสอบเพิ่มขึ้น แก้ไข: ฉันรู้ว่ามันจะไม่ทำงานได้ดีกับเว็บแอปพลิเคชัน "ปกติ" สิ่งที่ฉันมีอยู่ในใจคือกรณีมุมที่คุณใช้อัลกอริทึมทางวิทยาศาสตร์ที่ซับซ้อน สมมติว่ามีบางอย่างเช่นการใช้ไลบรารี่กราฟของตัวเอง NLP ฯลฯ ฉันสงสัยว่ารหัสที่เราเขียนนั้นแยกจากฐานข้อมูลและยากมากที่จะเข้าใจว่าจะไม่เพิ่มระดับการควบคุมอีกคนที่ต้องการเข้าใจแหล่งที่มา โค้ดและทำการทดสอบที่มีความหมายทำให้กระบวนการทั้งหมดมีความเป็นไปได้ที่จะเกิดข้อบกพร่องน้อยลงอย่างเห็นได้ชัดซึ่งไม่ทำให้แอปพลิเคชันเสียหาย แต่ในที่สุดก็ทำให้ผลลัพธ์ของคุณเป็นขยะ

5
การทดสอบเป็นส่วนที่จำเป็นของระเบียบวิธี Agile หรือไม่?
ฉันอยู่กับหลายทีมที่พยายามฝึกวิธีการแบบ Agile และบ่อยครั้งที่ทีมเหล่านี้เป็นศูนย์กลางการทดสอบ การทดสอบเป็นส่วนที่จำเป็นในการฝึกวิธีการ Agile หรือเป็นเพียงการฝึกหัด XP ที่ได้รับการฝึกฝนมาหลายปีหรือไม่?

7
TDD / ทดสอบภาระค่าใช้จ่าย / การบำรุงรักษามากเกินไปหรือไม่
คุณเคยได้ยินหลายครั้งจากผู้ที่ไม่เข้าใจคุณค่าของการทดสอบอย่างแท้จริง เพียงเพื่อเริ่มต้นสิ่งต่าง ๆ ฉันเป็นผู้ติดตาม Agile และการทดสอบ ... ฉันเพิ่งมีการอภิปรายเกี่ยวกับการดำเนินการ TDD บนผลิตภัณฑ์เขียนใหม่ที่ทีมปัจจุบันไม่ฝึกการทดสอบหน่วยในระดับใดและอาจไม่เคยได้ยินเกี่ยวกับเทคนิคการฉีดพึ่งพาหรือรูปแบบการทดสอบ / การออกแบบ ฯลฯ (เราจะไม่ได้รับ เพื่อทำความสะอาดรหัส) ตอนนี้ฉันมีความรับผิดชอบอย่างเต็มที่สำหรับการเขียนซ้ำของผลิตภัณฑ์นี้และฉันบอกว่าการพยายามใช้มันในรูปแบบของ TDD จะทำให้มันเป็นฝันร้ายในการบำรุงรักษาและเป็นไปไม่ได้สำหรับทีมที่ดูแลรักษา นอกจากนี้เนื่องจากเป็นแอปพลิเคชันส่วนหน้า (ไม่ใช่บนเว็บ) การเพิ่มการทดสอบจึงไม่มีจุดหมายเนื่องจากการเปลี่ยนแปลงของไดรฟ์ทางธุรกิจ (โดยการเปลี่ยนแปลงหมายถึงการปรับปรุงแน่นอน) การทดสอบจะล้าสมัยนักพัฒนาอื่น ๆ ที่เข้ามา โครงการในอนาคตจะไม่รักษาและกลายเป็นภาระสำหรับพวกเขาในการแก้ไข ฯลฯ ฉันสามารถเข้าใจได้ว่า TDD ในทีมที่ไม่มีประสบการณ์การทดสอบใด ๆ ในขณะนี้ไม่ดี แต่ข้อโต้แย้งของฉันในกรณีนี้คือฉันสามารถสอนการฝึกฝนของฉันกับคนรอบตัวฉัน แต่ยิ่งกว่านั้นฉันรู้ว่า TDD ทำให้ดีขึ้น ซอฟต์แวร์. แม้ว่าฉันจะผลิตซอฟต์แวร์โดยใช้ TDD และส่งการทดสอบทั้งหมดไปมอบให้กับทีมซ่อมบำรุงมันจะเป็นวิธีที่ดีกว่าการไม่ใช้ TDD เลยตั้งแต่แรก? ฉันถูกยิงเพราะพูดถึงการทำ TDD ในโครงการส่วนใหญ่สำหรับทีมที่ไม่เคยได้ยินมาก่อน แนวคิดของ "ส่วนต่อประสาน" และตัวสร้าง DI ที่ดูแปลก …
24 testing  agile  tdd  bdd 

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