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

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

5
จะพัฒนาบน Windows และทดสอบและใช้งานบน Linux ได้อย่างไร
ฉันเป็นหนึ่งในสองนักพัฒนาสำหรับซอฟต์แวร์ภายใน (เขียนด้วยหลาม) ใน บริษัท ของฉัน ซอฟต์แวร์เป็นแอปพลิเคชันเซิร์ฟเวอร์ที่ออกแบบมาเพื่อใช้งานบนกล่องเฉพาะ Linux ปัจจุบันเรามีหนึ่งกล่องที่เก็บที่เก็บ SVN ของเราและกล่องนี้ยังใช้สำหรับการทดสอบ ปัญหาคือว่าฉันกำลังพัฒนามันบนเวิร์กสเตชันของฉันโดยใช้ Eclipse บน Windows และแอพนี้ไม่สามารถทำงานบน Windows ทำอย่างไรจึงจะจัดสภาพแวดล้อมให้เหมาะสมเพื่อที่คุณจะได้ไม่เสียเวลาอันมีค่าในการถ่ายโอนโปรเจ็กต์และโค้ดเพื่อให้คุณสามารถทดสอบได้? ขณะนี้ฉันกำลังทำการชำระเงิน svn เปลี่ยนรหัสบางส่วนแล้วอัปโหลดไปยังเซิร์ฟเวอร์การพัฒนาเพื่อทำการทดสอบ (ไม่ใช่ผ่าน svn) ทดสอบบนเซิร์ฟเวอร์เปลี่ยนบางอย่างทดสอบอีกครั้ง ฯลฯ หลังจากนั้นสิ่งที่มากระทำ การอัปโหลดและทดสอบอย่างต่อเนื่องนี้ทำให้ฉันเป็นบ้า ฉันพยายามเก็บโครงการไว้บนเซิร์ฟเวอร์ (เช็คเอาต์ที่บ้าน dir) แต่สิ่งนี้ทำให้เกิดปัญหามากมายกับ Eclipse เห็นได้ชัดว่าฉันไม่มีประสบการณ์มากมายในเรื่องนี้ดังนั้นฉันจึงถามว่าวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับปัญหาประเภทนี้คืออะไร?

