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

BDD ย่อมาจาก "Behavior-Driven Development" รูปแบบการพัฒนาซอฟต์แวร์ที่ส่งเสริมความร่วมมือระหว่างนักพัฒนาและผู้มีส่วนได้ส่วนเสียผ่านการระบุและสำรวจตัวอย่างต่างๆว่าระบบหรือองค์ประกอบเล็ก ๆ ของโค้ดทำงานอย่างไรจากมุมมองของผู้ใช้

3
การพัฒนาพฤติกรรมขับเคลื่อนขับเคลื่อนช่วยเพิ่มความชัดเจนเมื่อภาษาธรรมชาติคลุมเครือ?
ฉันกำลังสำรวจกรอบการทดสอบของBDDเช่นแตงกวาและฉันพบว่าอยากรู้อยากเห็นเมื่อมีคนพูด เนื่องจากไฟล์คุณสมบัติเป็นภาษาธรรมชาติอย่างง่ายจะช่วยปรับปรุงความคมชัดและให้วิสัยทัศน์ที่ชัดเจน แต่ภาษาธรรมชาติไม่ใช่สาเหตุของปัญหาส่วนใหญ่ที่เรามีในวิศวกรรมซอฟต์แวร์ใช่หรือไม่ ภาษาธรรมชาตินั้นคลุมเครือและนั่นเป็นสาเหตุที่หลายโครงการซอฟต์แวร์ล้มเหลวเนื่องจากการตีความความต้องการของลูกค้าผิดและความเข้าใจของผู้พัฒนา ฉันไม่ได้ช่องที่นี่ ใช่การแบ่งการทดสอบออกเป็นการกระทำเล็ก ๆ น้อย ๆ ที่ทำได้ง่ายมีเหตุผลและให้ความชัดเจนในระดับหนึ่ง PS: ฉันไม่ใช่ผู้เชี่ยวชาญและฉันไม่ได้แสดงความคิดเห็นที่นี่ ฉันแค่อยากรู้อยากเห็นที่จะเข้าใจแนวคิด
9 bdd  cucumber 

1
การทดสอบช่องว่างระหว่างหน่วยและการรวม: การรวมในการทดสอบส่วนประกอบขนาดเล็กการรวมหน่วย
ในช่วงสองสามสัปดาห์ที่ผ่านมาฉันได้ครุ่นคิดและค้นคว้าวิธีเติมช่องว่างในวิธีการทดสอบของเรา ในการทดสอบหน่วยคำศัพท์ที่ง่ายมีขนาดเล็กเกินไปและการทดสอบการรวมแบบดั้งเดิมนั้นใหญ่เกินไป สถานการณ์ที่เกิดขึ้นบ่อยครั้งที่Aและองค์ประกอบการใช้งานทั้งB Cอย่างไรก็ตามAและมีความต้องการที่แตกต่างกันเล็กน้อยและทำให้สมมติฐานแตกต่างกันเล็กน้อยเกี่ยวกับB Cหากฉันเป็นผู้พัฒนาAฉันจะทดสอบสมมติฐานของฉันได้Cอย่างไรและที่ไหน? เห็นได้ชัดว่าการทดสอบหน่วยที่Aมีข้อสมมติฐานล้อเลียนเกี่ยวกับCการทดสอบAแยกได้ แต่ก็ไม่ได้ทดสอบสมมติฐานเอง Cเป็นไปได้ก็คือการเพิ่มการทดสอบหน่วยสำหรับ อย่างไรก็ตามสิ่งนี้ไม่เหมาะเพราะในขณะที่Aอยู่ระหว่างการพัฒนาการเปลี่ยนแปลงการทดสอบCด้วยข้อสมมติฐานที่พัฒนาขึ้นจากAนั้นจะมีความเงอะงะมากเกินไป อันที่จริงAs นักพัฒนาอาจไม่ได้มีการเข้าถึงเพียงพอที่จะทดสอบหน่วยของC(เช่นห้องสมุดภายนอก) ในการจัดวางสิ่งนี้ด้วยตัวอย่างที่ชัดเจนยิ่งขึ้น: สมมติว่านี่เป็นแอปพลิเคชั่นของโหนด AและBขึ้นอยู่กับCการอ่านไฟล์ (ในหมู่สิ่งอื่น ๆ ) Cและการจัดเก็บเนื้อหาของแฟ้มในวัตถุส่งผ่านไปยัง ในตอนแรกไฟล์ทั้งหมดที่Cจัดการมีขนาดเล็กและสามารถอ่านแบบซิงโครนัสโดยไม่มีการบล็อกที่สำคัญ อย่างไรก็ตามผู้พัฒนาBตระหนักว่าไฟล์ของเขามีขนาดใหญ่ขึ้นและจำเป็นต้องเปลี่ยนCมาอ่านแบบ async ซึ่งส่งผลให้เกิดข้อผิดพลาดในการซิงโครไนซ์เป็นระยะAซึ่งยังคงCมีการอ่านไฟล์ นี่เป็นประเภทของบั๊กที่ยากต่อการติดตามจากการทดสอบการรวมระบบแบบสมบูรณ์และอาจไม่สามารถทำการทดสอบการรวมระบบได้เลย มันไม่ได้ถูกจับโดยAการทดสอบหน่วย s เพราะAข้อสันนิษฐานนั้นถูกเยาะเย้ย แต่มันได้อย่างง่ายดายจับโดย "มินิ" บูรณาการทดสอบว่าการออกกำลังกายเพียงและAC ฉันพบการอ้างอิงประเภทนี้ของการทดสอบเพียงเล็กน้อยเท่านั้น บูรณาการในขนาดเล็ก , การทดสอบส่วนประกอบของการรวม , หน่วยบูรณาการการทดสอบ นอกจากนี้ยังเกี่ยวข้องกับทิศทางการทดสอบ BDDค่อนข้างมากกว่าการทดสอบ TDD อย่างเป็นทางการ ฉันจะเติมช่องว่างการทดสอบนี้ได้อย่างไร โดยเฉพาะ - ฉันจะทำการทดสอบแบบไหน? ฉันจะจำลองอินพุตAและCสำหรับการทดสอบการรวม "มินิ" ได้อย่างไร และควรแยกความกังวลเรื่องการทดสอบระหว่างการทดสอบและการทดสอบหน่วยเท่าไหร่ หรือมีวิธีที่ดีกว่าในการเติมเต็มช่องว่างในการทดสอบ?

