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

TDD หมายถึงการพัฒนาที่ขับเคลื่อนด้วยการทดสอบหรือการออกแบบที่ขับเคลื่อนด้วยการทดสอบ มันเป็นวิธีปฏิบัติของการเขียนการทดสอบหน่วยก่อนที่จะเขียนรหัสเพื่อตอบสนองมันในสิ่งที่เรียกว่าวงจร Red-Green-Refactor

6
คุณต้องทำการทดสอบ BDD / TDD จริงๆหรือไม่?
แม้ว่าฉันจะไม่ได้อยู่ในโครงการ TDD หรือ BDD หรือฉันเคยอยู่ในบางอย่างที่บอกว่าพวกเขากำลังทำ TDD แต่ค่อนข้างไกลจากมันสิ่งเหล่านี้เป็นสิ่งที่ฉันคิดและพยายามอ่านให้มากที่สุดเท่าที่จะทำได้ เกี่ยวกับ กลับไปที่คำถาม เมื่อคุณทำ BDD คุณควรเขียน "test" ก่อนและทำให้มันล้มเหลวใช่ไหม จากนั้นใช้คุณลักษณะนั้นหรือสิ่งที่คุณเรียกว่า แต่ถ้าคุณนำสิ่งนี้ไปสู่สุดขั้วมันจะเป็นการพัฒนาจากบนลงล่างบ้างไหม? คุณกำลังดู UI ของคุณและพูดว่า "ฉันต้องการคุณลักษณะ / พฤติกรรมนี้ที่นี่" จากนั้นคุณแก้ไข UI ของคุณเพื่อใช้คุณลักษณะนั้นและรหัสที่สนับสนุน UI ณ จุดนี้คุณยังไม่ได้ใช้ตรรกะทางธุรกิจหรือตรรกะการเข้าถึงข้อมูลคุณเพิ่งใช้พฤติกรรมของคุณ สิ่งที่ฉันตั้งใจจะเขียนแทนที่จะทดสอบก่อนคุณเขียนรหัส UI ของคุณก่อน ในบางกรณีมันควรส่งผลให้มีรหัสเดียวกันสำหรับการเข้าถึงข้อมูลและเลเยอร์ธุรกิจเนื่องจากคุณใช้รหัส UI เพื่อกำหนดสิ่งที่ธุรกิจของคุณต้องการสนับสนุน แน่นอนคุณควรเติมเต็มด้วยการทดสอบที่ใช้เพื่อให้แน่ใจว่าคุณสมบัติทำงานตามที่ควรจะเป็นในคุณสมบัติ ความคิดใด ๆ
11 unit-testing  tdd 

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

4
การทดสอบหน่วยกล่องดำคืออะไร
ฉันเพิ่งสอบครั้งสุดท้ายของฉันสำหรับหลักสูตรวิศวกรรมซอฟต์แวร์สำหรับโปรแกรมปริญญาโทของฉันและหนึ่งในคำถามในการสอบมีดังต่อไปนี้: Unit Testing is considered: a. White-box Testing b. Black-box Testing c. Either ในประสบการณ์การพัฒนาซอฟต์แวร์ 7 ปีของฉันการทดสอบหน่วยได้ใช้แนวทางกล่องสีขาวเสมอ ผู้ทดสอบมีความรู้เต็มรูปแบบเกี่ยวกับการใช้งานหน่วยการเรียนรู้ในขณะที่เขียนการทดสอบ การทดสอบกล่องดำมาในภายหลังในรูปแบบของการรวมระบบและการทดสอบการยอมรับ อย่างไรก็ตามคำตอบที่ถูกต้องในการสอบ (ตามอาจารย์) คือการทดสอบหน่วยสามารถเป็นการทดสอบกล่องสีขาวหรือกล่องดำ ฉันได้ทำการวิจัยมาแล้วและดูเหมือนว่าหลาย ๆ กรณี "การทดสอบหน่วยกล่องดำ" ถูกใช้เพื่ออธิบายวิธีการทดสอบครั้งแรกที่การทดสอบหน่วยถูกเขียนขึ้นก่อนรหัสคือ อย่างไรก็ตามในความคิดของฉันนี้ยังคงทดสอบกล่องสีขาว ในขณะที่การใช้งานยังไม่มีอยู่ใครก็ตามที่กำลังเขียนการทดสอบโดยทั่วไปมีความคิดที่ดีเกี่ยวกับการใช้งานซอร์สโค้ด ใครช่วยอธิบายให้ฉันฟังว่าการทดสอบหน่วยกล่องดำทำงานอย่างไร (ถ้ามันเป็นเรื่องจริง) และแตกต่างจากการทดสอบยูนิตกล่องขาวอย่างไร

