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

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

5
ในการเขียนโปรแกรมการทำงานหนึ่งจะบรรลุ modularity ผ่านกฎหมายทางคณิตศาสตร์ได้อย่างไร
ฉันอ่านคำถามนี้ว่าโปรแกรมเมอร์ที่ใช้งานมักจะใช้การพิสูจน์ทางคณิตศาสตร์เพื่อให้แน่ใจว่าโปรแกรมทำงานได้อย่างถูกต้อง ฟังดูง่ายกว่าและเร็วกว่าการทดสอบหน่วย แต่มาจากพื้นหลังการทดสอบ OOP / หน่วยที่ฉันไม่เคยเห็นมาก่อน คุณช่วยอธิบายให้ฉันฟังและยกตัวอย่างได้ไหม

10
การทดสอบ vs อย่าทำซ้ำตัวเอง (DRY)
ทำไมการทำซ้ำตัวเองด้วยการเขียนข้อสอบจึงได้รับการสนับสนุนอย่างมาก? ดูเหมือนว่าการทดสอบโดยทั่วไปจะแสดงสิ่งเดียวกันกับรหัสและด้วยเหตุนี้จึงเป็นการทำซ้ำ (ในแนวคิดไม่ใช่การใช้งาน) ของโค้ด เป้าหมายสูงสุดของ DRY จะไม่รวมการกำจัดรหัสการทดสอบทั้งหมดหรือไม่
11 testing  dry 

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

3
ฉันจะวาดเส้นแบ่งระหว่างการทดสอบหน่วยและการทดสอบการรวมได้อย่างไร พวกเขาควรจะแยกจากกัน?
ฉันมีกรอบ MVC ขนาดเล็กที่ฉันทำงานอยู่ มันคือฐานรหัสไม่ใช่เรื่องใหญ่ แต่มันก็ไม่ได้มีแค่สองสามชั้น ในที่สุดฉันก็ตัดสินใจที่จะกระโดดและเริ่มเขียนแบบทดสอบ (ใช่ฉันรู้ว่าฉันควรจะทำอย่างนั้นมาตลอด แต่มันก็ API ไม่เสถียรอย่างยิ่งจนถึงตอนนี้) อย่างไรก็ตามแผนของฉันคือทำให้ง่ายมากในการทดสอบรวมถึงการทดสอบการรวม ตัวอย่างการทดสอบการรวมตัวจะเป็นไปตามบรรทัดเหล่านี้: วัตถุคำขอ HTTP ปลอม -> กรอบงาน MVC -> วัตถุตอบกลับ HTTP -> ตรวจสอบว่าการตอบสนองนั้นถูกต้อง เพราะนี่เป็นสิ่งที่ทำได้โดยไม่ต้องใช้เครื่องมือพิเศษ (เบราว์เซอร์อัตโนมัติเป็นต้น) ฉันสามารถทำได้ด้วยกรอบการทดสอบตามปกติ (ฉันใช้ NUnit) ตอนนี้คำถามใหญ่ ฉันจะวาดเส้นแบ่งระหว่างการทดสอบหน่วยและการทดสอบการรวมได้ที่ไหน ฉันควรทดสอบทีละชั้น (มากที่สุดเท่าที่จะทำได้) ด้วยการทดสอบหน่วย? ควรวางการทดสอบการรวมในโครงการทดสอบเดียวกันกับโครงการทดสอบหน่วยของฉันหรือไม่

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

