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

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

4
การทดสอบแต่ละหน่วยควรจะสามารถทำงานโดยอิสระจากการทดสอบอื่น ๆ
สมมติว่าคุณมีการทดสอบสำหรับสองวิธีในชั้นเรียน วิธีแรกรวบรวมข้อมูลจากระดับอื่นและวางลงในหน่วยความจำบางส่วนที่ไม่ขึ้นอยู่กับรันไทม์ (เช่นตาราง SQL) ดังนั้นข้อมูลทั้งหมดที่จัดการโดยการทดสอบนี้จะฮาร์ดโค้ดในการทดสอบ วิธีที่สองมีหน้าที่รับผิดชอบในการรับข้อมูลจากที่ที่วิธีแรกทิ้งไว้และเปลี่ยนมันในทางใดทางหนึ่ง (การคำนวณการเคลื่อนย้ายบางส่วนที่อื่น ฯลฯ ) ตอนนี้วิธีที่สองนี้อาจมีอินพุตฮาร์ดโค้ดเช่นเดียวกับแรกหรืออาจสันนิษฐานได้ว่าการทดสอบทั้งสองนั้นจะทำงานตามลำดับและสามารถเลือกได้ว่าการทดสอบครั้งแรกจะถูกเก็บไว้ที่ใดจากการทดสอบครั้งแรก หากคุณเลือกตัวเลือกที่สองคุณจะมีความคิดที่ดีว่าทั้งสองวิธีเล่นด้วยกันได้ดี แต่ถ้าการทดสอบครั้งที่ 1 ล้มเหลวการทดสอบทั้งหมดหลังจากนั้นจะล้มเหลวโดยนำประโยชน์จากการทดสอบไปช่วยแยกแมลงได้เร็วขึ้น หากคุณเลือกตัวเลือกแรกแต่ละวิธีจะแยกและทดสอบอย่างอิสระ แต่คุณจะไม่มีทางรู้ว่าพวกเขาสามารถทำงานร่วมกันได้อย่างถูกต้อง ตัวเลือกไหนดีกว่าที่นี่? มีทางเลือกบางอย่างเช่นมีการทดสอบเดี่ยวสำหรับแต่ละวิธีแยกด้วย hardcoding แล้วทดสอบที่ใหญ่กว่าที่มีทั้งสองวิธีในหนึ่งเดียว?

2
การทดสอบแบบรวมใช้ mocks หรือไม่
ขณะนี้ฉันอยู่ในชั้นเรียนสำหรับการทดสอบซอฟต์แวร์ที่สำหรับโครงการภาคการศึกษาของเราเราต้องทำการทดสอบหลายประเภทเช่นการทดสอบหน่วยและการทดสอบการรวม สำหรับการทดสอบการรวมตัวอาจารย์กล่าวว่าจะใช้ห้องสมุด mocks และการเยาะเย้ย (เช่น EasyMock และ Mockito) สำหรับการทดสอบการรวมกลุ่มของเรา ฉันเริ่มสับสนแล้ว การทดสอบการรวมเป็นการทดสอบนอกชั้นเรียนโมดูลบริการ ฯลฯ เหตุใด mocks และ stubs จึงเหมาะสมที่จะใช้ในการทดสอบการรวมหากคุณกำลังทดสอบคลาสและบริการที่หลากหลาย

4
ทำไมการพัฒนาขับเคลื่อนทดสอบจึงขาดหายไปจากการทดสอบของ Joel
ผมอ่านบล็อกนี้โดยโจ Spolsky เกี่ยวกับ12 ขั้นตอนในการรหัสที่ดีกว่า การขาดการทดสอบพัฒนาขับเคลื่อนทำให้ฉันประหลาดใจจริงๆ ดังนั้นฉันต้องการส่งคำถามไปยังปรมาจารย์ TDD ไม่คุ้มค่ากับความพยายามหรือไม่?