7
ฉันจะใช้ TDD กับฟังก์ชั่นอ่าน / เขียนได้อย่างไร?
ดูเหมือนว่าปัญหาไก่และไข่ คุณสามารถทำให้เขียนฟังก์ชั่นเขียนไปยังแหล่งข้อมูลบางอย่าง แต่ไม่เคยรู้ว่าคุณบันทึกไว้อย่างถูกต้องโดยไม่ต้องฟังก์ชั่นการอ่านการทดสอบ คุณสามารถทำให้อ่านฟังก์ชั่นการอ่านจากแหล่งข้อมูล แต่คุณจะใส่สิ่งต่าง ๆ ในแหล่งข้อมูลที่จะอ่านโดยไม่ต้องฟังก์ชั่นการเขียนการทดสอบได้อย่างไร แก้ไข: ฉันกำลังเชื่อมต่อและทำธุรกรรมกับฐานข้อมูล SQL เพื่อบันทึกและโหลดวัตถุเพื่อใช้งาน ไม่มีจุดทดสอบฟังก์ชั่นการเข้าถึงที่ DB ให้ แต่ฉันตัดฟังก์ชั่น DB ดังกล่าวเพื่อทำให้เป็นอันดับ / ดีซีเรียลไลซ์วัตถุ ฉันต้องการให้แน่ใจว่าฉันเขียนและอ่านสิ่งที่ถูกต้องไปยังและจากฐานข้อมูลอย่างถูกต้อง มันไม่เหมือนการเพิ่ม / ลบตามที่ @snowman กล่าวถึง ฉันต้องการทราบว่าเนื้อหาที่ฉันเขียนนั้นถูกต้อง แต่ต้องใช้ฟังก์ชั่นการอ่านที่ผ่านการทดสอบเป็นอย่างดี เมื่อฉันอ่านฉันต้องการให้แน่ใจว่าการอ่านของฉันได้สร้างวัตถุอย่างถูกต้องเท่ากับสิ่งที่เขียน; แต่นั่นต้องมีฟังก์ชั่นการเขียนที่ผ่านการทดสอบเป็นอย่างดี
10 tdd  io 

3
TDD ต้องการแนวทางในการแก้ไขปัญหาอัลกอริทึม
ฉันล้มเหลวในการทดสอบอัลกอริทึมกับ Codility เพราะฉันพยายามหาวิธีแก้ปัญหาที่ดีกว่าและในที่สุดฉันก็ไม่มีอะไรเลย ดังนั้นฉันคิดว่าถ้าฉันสามารถใช้วิธีการคล้ายกับ TDD เช่นถ้าฉันสามารถพัฒนาวิธีแก้ปัญหาแบบค่อยเป็นค่อยไปในแบบเดียวกันได้หรือไม่ หากฉันกำลังเขียนอัลกอริทึมการเรียงลำดับฉันสามารถย้ายจาก Bubblesort มาตรฐานไปเป็น Bubbleort แบบ 2 ทางได้ แต่จากนั้นบางสิ่งที่ก้าวหน้ากว่าอย่าง Quicksort จะเป็น "quantum leap" แต่อย่างน้อยฉันจะมี testdata ฉันสามารถตรวจสอบได้อย่างง่ายดาย เคล็ดลับอื่น ๆ สำหรับการทดสอบ? สิ่งหนึ่งที่ฉันจะทำในครั้งต่อไปคือการใช้วิธีการ / ฟังก์ชั่นมากกว่าห่วงภายใน ตัวอย่างเช่นในการเรียงลำดับคุณมักจะต้องสลับ หากเป็นวิธีฉันจะต้องแก้ไขรหัสโทร ฉันยังสามารถมีวิธีแก้ปัญหาขั้นสูงเพิ่มเติมเป็นคลาสที่ได้รับ ด้วยปัญหา "อัลกอริทึม" กับ "ปกติ" ฉันหมายถึงปัญหาที่ความซับซ้อนของเวลาเป็นสิ่งสำคัญ ดังนั้นแทนที่จะผ่านการทดสอบมากขึ้นเช่นเดียวกับใน TDD คุณจะทำให้ "ทำงานได้ดีขึ้น" ด้วย "Similar to TDD" ฉันหมายถึง: เขียนการทดสอบที่ค่อนข้างอัตโนมัติเพื่อประหยัดเวลาในการเพิ่มการทดสอบแบบแมนนวล การพัฒนาที่เพิ่มขึ้น การทดสอบการถดถอยความสามารถในการตรวจสอบว่าตัวแบ่งรหัสหรืออย่างน้อยถ้าฟังก์ชั่นการเปลี่ยนแปลงระหว่างการเพิ่มขึ้น ฉันคิดว่านี่น่าจะง่ายต่อการเข้าใจถ้าคุณเปรียบเทียบ เขียนเชลล์เรียงลำดับโดยตรง กระโดดจาก …

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