6
วิธีปรับปรุงการทดสอบรหัสของคุณเอง [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว วันนี้ฉันตรวจสอบการเปลี่ยนแปลงของรหัสบางอย่างซึ่งกลายเป็นว่าไม่ทำงานเลยเนื่องจากมีบางสิ่งที่ค่อนข้างโง่ แต่สำคัญมาก ฉันรู้สึกแย่กับมันมากและฉันก็หวังว่าในที่สุดฉันก็จะได้เรียนรู้อะไรบางอย่างจากมัน สิ่งที่โง่คือฉันเคยทำสิ่งเหล่านี้มาก่อนและฉันมักจะบอกตัวเองเสมอว่าครั้งต่อไปที่ฉันจะไม่โง่อย่างนั้น ... จากนั้นก็เกิดขึ้นอีกครั้งและฉันก็รู้สึกแย่ลง ฉันรู้ว่าคุณควรรักษาคางของคุณและเรียนรู้จากความผิดพลาดของคุณ แต่นี่คือสิ่งที่: ฉันพยายามที่จะปรับปรุงตัวเองฉันไม่เห็นว่าฉันสามารถป้องกันไม่ให้สิ่งเหล่านี้เกิดขึ้น ดังนั้นตอนนี้ฉันขอให้พวกคุณ: คุณมี groundrules บางอย่างเมื่อทดสอบรหัสของคุณ?

5
เมื่อเขียนรายละเอียดสไตล์ BDD คุณควรใช้“ ควร” หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันรู้ว่านี่เป็นอัตนัย แต่ฉันไม่สามารถหากรณีที่ดีสำหรับหนึ่งหรืออื่น ๆ : มัน "ควรทำอะไร" มัน "ทำอะไรบางอย่าง" ผู้เสนอแบบควรพูดถึงว่ามันบังคับให้คุณถามจริง ๆ ว่าคุณกำลังพยายามทำอะไรให้สำเร็จในขณะที่ผู้ค้นหาพบว่ามันซ้ำซ้อน มีฉันทามติเกี่ยวกับเรื่องนี้หรือว่าเป็นเรื่องของสไตล์อย่างหมดจดหรือไม่?
12 testing  bdd 

5
รูปแบบใดเหมาะที่สุดสำหรับต้นแบบแรกที่ไม่ได้อยู่บนกระดาษ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา แอปคอนโซล (รายการโปรด), รูปแบบรวดเร็ว & เลอะเทอะ, MS Paint (สำหรับ GUI); อะไรที่ได้ผลดีที่สุดสำหรับแอปพลิเคชั่นมาตรฐาน ทำไม?

1
ปรับปรุงไดอะแกรมตรรกะและสถาปัตยกรรมฟิสิคัลให้ทันสมัยอยู่เสมอ
ในโครงการพัฒนาซอฟต์แวร์ใด ๆ ที่เกี่ยวข้องกับระบบกระจายที่มีผู้พัฒนาหลายคนการใช้ Logical และ Physical Architecture diagrams เป็นแนวปฏิบัติที่ดีที่สุด แต่จากประสบการณ์ของฉันไดอะแกรมเหล่านี้เริ่มต้นจากการดูแลรักษาอย่างดีตั้งแต่เริ่มโครงการ แต่ไม่ได้รับการปรับปรุง และขั้นตอนการบำรุงรักษาจะเริ่มขึ้น สำหรับโครงการที่ซับซ้อนที่มีกระบวนการกระจายจำนวนมากไดอะแกรมมีแนวโน้มที่จะล้าสมัยหรือไม่ถูกต้องอย่างรวดเร็วแม้กระทั่งก่อนการเปิดตัวครั้งแรกเนื่องจากไม่มีใครมีความรู้ทั้งหมด ด้วยภูมิหลังนี้ฉันต้องการถามคำถามต่อไปนี้กับชุมชน: สำคัญอย่างไรที่มีไดอะแกรมตรรกะและฟิสิคัลสถาปัตยกรรมที่ทันสมัยและแม่นยำ? มีเครื่องมือและกระบวนการใดบ้างที่สามารถช่วยให้ทันสมัยอยู่เสมอ? ใครควรเป็นผู้รับผิดชอบในการทำให้พวกเขาทันสมัย ผู้ดูแลระบบผู้พัฒนาและทีมงานควบคุมคุณภาพสามารถมีส่วนร่วมได้อย่างไร?

2
ฉันควรจะทดสอบคลาสย่อยหรือคลาสแม่นามธรรมของฉันหรือไม่
ฉันมีโครงร่างการใช้งานเช่นเดียวกับข้อ 18 จาก Effective Java (การอภิปรายเพิ่มเติมที่นี่ ) มันเป็นคลาสนามธรรมที่มีวิธีการสาธารณะ 2 วิธี methodA () และ methodB () ที่เรียกวิธีการ subclasses เพื่อ "เติมช่องว่าง" ที่ฉันไม่สามารถกำหนดในลักษณะที่เป็นนามธรรม ฉันพัฒนาก่อนโดยการสร้างคลาสที่เป็นรูปธรรมและเขียนการทดสอบหน่วยสำหรับมัน เมื่อชั้นสองมาฉันสามารถแยกพฤติกรรมทั่วไปใช้ "ช่องว่างที่หายไป" ในชั้นสองและมันก็พร้อม (แน่นอนการทดสอบหน่วยถูกสร้างขึ้นสำหรับคลาสย่อยที่สอง) เวลาผ่านไปและตอนนี้ฉันมี 4 คลาสย่อยแต่ละการใช้งาน 3 วิธีการป้องกันแบบสั้นที่เฉพาะเจาะจงกับการใช้งานที่เป็นรูปธรรมของพวกเขาในขณะที่การใช้โครงร่างทำหน้าที่ทั่วไปทั้งหมด ปัญหาของฉันคือเมื่อฉันสร้างการใช้งานใหม่ฉันเขียนการทดสอบอีกครั้ง: คลาสย่อยเรียกวิธีตามที่กำหนดหรือไม่? วิธีการที่กำหนดมีคำอธิบายประกอบที่กำหนดหรือไม่ ฉันจะได้รับผลลัพธ์ที่คาดหวังจากวิธีการ A หรือไม่ ฉันจะได้รับผลลัพธ์ที่คาดหวังจากวิธีการ B หรือไม่ ในขณะที่เห็นข้อดีด้วยวิธีนี้: เป็นเอกสารข้อกำหนดของคลาสย่อยผ่านการทดสอบ มันอาจล้มเหลวอย่างรวดเร็วในกรณีที่มีการปรับโครงสร้างที่มีปัญหา ทดสอบคลาสย่อยโดยรวมและสาธารณะ API ("methodA () ทำงานอย่างไร" และไม่ "วิธีนี้ได้รับการป้องกันหรือไม่") ปัญหาที่ฉันมีคือการทดสอบสำหรับคลาสย่อยใหม่นั้นไม่ใช่เกมง่ายๆ: …

3
การทดสอบหน่วยยืนยันเดียวไม่ทำลายหลักการ DRY หรือไม่
เมื่อใดก็ตามที่ฉันเขียนการทดสอบหน่วยฉันมักจะพยายามยืนยันเพียงครั้งเดียวต่อการทดสอบเพื่อให้การดีบักง่ายขึ้นเมื่อการทดสอบล้มเหลว อย่างไรก็ตามเมื่อฉันทำตามกฎนี้ฉันรู้สึกว่าฉันกำลังคัดลอกรหัสเดียวกันในการทดสอบแต่ละครั้งอย่างต่อเนื่องและด้วยการทดสอบเพิ่มเติมมันจะยากที่จะกลับไปอ่านและบำรุงรักษา ดังนั้นการทดสอบแบบยืนยันเพียงครั้งเดียวจึงเป็นการละเมิด DRY หรือไม่ และมีกฎที่ดีหรือไม่ที่จะต้องปฏิบัติตามเพื่อหาสมดุลที่ดีเช่นเดียวกับการทดสอบหนึ่งวิธีต่อหนึ่งวิธี * * ฉันรู้ว่าอาจไม่ได้มีขนาดเดียวที่เหมาะกับการแก้ปัญหาทั้งหมดนี้ แต่มีวิธีแนะนำให้ใช้วิธีนี้หรือไม่

9
รหัสทดสอบคัดลอกและวาง: วิธีนี้แย่แค่ไหน?
งานปัจจุบันของฉันส่วนใหญ่เขียนโค้ดทดสอบ GUI สำหรับแอปพลิเคชันต่างๆที่เราใช้งาน อย่างไรก็ตามฉันพบว่าฉันมักจะคัดลอกและวางรหัสจำนวนมากในการทดสอบ เหตุผลสำหรับเรื่องนี้คือพื้นที่ที่ฉันทดสอบมีแนวโน้มที่จะคล้ายกันมากพอที่จะต้องมีการทำซ้ำ แต่ก็ไม่ได้คล้ายกันมากพอที่จะใส่รหัสลงในเมธอดหรือวัตถุ ฉันพบว่าเมื่อฉันพยายามใช้คลาสหรือวิธีการเพิ่มเติมอย่างกว้างขวางการทดสอบจะยุ่งยากมากขึ้นในการบำรุงรักษาและบางครั้งก็ยากที่จะเขียนตั้งแต่แรก แต่ฉันมักจะคัดลอกโค้ดทดสอบขนาดใหญ่จำนวนหนึ่งจากส่วนหนึ่งแล้ววางลงในอีกส่วนหนึ่งและทำการเปลี่ยนแปลงเล็กน้อยตามที่ฉันต้องการ ฉันไม่ได้ใช้วิธีการเข้ารหัสที่มีโครงสร้างมากขึ้นเช่นการใช้หลักการหรือฟังก์ชั่น OO มากขึ้น ผู้เขียนโค้ดคนอื่นรู้สึกเช่นนี้เมื่อเขียนรหัสทดสอบหรือไม่? เห็นได้ชัดว่าฉันต้องการที่จะปฏิบัติตามหลักการ DRY และ YAGNI แต่ฉันพบว่ารหัสทดสอบ (รหัสทดสอบอัตโนมัติสำหรับการทดสอบ GUI ต่อไป) สามารถทำให้หลักการเหล่านี้ยากที่จะปฏิบัติตาม หรือฉันต้องการเพียงแค่ฝึกฝนการเข้ารหัสและระบบโดยรวมที่ดีขึ้นในการทำสิ่งต่าง ๆ ? แก้ไข: เครื่องมือที่ฉันใช้คือ SilkTest ซึ่งเป็นภาษาที่เป็นกรรมสิทธิ์ที่ชื่อว่า 4Test เช่นกันการทดสอบเหล่านี้ส่วนใหญ่ใช้สำหรับเดสก์ท็อปของ Windows แต่ฉันได้ทำการทดสอบเว็บแอปโดยใช้การตั้งค่านี้เช่นกัน

5
วิธีการทดสอบไฟล์ jsp
ฉันกำลังพัฒนาแอปพลิเคชัน Java 6 EE และฉันกำลังทดสอบรหัส jsp ของฉันกับอีกอันหนึ่งด้วยเวอร์ชันการทดสอบของการเรียกใช้ฟังก์ชั่นและรหัสที่ใช้ในแอปพลิเคชันดั้งเดิม แต่ดูเหมือนจะหลวมและใช้งานไม่ได้ มีวิธีที่ดีในการทำแบบทดสอบนี้หรือไม่?

5
RSpec และแตงกวาคุ้มค่าหรือไม่
ฉันรู้ว่าโปรแกรมเมอร์ของ RoR ส่วนใหญ่กำลังทดสอบผู้ติดยาและฉันเข้าใจถึงข้อดีของชุดทดสอบขนาดใหญ่ แต่เมื่อฉันเริ่มการทดสอบฉันไม่เคยได้รับชุดใหญ่ดังกล่าวและฉันมักจะสงสัยว่า "ฉันกำลังทดสอบวิธีที่ถูกต้องหรือไม่ ฉันมักจะเกี่ยวข้องกับการทดสอบการรวมการทดสอบเฉพาะวิธีที่แอปพลิเคชันทำงาน ก่อนอื่นการทดสอบคุ้มค่าหรือไม่ ฉันหมายถึงเวลาที่ใช้ในการทดสอบการเขียนคุ้มค่าหรือไม่ จากนั้นฉันใช้ RSpec ฉันเพิ่งค้นพบแตงกวาใช้มันซักพัก แต่ฉันไม่รู้ว่าการเขียนทุกขั้นตอนเหล่านี้คุ้มค่าหรือไม่ ฉันรู้ว่าฉันสามารถนำขั้นตอนมาใช้ใหม่ได้ แต่ฉันไม่เคยรู้เลยว่าขั้นตอนเหล่านี้สมบูรณ์เกินไปหรือไม่: ตัวอย่างเช่นฉันใช้Given I am logged in as (.+)แต่ฉันไม่รู้ว่าต้องพูดในคำจำกัดความของมันหรือไม่Given there's a user called $1เพราะสามารถสร้างผู้ใช้ซ้ำได้ แต่นั่นก็ไม่คุ้มค่าที่จะก้าวไปก่อนGiven I am logged in as (.+)เสมอ มันเป็นโค้ดจำนวนมากที่ไม่ค่อยจะมีประโยชน์ ฉันเดาว่าไม่มีข้อผิดพลาดใหม่ ๆ ในส่วนที่ทดสอบทุกวัน ... แตงกวาคุ้มค่าจริง ๆ เมื่อเทียบกับ RSpec หรือไม่

3
ปัญหาใดที่มักเกิดขึ้นเมื่อทำงานกับข้อความ HL7
ฉันกำลังทดสอบผลิตภัณฑ์สำหรับธุรกิจด้านการดูแลสุขภาพและเรากำลังทำงานกับข้อความ HL7 ฉันเห็นผู้คนส่งเสียงพึมพัมคำถามอื่นเกี่ยวกับปัญหาของ HL7 แต่ไม่ได้กล่าวถึงเฉพาะ ใครสามารถให้แนวคิดบางอย่างเกี่ยวกับปัญหาหรือประเภทของปัญหาที่เราควรมองหาเป็นพิเศษ เรากำลังใช้ห้องสมุดที่ใช้งานได้ดีสำหรับการวิเคราะห์คำ หากข้อมูลเฉพาะเกี่ยวกับสิ่งเหล่านี้หรือสิ่งที่เรากำลังทำอยู่จะเป็นประโยชน์โปรดแจ้งให้เราทราบในความคิดเห็นและฉันจะเพิ่มคำถามหากฉันทำได้
12 testing  parsing  hl7 

2
การทดสอบ - ฐานข้อมูลในหน่วยความจำเทียบกับการเยาะเย้ย
เมื่อเขียนการทดสอบทำไมบางคนต้องการใช้ฐานข้อมูลในหน่วยความจำมากกว่าเพียงการล้อเลียนข้อมูล ฉันเห็นว่าฐานข้อมูลในหน่วยความจำอาจมีประโยชน์สำหรับการทดสอบคลังเก็บของ แต่ถ้าใช้เฟรมเวิร์ก (เช่น Spring Data) การทดสอบที่เก็บจะเป็นการทดสอบเฟรมเวิร์กไม่ใช่ตรรกะแอปพลิเคชัน อย่างไรก็ตามการเยาะเย้ยดูเหมือนจะเร็วและเป็นไปตามรูปแบบเดียวกันกับที่ใช้โดยทั่วไปเมื่อเขียนการทดสอบหน่วยและ TDD แล้วฉันจะพลาดอะไรไป? ฐานข้อมูลในหน่วยความจำจะมีประโยชน์เมื่อใด / ทำไม?

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

6
การต่อสู้และการพัฒนาที่มั่นคงสร้างความขัดแย้งหรือไม่?
ฉันเป็นส่วนหนึ่งของกลุ่มพัฒนา 5 ทีมรวมนักพัฒนาประมาณ 40 คน เรากำลังติดตามวิธีการแย่งชิงกันโดยใช้เวลา 3 สัปดาห์ เรามีการตั้งค่าการรวมระบบอย่างต่อเนื่อง (เจนกินส์) โดยมีขั้นตอนการสร้างใช้เวลาหลายชั่วโมง (เนื่องจากการทดสอบอัตโนมัติที่กว้างขวาง) โดยทั่วไปกระบวนการพัฒนาทำงานได้ดี อย่างไรก็ตามเราสังเกตว่าหลังจากสองสามวันไปสู่การวิ่งใหม่งานสร้างของเรามักจะไม่เสถียรและยังคงสั่นคลอนจนสิ้นสุดการวิ่ง "หยุดทำ" ผลข้างเคียงของสิ่งนี้คือการสร้างขั้นตอนไกลไปป์ไลน์โดยเฉพาะอย่างยิ่ง UI- / การทดสอบทางเว็บจะไม่ถูกดำเนินการเป็นเวลาหลายวัน ดังนั้นข้อผิดพลาดที่แนะนำใหม่มักตรวจพบได้ช้ามากในการวิ่ง การยืนยันแต่ละครั้งจะถูกตรวจสอบกับชุดการทดสอบพื้นฐาน เมื่อตรวจสอบแล้วการเปลี่ยนแปลงจะถูกส่งไปยังต้นแบบหลังจากตรวจสอบโค้ด (Gerrit) การทดสอบหน่วยพื้นฐานทำงานทุก 30 นาทีระยะเวลาน้อยกว่า 10 นาที การทดสอบการรวมจะทำงานทุก 2 ชั่วโมงและระยะเวลา 1 ชั่วโมง UI- / Webtests ทำงานบนการทดสอบการรวมที่ประสบความสำเร็จใช้เวลาหลายชั่วโมง ขึ้นอยู่กับว่าใครเป็นผู้รับผิดชอบในการสร้างความมั่นคงในระหว่างการวิ่ง (ความรับผิดชอบนั้นจะถูกส่งต่อการวิ่ง) อาจจะมีระดับกลางโฆษณาเฉพาะกิจ "คอมมิชชันหยุด" เพื่อให้ได้งานสร้างกลับมาที่มั่นคง ดังนั้นเราต้องการ: ทีมนักพัฒนาของเราในการพัฒนาและกระทำการเปลี่ยนแปลงในระหว่างการวิ่งไม่ จำกัด กระบวนการสร้างของเราที่จะละทิ้งหากขั้นตอนการสร้างล้มเหลวเนื่องจากผลการสร้างต่อมามีความหมายน้อย กระบวนการสร้างของเราเพื่อให้ข้อเสนอแนะในการพัฒนาคุณภาพแก่นักพัฒนาในเวลาที่เหมาะสม รับ (2) คะแนน …

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

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