11
เหตุใดจึงจำเป็นต้องทดสอบแอพ iPhone ของฉันบนอุปกรณ์ iPhone จริง
ฉันพัฒนาแอปพลิเคชั่นหนึ่งสำหรับ iPhone และตอนนี้ฉันต้องการมันบน App Store เพื่อน iOS ที่มีปัญหาทางด้านวิทยาศาสตร์ของฉันบอกให้ฉันทดสอบบนอุปกรณ์จริงเช่นบน iPhone ดังนั้นฉันจึงสงสัยว่าเหตุใดจึงจำเป็นต้องทดสอบแอพ iPhone ของฉันบนอุปกรณ์ iPhone จริง ๆ (แม้ว่าพวกเขา (Apple) จะให้ "simulator" ซึ่งใกล้เคียงกับอุปกรณ์ของฉันหรือไม่
23 testing  iphone  ios 

11
เป็นไปได้หรือไม่ที่จะเขียนซอฟต์แวร์ที่ไม่จำเป็นต้องแก้ไขอย่างต่อเนื่อง?
ฉันเขียนซอฟต์แวร์เป็นจำนวนมากในหลายภาษาและฉันยังได้เขียนฮาร์ดแวร์สำหรับใช้กับ FPGA โดยใช้ Verilog และ VHDL ฉันมักจะสนุกกับการเขียนฮาร์ดแวร์มากกว่าซอฟต์แวร์และฉันคิดว่าหนึ่งในเหตุผลหลักคือมันเป็นไปได้ที่จะเขียนฮาร์ดแวร์ที่ "เสร็จสิ้น" และไม่จำเป็นต้องแก้ไข: คุณกำหนดอินเทอร์เฟซและฟังก์ชันการทำงานเขียนตารางทดสอบ ใช้โมดูลฮาร์ดแวร์จากนั้นทดสอบ heck จากมันโดยใช้ตัวจำลอง จากนั้นคุณสามารถพึ่งพาโมดูลฮาร์ดแวร์นั้นเป็นแบบเอกสารสำเร็จรูปเพื่อสร้างสิ่งที่ใหญ่กว่าและดีกว่า: หากคุณต้องการเพิ่มคุณสมบัติให้กับโมดูลนั้นคุณจะสร้างโมดูลที่สองและเพิ่มฟังก์ชันการทำงานที่นั่น คุณไม่เคยทิ้งโมดูลดั้งเดิมเพราะมันใช้งานได้ดีและยังคงมีประโยชน์ หนึ่งในความผิดหวังหลักของฉันกับซอฟต์แวร์คือมันไม่เคย "ทำ" มีคุณสมบัติเพิ่มอยู่เสมอ บ่อยครั้งเมื่อเพิ่มคุณสมบัติมันจะแนะนำบั๊กที่อื่นซึ่งใช้งานได้ดีมาก่อน สิ่งนี้ไม่ได้เกิดขึ้นในฮาร์ดแวร์ตราบใดที่อินเทอร์เฟซไม่ได้ถูกละเมิด เพื่อความชัดเจนฉันไม่ได้เรียกร้องให้สร้างบางสิ่งบางอย่างในรุ่นเดียวกับรายการคุณลักษณะและมันจะคงอยู่ตลอดไป: ฉันชอบการทำซ้ำและเผยแพร่หลายครั้งเมื่อเวลาผ่านไปเพื่อเพิ่มคุณลักษณะใหม่ ฉันไม่ต้องการที่จะกระตุ้นรหัสทางด้านซ้ายและค้นหาข้อผิดพลาดทางด้านขวาและสิ่งนี้ดูเหมือนว่าจะเกิดขึ้นหลังจากการเพิ่มคุณสมบัติใหม่ เป็นไปได้ไหมที่จะเขียนซอฟต์แวร์ในลักษณะเดียวกันกับที่ "เขียน" ฮาร์ดแวร์อยู่? มีวิธีการพัฒนาซอฟต์แวร์ที่ดีที่อนุญาตให้มีความก้าวหน้าไปข้างหน้าเสมอและอนุญาตให้เพิ่มฟังก์ชันการทำงานใหม่โดยไม่จำเป็นต้องเขียนโค้ดที่มีอยู่และแนะนำบั๊กใหม่หรือไม่

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

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

16
ใครเป็นผู้พัฒนาระบบทดสอบ
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันทำงานในพื้นที่ขององค์กรในช่วง 4 ปีที่ผ่านมาและสังเกตว่าโดยทั่วไปแล้วองค์กรต่าง ๆ ไม่เอื้อต่อสภาพแวดล้อมในการพัฒนารูปแบบการทดสอบครั้งแรก โครงการมักจะคงที่ค่าใช้จ่ายคงที่ระยะเวลาและลักษณะน้ำตก การทดสอบหน่วยใด ๆ หากทำได้เลยมักเกิดขึ้นหลังจากการพัฒนาในเฟส QA และดำเนินการโดยทีมอื่น ก่อนที่จะทำงานให้กับองค์กรฉันได้ปรึกษากับ บริษัท ขนาดเล็กถึงขนาดกลางและไม่มีใครเต็มใจจ่ายเงินสำหรับโครงการพัฒนารูปแบบการทดสอบครั้งแรก พวกเขามักต้องการให้การพัฒนาเริ่มต้นทันทีหรือหลังจากการออกแบบสั้น ๆ นั่นคือมีบางสิ่งที่คล้ายกับ Agile มากกว่าแม้ว่าลูกค้าบางคนต้องการทุกสิ่งที่ทำแผนที่คล้ายกับน้ำตก ร้านค้า บริษัท และลูกค้าประเภทใดที่การพัฒนาโดยอาศัยการทดสอบนั้นทำงานได้ดีที่สุด? โครงการประเภทใดที่เอื้อต่อ TDD

3
ทีมงานควบคุมคุณภาพควรทำการทดสอบในรูปแบบการแยกสาขาของ Gitflow
เราเป็นทีมใหญ่ (นักพัฒนา 10-12 คนและ 4 คน) ทำงานหลายโครงการด้วยที่เก็บ git เดียวกัน มันเป็นบริการเว็บแบ็กเอนด์ในฤดูใบไม้ผลิตาม เรากำลังมองหาการแยกทางและใช้กลยุทธ์ที่ดี นอกจากนี้เรายังมีทีมงาน qa ที่ทำให้มั่นใจว่าคุณสมบัติของเราทำงานได้ตามที่คาดไว้ (ปราศจากข้อบกพร่องในระดับหนึ่ง) หลังจากอ่านบทความไม่กี่ฉันรู้สึกว่าแบบจำลองGitflowทำงานได้ดีสำหรับเรา ที่นี่คำถามของฉันมา ทีม QA ของเราควรทดสอบคุณสมบัติของเราที่ไหน? พวกเขาควรทดสอบสาขาคุณลักษณะที่พวกเขาจะเพิ่มข้อผิดพลาดและนักพัฒนาจะแก้ไขและเมื่อผ่านการทดสอบ QA เรารวมการพัฒนา และ QA จะทำการทดสอบจำนวนเต็มอีกครั้งในสาขาที่กำลังพัฒนา เราควรรวมคุณสมบัติทั้งหมด (หลังการทดสอบหน่วยและการทดสอบพื้นฐานจากผู้พัฒนา) เพื่อพัฒนาสาขาและให้ทดสอบ qa จากที่นั่น การแก้ไขและการทดสอบทั้งหมดจะเกิดขึ้นในการพัฒนาเช่นกัน ฉันอยากรู้ว่าวิธีการใดที่ทำงานได้ดีสำหรับผู้อื่น
23 testing  git  branching  qa  gitflow 

6
บูรณาการอย่างต่อเนื่องสำหรับซอฟต์แวร์ทางวิทยาศาสตร์
ฉันไม่ใช่วิศวกรซอฟต์แวร์ ฉันเป็นนักเรียนปริญญาเอกในสาขาธรณีศาสตร์ เกือบสองปีที่แล้วฉันเริ่มเขียนโปรแกรมซอฟต์แวร์เชิงวิทยาศาสตร์ ฉันไม่เคยใช้การรวมอย่างต่อเนื่อง (CI) ส่วนใหญ่เป็นเพราะในตอนแรกฉันไม่รู้ว่ามันมีอยู่จริงและฉันเป็นคนเดียวที่ทำงานกับซอฟต์แวร์นี้ ในขณะนี้เนื่องจากฐานของซอฟต์แวร์กำลังเรียกใช้คนอื่นเริ่มสนใจและต้องการมีส่วนร่วมกับซอฟต์แวร์ แผนดังกล่าวคือบุคคลอื่น ๆ ในมหาวิทยาลัยอื่นกำลังนำส่วนเพิ่มเติมไปใช้กับซอฟต์แวร์หลัก (ฉันกลัวว่าพวกเขาสามารถแนะนำข้อบกพร่อง) นอกจากนี้ซอฟต์แวร์นั้นค่อนข้างซับซ้อนและยากที่จะทดสอบและฉันก็วางแผนที่จะทำงานต่อไป ด้วยเหตุผลสองประการนี้ฉันจึงคิดจะใช้ CI มากขึ้นเรื่อย ๆ เนื่องจากฉันไม่เคยมีการศึกษาวิศวกรซอฟต์แวร์และไม่มีใครรอบตัวฉันเคยได้ยินเกี่ยวกับ CI (เราเป็นนักวิทยาศาสตร์ไม่มีโปรแกรมเมอร์) ฉันพบว่ามันยากที่จะเริ่มต้นสำหรับโครงการของฉัน ฉันมีคำถามสองสามข้อที่ฉันต้องการคำแนะนำ: ก่อนอื่นคำอธิบายสั้น ๆ เกี่ยวกับการทำงานของซอฟต์แวร์: ซอฟต์แวร์ถูกควบคุมโดยไฟล์. xml ไฟล์เดียวที่มีการตั้งค่าที่จำเป็นทั้งหมด คุณเริ่มซอฟต์แวร์โดยเพียงแค่ส่งพา ธ ไปยังไฟล์. xml เป็นอาร์กิวเมนต์อินพุตและรันและสร้างไฟล์สองสามไฟล์ที่มีผลลัพธ์ การวิ่งครั้งเดียวสามารถใช้เวลา ~ 30 วินาที มันเป็นซอฟต์แวร์ทางวิทยาศาสตร์ ฟังก์ชั่นเกือบทั้งหมดมีพารามิเตอร์อินพุตหลายค่าซึ่งชนิดส่วนใหญ่เป็นคลาสที่ค่อนข้างซับซ้อน ฉันมีไฟล์. txt หลายไฟล์ที่มีแค็ตตาล็อกขนาดใหญ่ซึ่งใช้สร้างอินสแตนซ์ของคลาสเหล่านี้ ตอนนี้มาคำถามของฉัน: การทดสอบหน่วยการทดสอบบูรณาการการทดสอบแบบครบวงจร? : ซอฟต์แวร์ของฉันมีโค้ดประมาณ 30,000 บรรทัดพร้อมฟังก์ชั่นนับร้อยและ ~ 80 คลาส …

7
การเข้ารหัสและการทดสอบใน sprint เดียวกัน
มีการทดสอบการจัดการภายในการวิ่งเช่นเดียวกับการเข้ารหัสอย่างไรหากการเข้ารหัสทั้งหมดหรือส่วนใหญ่ไม่ได้ทำจนกว่าจะสิ้นสุดการวิ่ง (ฉันหมายถึงการพัฒนา "ซุปถึงถั่ว" และการทดสอบ PBI เดียวภายในการวิ่ง) คำตอบส่วนใหญ่ที่ฉันเคยเห็นทางออนไลน์เกี่ยวข้องกับการควบคุมอัตโนมัติ QA แต่ก็เป็นไปไม่ได้จริง ๆ เพราะคุณต้องใช้ UI การทำงานเพื่อบันทึกหรือสร้างการทดสอบอัตโนมัติจาก ฉันมีสตอรี่บอร์ดที่พัฒนาต่อไปในขณะที่ฉันพัฒนาฟีเจอร์และค้นหาข้อกำหนดใหม่ ๆ ในกรณีของฉันฉันกำลังพัฒนาแอปพลิเคชันเดสก์ท็อปใหม่ แอปเดสก์ท็อปมักไม่ให้ยืมตัวเองกับการทดสอบอัตโนมัติเป็นอย่างดี ฉันมีการทดสอบหน่วยอัตโนมัติบางอย่าง แต่ไม่ใช่การทดสอบการใช้งาน / การรวมด้วยตนเองที่ผู้เชี่ยวชาญด้านคุณภาพจะทำ ดังนั้นที่ฉันอยู่ตอนนี้คือการวิ่งของฉันจะสิ้นสุดในวันพรุ่งนี้ฉันยังคงเขียนโค้ดให้เสร็จและคน QA ของฉันยังไม่มีการทดสอบ ฉันแน่ใจว่าฉันไม่ใช่คนแรกที่มีปัญหานี้ ในอดีตที่ผ่านมาฉันได้ทำไปป์ไลน์: ในการวิ่งปัจจุบันทีมทดสอบจะทดสอบคุณสมบัติที่มีการใช้งานในระหว่างการวิ่งครั้งก่อนหน้า ที่งานปัจจุบันของฉัน PM อ้างถึงวิธีการนี้ว่า "น้ำตก" และเป็นที่ยอมรับไม่ได้

2
ฉันจะสร้างสภาพแวดล้อมที่การทดสอบแก้ไขถูกมองว่าเป็นลำดับความสำคัญได้อย่างไร
ฉันเป็นวิศวกรซอฟต์แวร์ที่ บริษัท ขนาดกลาง เรามีแพลตฟอร์มการทดสอบที่ค่อนข้างแข็งแกร่งซึ่งใช้งานบน TeamCity มันทำการทดสอบหน่วยในการเช็คอินทุกครั้งและการทดสอบหน่วย / BVT รายวัน ปัญหาคือ - เรามีการทดสอบหน่วยแตกหัก บ่อยครั้งที่ฉันนำมาซึ่งความไม่มีจุดหมายของการทดสอบหน่วยหากพวกเขาแตกหักและไม่ทำความสะอาด การไม่สามารถดูได้ว่าการเปลี่ยนแปลงทำให้เกิดการถดถอยจะลบมูลค่าส่วนใหญ่ของแพลตฟอร์มการทดสอบหน่วย ฉันต้องการปลูกเมล็ดพันธุ์ที่จะสร้างวัฒนธรรมของนิสัยที่ดี - แก้ไขการทดสอบเมื่อพวกเขาแตกหักเห็นว่ามันมีค่าจัดลำดับความสำคัญของการแก้ไขการทดสอบพร้อมกับงานอื่น ๆ ฉันได้ลองติดสินบน (ขนมอบ) แล้วก็ถามธรรมดาและพูดกับหัวหน้าทีม ทุกคนบอกว่ามันเป็นความคิดที่ดี แต่ฉันเห็นว่าเป็นคนเดียวที่ทำอะไรเกี่ยวกับมัน วิธีที่ดีที่สุดในการเริ่มต้นกระตุ้นให้ผู้อื่นแก้ไขการทดสอบของพวกเขาคืออะไรและจัดลำดับความสำคัญการทดสอบภายในการวิ่งของพวกเขา หากมีวิธีอัตนัยน้อยกว่าที่จะถามสิ่งนี้ฉันยินดีที่จะยอมรับเคล็ดลับใด ๆ

6
ฉันจะทดสอบรหัสทดสอบได้อย่างไร
หนึ่งในสองสามสิ่งที่นักพัฒนาซอฟต์แวร์ส่วนใหญ่เห็นด้วยคือคุณไม่ควรใช้โค้ดในการทำงานอย่างถูกต้องเว้นแต่คุณจะทดสอบ หากคุณไม่ทดสอบอาจมีข้อบกพร่องซ่อนเร้นที่จะทำให้คุณทำงานได้มากขึ้น ฉันเข้าใจวิธีทดสอบรหัสปกติของฉัน แต่ฉันควรทดสอบรหัสทดสอบอย่างไรเพื่อให้แน่ใจว่าสามารถค้นหาและรายงานข้อผิดพลาดได้อย่างมีประสิทธิภาพเมื่อมี โดยส่วนตัวฉันโง่พอที่จะเขียนกรณีทดสอบที่ผิดพลาดซึ่งจะเกิดขึ้นเมื่อไม่ควรทำดังนั้นจึงต้องเอาชนะวัตถุประสงค์ของการทดสอบการเขียนของฉันตั้งแต่แรก โชคดีที่ฉันพบและแก้ไขข้อผิดพลาดในเวลา แต่ตามการทดสอบมนต์ดูเหมือนว่าไม่มีชุดทดสอบจะเสร็จสมบูรณ์โดยไม่ต้องมีชุดทดสอบของตัวเองเพื่อให้แน่ใจว่ามันทำงานได้ สำหรับฉันดูเหมือนว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือเพื่อให้แน่ใจว่าการทดสอบล้มเหลวสำหรับรหัสบั๊กกี้ * ถ้าฉันใช้เวลา 2 นาทีสลับกันเพิ่มข้อผิดพลาดในรหัสและทำให้แน่ใจว่าล้มเหลวฉันควรมีความมั่นใจในระดับที่ยอมรับได้ว่า การทดสอบ 'ทำงาน' สิ่งนี้นำมาสู่คำถามที่สองของฉัน: อะไรคือวิธีที่ดีในการแนะนำข้อบกพร่องเพื่อให้แน่ใจว่าพวกเขาถูกจับในกรณีทดสอบ? ฉันควรสุ่มแสดงความคิดเห็นงบตรวจสอบให้แน่ใจว่าสาขาที่ไม่ถูกต้องของการif-elseเรียกใช้โดยปฏิเสธสภาพของมันและเปลี่ยนลำดับการดำเนินการของรหัสที่มีผลข้างเคียง ฯลฯ จนกว่าฉันจะพอใจการทดสอบของฉันจะจับมากที่สุดโรคจิตที่พบบ่อย? นักพัฒนามืออาชีพตรวจสอบว่าการทดสอบทำในสิ่งที่ควรทำอย่างไร พวกเขาแค่คิดว่าการทดสอบทำงานหรือพวกเขาใช้เวลาในการทดสอบเช่นกัน? ถ้าเป็นเช่นนั้นพวกเขาจะทำการทดสอบอย่างไร ฉันไม่ได้แนะนำให้ผู้คนควรใช้เวลามากในการทดสอบการทดสอบแล้วทดสอบการทดสอบเพื่อทดสอบว่าพวกเขาไม่เคยเขียนรหัสจริง แต่ฉันได้ทำสิ่งที่โง่พอที่ฉันรู้สึกว่าฉันจะได้ประโยชน์จากนิดหน่อย ของ 'การทดสอบ meta' และอยากรู้เกี่ยวกับวิธีที่ดีที่สุดที่จะไปเกี่ยวกับมัน : D * ฉันสามารถตรวจสอบเพื่อดูว่าการทดสอบผ่านเมื่อการทดสอบรหัส 'ปราศจากข้อผิดพลาด' แต่การใช้รหัสเป็นข้อมูลจำเพาะสำหรับการทดสอบดูค่อนข้างย้อนหลัง ...

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

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

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