2
จะตรวจพบข้อผิดพลาดประเภทอย่างไรในขณะที่สร้าง mocks ในภาษาแบบไดนามิก
ปัญหาเกิดขึ้นขณะทำ TDD หลังจากผ่านการทดสอบสองสามครั้งประเภทการคืนค่าของบางคลาส / โมดูลจะเปลี่ยนไป ในภาษาการเขียนโปรแกรมแบบสแตติกถ้าวัตถุที่เยาะเย้ยก่อนหน้านี้ถูกนำมาใช้ในการทดสอบของคลาสอื่น ๆและไม่ได้รับการแก้ไขเพื่อให้สะท้อนถึงการเปลี่ยนแปลงประเภทแล้วข้อผิดพลาดในการรวบรวมจะเกิดขึ้น อย่างไรก็ตามสำหรับภาษาแบบไดนามิกการเปลี่ยนแปลงประเภทการส่งคืนอาจไม่ถูกตรวจพบและการทดสอบของคลาสอื่นจะยังคงผ่าน แน่ใจว่าอาจมีการทดสอบการรวมที่จะล้มเหลวในภายหลัง แต่การทดสอบหน่วยจะผ่านอย่างผิดพลาด มีวิธีใดบ้างที่จะหลีกเลี่ยงปัญหานี้? การอัปเดตด้วยตัวอย่างเล็ก ๆ น้อย ๆ (ในบางภาษาที่สร้างขึ้น) ... รุ่น 1: Calc = { doMultiply(x, y) {return x * y} } //.... more code .... // On some faraway remote code on a different file Rect = { computeArea(l, w) {return Calc.doMultipy(x*y)} …

5
วิธีทดสอบหน่วยฟังก์ชันที่ปรับโครงสร้างรูปแบบกลยุทธ์ใหม่แล้วหรือไม่
ถ้าฉันมีฟังก์ชั่นในรหัสของฉันที่จะไป: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } โดยปกติฉันจะ refactor นี้เพื่อใช้ Ploymorphism โดยใช้คลาสโรงงานและรูปแบบกลยุทธ์: public string calculateTax(string name) { InameHandler nameHandler = NameHandlerFactory::getHandler(name); nameHandler->calculateTax($salary); } ตอนนี้ถ้าฉันใช้ TDD ฉันก็จะมีการทดสอบบางอย่างที่ทำงานกับต้นฉบับcalculateTax()ก่อนที่จะทำการรีแฟคเตอร์ อดีต: calculateTax_givenChrisSalaryBelowThreshold_Expect111(){} calculateTax_givenChrisSalaryAboveThreshold_Expect111(){} calculateTax_givenDavidSalaryBelowThreshold_Expect222(){} calculateTax_givenDavidSalaryAboveThreshold_Expect222(){} calculateTax_givenScottSalaryBelowThreshold_Expect333(){} calculateTax_givenScottSalaryAboveThreshold_Expect333(){} …

5
TDD: เยาะเย้ยวัตถุที่อยู่ติดกันอย่างแน่นหนา
บางครั้งวัตถุก็จำเป็นต้องมีการรวมกันอย่างแน่นหนา ตัวอย่างเช่นCsvFileคลาสอาจต้องทำงานอย่างแน่นหนากับCsvRecordคลาส (หรือICsvRecordอินเทอร์เฟซ) อย่างไรก็ตามจากสิ่งที่ฉันได้เรียนรู้ในอดีตหนึ่งในหลักการสำคัญของการพัฒนาที่ขับเคลื่อนด้วยการทดสอบคือ "อย่าทดสอบมากกว่าหนึ่งคลาสในเวลาเดียวกัน" หมายความว่าคุณควรใช้ICsvRecordmocks CsvRecordหรือไม่สมบูรณ์มากกว่ากรณีที่แท้จริงของ อย่างไรก็ตามหลังจากลองใช้วิธีนี้ฉันสังเกตว่าการเยาะเย้ยในCsvRecordชั้นเรียนอาจทำให้ขนดกเล็กน้อย ซึ่งทำให้ฉันเป็นหนึ่งในสองข้อสรุป: ยากที่จะเขียนการทดสอบหน่วย! นั่นคือกลิ่นรหัส! ปรับปรุงโครงสร้าง! การเย้ยหยันการพึ่งพาอาศัยกันทุกครั้งนั้นไม่สมเหตุสมผล เมื่อฉันแทนที่ mocks ของฉันด้วยCsvRecordอินสแตนซ์ที่เกิดขึ้นจริงสิ่งต่าง ๆ เป็นไปอย่างราบรื่นมากขึ้น เมื่อมองไปรอบ ๆ สำหรับความคิดของคนอื่นฉันก็สะดุดกับโพสต์บล็อกนี้ซึ่งดูเหมือนจะสนับสนุน # 2 ข้างต้น สำหรับวัตถุที่อยู่คู่กันอย่างเป็นธรรมชาติเราไม่ควรกังวลกับการล้อเลียน ฉันจะออกนอกเส้นทาง? มีข้อเสียข้อสันนิษฐาน # 2 ข้างต้นหรือไม่ ฉันควรจะคิดเกี่ยวกับการปรับโครงสร้างการออกแบบใหม่หรือไม่?
10 tdd  coupling  mocking 