5
ทำอย่างไรจึงจะประสบความสำเร็จในการประชุมเชิงปฏิบัติการ BDD
วันนี้เราพยายามแนะนำ BDD ในกระบวนการพัฒนาซอฟต์แวร์ของเราโดยมีเวิร์กช็อปสเปค สำหรับเวิร์คช็อปนี้เรามีนักพัฒนา 2 คนผู้ทดสอบ 1 คนและนักวิเคราะห์ธุรกิจ 1 คน การประชุมเชิงปฏิบัติการใช้เวลา 1h30 และในตอนท้ายเราได้จัดการกับสถานการณ์ BDD บางอย่างสำหรับคุณสมบัติใหม่ของเรา เราพยายามที่จะมุ่งเน้นไปที่การค้นหาสถานการณ์ที่เราอาจพลาดและสิ่งที่ยากลำบาก ในตอนท้ายของการประชุมเชิงปฏิบัติการบางคนไม่พอใจกับการประชุมเชิงปฏิบัติการ นักพัฒนาคนหนึ่งรู้สึกว่าเขาเสียเวลาขณะที่เขาคุ้นเคยกับการอธิบายสถานการณ์โดยตรงจากนักวิเคราะห์ธุรกิจและตรวจสอบกับเธอ นักวิเคราะห์ธุรกิจไม่รู้สึกมั่นใจกับการครอบคลุมสถานการณ์ของเรา (มีความรู้สึกว่าเราสามารถพลาดสิ่งสำคัญอื่น ๆ ได้) แต่ที่สำคัญกว่านั้นรู้สึกว่าการประชุมเชิงปฏิบัติการนี้เป็นการเสียเวลาเพราะเธอสามารถเข้าใจสถานการณ์เหล่านี้ทั้งหมดด้วยตัวเอง และในช่วงเวลาอันสั้น การประชุมเชิงปฏิบัติการทดลองนี้ใช้เวลา 1h30 และในตอนท้ายเราไม่รู้สึกมั่นใจเพียงพอเกี่ยวกับสิ่งที่เราทำ ... แน่ใจว่าเราสามารถใช้เวลากับมันได้ แต่คนส่วนใหญ่หมดแรงหลังจากการระดมสมองใน 1h30 เพื่อดึงธุรกิจออกมา กฎจากสมองของ BA ดังนั้นคำถามของฉันคือวิธีการประชุมเชิงปฏิบัติการประเภทนั้นสามารถทำงานได้จริง ในทางทฤษฎีเมื่อคุณมีคุณสมบัติใหม่ในการพัฒนาคุณวางต้นไม้ 'amigos' (dev / tester / ba) ในห้องเดียวกันเพื่อให้พวกเขาสามารถทำงานร่วมกันในการเขียนข้อกำหนด differents สำหรับคุณลักษณะใหม่โดยใช้ตัวอย่าง ฉันเห็นประโยชน์ทั้งหมดจากสิ่งนั้น พิเศษในแง่ของการแบ่งปันความรู้และผลิตภัณฑ์ทั่วไป / เป้าหมายสุดท้าย / …
9 bdd 

3
BDD: เริ่มต้น
ฉันเริ่มต้นด้วย BDD และนี่คือเรื่องราวของฉัน: Feature: Months and days to days In order to see months and days as days As a date conversion fan I need a webpage where users can enter days and months and convert them to days. ฉันมีข้อสงสัยบางอย่าง ... ฉันควรเขียนสถานการณ์ของฉันก่อนที่จะเขียนโค้ดอะไรหรือฉันควรเขียนสถานการณ์ก่อนแล้วจึงเขียนรหัสเขียนสถานการณ์อีกครั้งแล้วเขียนรหัสและอื่น ๆ ... ? ถ้าฉันควรเขียนสถานการณ์ของฉันก่อนหน้านี้ขั้นตอนของฉันจะได้รับการอนุมัติและรหัสการผลิตยังไม่เสร็จ เมื่อใดที่ฉันควรทำการปรับเปลี่ยนรหัสของฉัน หลังจากเสร็จสิ้นคุณสมบัติหรือหลังจากการนำแต่ละสถานการณ์ไปใช้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.