5
ตกลงเพื่อทำซ้ำรหัสสำหรับการทดสอบหน่วยหรือไม่
ฉันเขียนอัลกอริธึมการเรียงลำดับสำหรับการกำหนดชั้นเรียนและฉันยังได้เขียนการทดสอบบางอย่างเพื่อให้แน่ใจว่าอัลกอริทึมนั้นได้ดำเนินการอย่างถูกต้อง การทดสอบของฉันมีความยาวเพียง 10 บรรทัดและมี 3 ในนั้น แต่เพียง 1 บรรทัดที่เปลี่ยนแปลงระหว่าง 3 ดังนั้นจึงมีรหัสซ้ำจำนวนมาก มันจะดีกว่าที่จะ refactor รหัสนี้เป็นวิธีอื่นที่เรียกว่าจากการทดสอบแต่ละครั้งหรือไม่ ฉันจะไม่ต้องเขียนแบบทดสอบอื่นเพื่อทดสอบการเปลี่ยนโครงสร้างหรือไม่? ตัวแปรบางตัวสามารถเลื่อนขึ้นไปถึงระดับคลาสได้ การทดสอบคลาสและวิธีการควรเป็นไปตามกฎเดียวกันกับคลาส / วิธีการปกติหรือไม่ นี่คือตัวอย่าง: [TestMethod] public void MergeSortAssertArrayIsSorted() { int[] a = new int[1000]; Random rand = new Random(DateTime.Now.Millisecond); for(int i = 0; i < a.Length; i++) { a[i] = rand.Next(Int16.MaxValue); } int[] b …

2
ความแตกต่างระหว่างการทดสอบแบบ Soak และการทดสอบแบบความเครียดคืออะไร
ใครสามารถอธิบายความแตกต่างเกี่ยวกับการทดสอบการแช่และความเครียด ฉัน googled เกี่ยวกับพวกเขาและพบว่าทั้งสองกำลังจะทดสอบซอฟต์แวร์เกินขีด จำกัด ของมัน เหมาะสำหรับกลยุทธ์การทดสอบทั้งสองหรือไม่

6
QA ควรเป็นส่วนหนึ่งของแผนกพัฒนาหรือไม่?
ฉันทำงานกับ บริษัท เล็ก ๆ ที่มีแผนกพัฒนาผลิตภัณฑ์มาระยะหนึ่งแล้ว อย่างไรก็ตามสิ่งที่เรายังไม่มีคือกลุ่มควบคุมคุณภาพ / ทดสอบ เรากำลังมองหาเพื่อเพิ่มกลุ่มการทดสอบ แต่กำลังดิ้นรนเพื่อกำหนดตำแหน่งที่ดีที่สุดในการวางโครงสร้างองค์กรของ บริษัท โดยเฉพาะเราจะจ้างตำแหน่ง "ผู้ทดสอบลีดเดอร์" พวกเขาควรจะใส่เป็นส่วนหนึ่งของแผนกพัฒนาผลิตภัณฑ์หรือควรเป็นแผนกใหม่ พวกเขาควรจะอยู่ที่อื่นหรือไม่ บริษัท ของเรามีโครงสร้างคร่าวๆดังนี้: ผู้บริหารสูงสุด CTO ผู้อำนวยการฝ่ายพัฒนาผลิตภัณฑ์ ผู้อำนวยการฝ่ายบริการลูกค้า นักพัฒนา รองประธานฝ่ายปฏิบัติการ วิศวกรเครือข่าย วิศวกรฝ่ายขาย / ฝ่ายขาย ประธาน ตัวควบคุม

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

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

3
ผู้ทดสอบ (การประกันคุณภาพ) ควรทำอะไรในทีมการต่อสู้
มาจากสภาพแวดล้อมการต่อสู้ที่ไม่มีการสนับสนุนการทดสอบแบบบูรณาการและพนักงาน QA ที่มีใจรักอิสระผู้ทดสอบ (QA) ที่ดีที่สุดทำงานร่วมกับทีมการต่อสู้ได้อย่างไร พวกเขาควรทำอย่างไร สำหรับการอ้างอิงบางฟังก์ชั่นการทดสอบคือ: การทดสอบหน่วย การทดสอบบูรณาการ การทดสอบการทำงาน การทดสอบประสิทธิภาพ การทดสอบการยอมรับ
11 testing  scrum 

3
การอ้างอิงที่ตีพิมพ์ครั้งแรกในการเขียนโปรแกรมทดสอบครั้งแรกคืออะไร?
ฉันกำลังอ่าน Refactoring โดย Martin Fowler ในบทที่ 4 การทดสอบอาคารฉันเจอข้อความต่อไปนี้ ในความเป็นจริงหนึ่งในเวลาที่มีประโยชน์ที่สุดในการเขียนการทดสอบคือก่อนที่คุณจะเริ่มโปรแกรม เมื่อคุณต้องการเพิ่มสถานที่ให้เริ่มด้วยการเขียนการทดสอบ นี่ไม่ได้ย้อนกลับไปตามที่ฟัง เมื่อเขียนการทดสอบคุณจะถามตัวเองว่าต้องทำอะไรเพื่อเพิ่มฟังก์ชั่น การเขียนการทดสอบยังเน้นที่ส่วนต่อประสานมากกว่าการใช้งาน (เป็นสิ่งที่ดีเสมอ) นอกจากนี้ยังหมายความว่าคุณมีจุดที่ชัดเจนในการเขียนโค้ดเมื่อการทดสอบทำงาน ในขณะที่ฉันเป็นผู้สนับสนุนการพัฒนาที่ขับเคลื่อนด้วยการทดสอบในขณะนี้ฉันจำไม่ได้ว่าได้รับการแนะนำให้รู้จักกับแนวคิดเมื่อฉันอ่านหนังสือเล่มนี้เมื่อเกือบ 5 ปีที่แล้ว ตามที่ Amazon.com หนังสือเล่มนี้ถูกตีพิมพ์ครั้งแรกเมื่อวันที่ 8 กรกฎาคม 1999 นี่เป็นข้อมูลอ้างอิงที่ตีพิมพ์ครั้งแรกสำหรับการเขียนโปรแกรมทดสอบครั้งแรกหรือมีบางสิ่งที่เร็วกว่านี้หรือไม่
11 testing  history 

3
วิธีการทดสอบสำหรับการทดสอบฟังก์ชั่นโดยการทดสอบฟังก์ชั่นที่เรียกว่ายังคงทดสอบหน่วย?
ถ้าเราทดสอบฟังก์ชั่น B โดยการทดสอบฟังก์ชั่น C ซึ่งเรียกฟังก์ชั่น B นั่นคือการเขียนโปรแกรมทดสอบเพื่อทดสอบฟังก์ชั่น C ซึ่งเรียกฟังก์ชั่น B นั้นเป็นวิธีทดสอบยังคงเรียกว่าการทดสอบหน่วยหรืออย่างอื่น? เมื่อใดจึงจะต้องการทดสอบทางอ้อมในฟังก์ชันที่เรียกใช้ฟังก์ชันเป้าหมายและเมื่อใดจึงควรทดสอบฟังก์ชันโดยตรง

11
ข้อแตกต่างระหว่างการดีบักและการทดสอบคืออะไร
คำแนะนำเกี่ยวกับการทดสอบซอฟต์แวร์ (Ammann & Offutt) กล่าวถึง p.32 แบบทดสอบครบกำหนด 5 ระดับ: ระดับ 0ไม่มีความแตกต่างระหว่างการทดสอบและการดีบัก ระดับ 1วัตถุประสงค์ของการทดสอบคือการแสดงให้เห็นว่าซอฟต์แวร์ใช้งานได้ ระดับ 2วัตถุประสงค์ของการทดสอบคือการแสดงให้เห็นว่าซอฟต์แวร์ไม่ทำงาน ระดับ 3จุดประสงค์ของการทดสอบไม่ได้เป็นการพิสูจน์สิ่งใดเป็นพิเศษ แต่เพื่อลดความเสี่ยงในการใช้ซอฟต์แวร์ การทดสอบระดับ 4เป็นวินัยทางจิตใจที่ช่วยให้ผู้เชี่ยวชาญด้านไอทีทุกคนพัฒนาซอฟต์แวร์ที่มีคุณภาพสูงขึ้น แม้ว่าพวกเขาจะไม่ได้ลงรายละเอียดเพิ่มเติมมากนัก การดีบักและการทดสอบต่างกันอย่างไร

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

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