5
วิธีทดสอบแอพพลิเคชั่นที่มีขนาดใหญ่มาก
ฉันมีแอพ PHP ที่มีขนาดใหญ่มาก โดยปกติจะมีนักพัฒนา 2-3 คนทำงานเต็มเวลาและเราไปถึงจุดที่เราทำการเปลี่ยนแปลงและสร้างข้อบกพร่อง (ฟีเจอร์ไอ!) ซอฟต์แวร์ไม่ซับซ้อนต่อการพูดเพียงมีจำนวนมากเกิดขึ้น (35 ~ ตัวควบคุมเกี่ยวกับรุ่นเดียวกัน ฯลฯ ) แม้จะระมัดระวังก็เป็นเรื่องง่ายสำหรับการเปลี่ยนแปลงในมุมมองนี้ (การปรับแต่ง id บนองค์ประกอบ) เพื่อทำลายการค้นหา ajax ที่เกิดขึ้นภายใต้เงื่อนไขพิเศษบางอย่าง การทดสอบหน่วยเป็นสิ่งแรกที่ทำให้คุณนึกถึง แต่เราลองเหล่านี้ในแอปอื่นและมันง่ายมากที่จะลืมพวกเขา / หรือใช้เวลาทดสอบการเขียนมากขึ้นจากนั้นทำการทดสอบ เรามีสภาพแวดล้อมการแสดงละครที่มีการตรวจสอบโค้ดก่อนที่จะเผยแพร่ บางทีเราต้องใช้เวลาส่วนหนึ่ง Q / A คน? ทุกคนมีคำแนะนำ / ความคิดใด ๆ

9
มีใครทำ TDD "ของจริง" กับ Visual-C ++ และถ้าใช่พวกเขาจะทำอย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว Test Driven Developmentหมายถึงการเขียนการทดสอบก่อนโค้ดและทำตามรอบที่แน่นอน : ทดสอบการเขียน ตรวจสอบการทดสอบ (เรียกใช้) เขียนรหัสการผลิต ตรวจสอบการทดสอบ (เรียกใช้) ทำความสะอาดรหัสการผลิต ตรวจสอบการทดสอบ (วิ่ง) เท่าที่ฉันกังวลนี่เป็นไปได้ก็ต่อเมื่อโซลูชันการพัฒนาของคุณอนุญาตให้คุณสลับระหว่างการผลิตและรหัสการทดสอบได้อย่างรวดเร็วและทำการทดสอบสำหรับรหัสการผลิตบางส่วนอย่างรวดเร็ว ตอนนี้ในขณะที่มีกรอบการทดสอบหน่วยจำนวนมากสำหรับ C ++ (ฉันใช้ Bost.Test atm.) ดูเหมือนว่าไม่มีอยู่จริง ๆ (สำหรับC ++ ) Visual Studio (ปลั๊กอิน) โซลูชันที่ทำให้ TDD ทนทานต่อการใช้งาน "Bearable" หมายความว่าการคลิกครั้งเดียวเพื่อเรียกใช้การทดสอบสำหรับไฟล์ cpp บางไฟล์โดยไม่ต้องตั้งค่าการทดสอบแยกต่างหากด้วยตนเองเป็นต้น "Bearable" ยังหมายความว่าการทดสอบเริ่มต้นง่าย (การเชื่อมโยง!) และทำงานได้อย่างรวดเร็วมาก . ดังนั้นมีเครื่องมือ (ปลั๊กอิน) และเทคนิคใดบ้างที่ทำให้วัฏจักร …
10 ide  tdd  plugins  visual-c++ 

5
ถ้า TDD เกี่ยวกับการออกแบบทำไมฉันถึงต้องใช้มัน? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว กูรู TDD มากขึ้นและบอกเราว่าTDD ไม่ได้เกี่ยวกับการทดสอบมันเป็นเรื่องเกี่ยวกับการออกแบบ ดังนั้นฉันรู้ว่านักพัฒนาบางคนที่สร้างการออกแบบที่ยอดเยี่ยมจริงๆโดยไม่มี TDD พวกเขาควรฝึกซ้อม TDD ไหม?
10 tdd 

3
รับลูกบอลกลิ้งบน TDD
ฉันเป็นส่วนหนึ่งของทีมนักพัฒนาซอฟต์แวร์ที่ทำงานกับทีมอื่น ๆ เพื่อรักษาและปรับปรุงแอปพลิเคชันที่ใช้งานมาอย่างน้อย 15 ปี เมื่อมันถูกสร้างและออกแบบครั้งแรก TDD ก็ไม่เคยได้ยินมาก่อน แอปพลิเคชันค่อนข้างเสถียรและเราไม่ค่อยพบข้อบกพร่องในการแสดง แต่เราทำเฉลี่ยประมาณหนึ่งหรือสองข้อบกพร่องต่อสัปดาห์ที่ลดคุณภาพของการบริการอย่างจริงจัง ข้อบกพร่องเหล่านี้ใช้เวลาตลอดไปในการค้นหาและแก้ไขส่วนใหญ่เป็นเพราะการใช้นิ้วชี้และการทดสอบเดียวที่เรามีคือการทดสอบอินเตอร์เฟส เนื่องจากมีเวลามากมายที่จะตามล่าจุดบกพร่องก่อนที่มันจะสามารถแก้ไขได้ฉันและนักพัฒนาคนอื่นวางแผนที่จะเสนอการพัฒนาแบบทดสอบขับเคลื่อน มีการปรับปรุงใหม่เร็ว ๆ นี้และเราต้องการที่จะเห็นการทดสอบหน่วยใกล้เสร็จในโมดูลใหม่เรายังวางแผนที่จะแนะนำการสร้างหน่วยทดสอบสำหรับรหัสใด ๆ ที่เราต้องแก้ไขนั่นคือมรดก (เช่นการแก้ไขข้อบกพร่องหรือการใช้คุณสมบัติ ) แต่ไม่ต้องใช้เวลาในการพัฒนากรณีทดสอบสำหรับรหัสที่ไม่ได้ทำให้เกิดปัญหา สำหรับฉันดูเหมือนว่าสมเหตุสมผล เดือนนี้เรามีข้อผิดพลาดที่ใช้เวลานานกว่าสองสัปดาห์ในการแก้ไข แต่สามารถระบุได้ก่อนนำไปใช้หากการทดสอบหน่วยเสร็จสิ้น แต่สำหรับผู้จัดการของเราดูเหมือนว่าพวกเขากำลังจะใช้จ่ายเงินมากขึ้น ฉันจะโน้มน้าวลูกค้าของเราว่าพวกเขาต้องการใช้เงินสำหรับการทดสอบหน่วยและการพัฒนาแบบทดสอบได้อย่างไร มีการศึกษาใดที่แสดง ROI ของการทดสอบหน่วย?
10 unit-testing  tdd 

6
เริ่มต้นโครงการใหม่ด้วย TDD
ฉันกำลังศึกษา TDD และฉันอ่านว่ามันช่วยให้คุณกำหนดการออกแบบแอพได้ถูกต้องไหม? ดังนั้นฉันจึงตัดสินใจเริ่มสร้างโครงการใหม่เพื่อช่วยให้เข้าใจได้ดีขึ้น ฉันต้องการสร้างระบบการลงทะเบียนผู้ใช้แบบง่ายที่จะขอชื่อที่อยู่อีเมลประเทศ (จะเลือกจากรายการ) และหมายเลขโทรศัพท์ ดังนั้นคำถามคือ ... ฉันสร้างโซลูชันใหม่ใน VS 2010 เพิ่มโครงการทดสอบใหม่และฉันไม่รู้ว่าการทดสอบใดที่จะเขียน! เนื่องจากมันจะช่วยให้ฉันกำหนดการออกแบบได้ฉันจะเขียนแบบทดสอบอะไรได้บ้าง ขอบคุณสำหรับความช่วยเหลือใด ๆ !
10 c#  .net  tdd 

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

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