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

3
มีการประยุกต์ใช้มาตรการความซับซ้อนของ Halstead ในการพิจารณาคุณภาพซอฟต์แวร์หรือไม่
ในปี 1977 Maurice Howard Halstead ได้แนะนำมาตรการความซับซ้อนของระบบซอฟต์แวร์ซึ่งรวมถึงการวัดคำศัพท์ของโปรแกรมความยาวของโปรแกรมปริมาตรความยากความพยายามและจำนวนข้อผิดพลาดโดยประมาณในโมดูล ตามวิกิพีเดียความยากลำบากเกี่ยวข้องกับความยากลำบากในการทำความเข้าใจโปรแกรมเมื่ออ่านหรือเขียนและความพยายามสามารถแปลเป็นเวลาที่ใช้ในการเขียนโปรแกรมประยุกต์ที่เวลา = (ความพยายาม / 18) วินาที การวัดไม่มีประโยชน์เว้นแต่ว่าข้อมูลและการคำนวณจะเกี่ยวข้องกับการพัฒนาซอฟต์แวร์ อย่างไรก็ตามฉันไม่พบงานใด ๆ ที่ระบุว่าความยากลำบากของค่าบางค่าหรือสูงกว่ามีแนวโน้มเพิ่มขึ้นอย่างมีนัยสำคัญทางสถิติในข้อบกพร่องหรือความสัมพันธ์ระหว่างความยากลำบากและเวลาในการอ่านรหัส (ความยากลำบากของ N การทำความเข้าใจฐานรหัส) หรือการวิเคราะห์ใด ๆ ที่สามารถคำนวณเวลาหลังจากข้อเท็จจริงที่เป็นประโยชน์ในการกำหนดคุณภาพ (โดยเฉพาะตั้งแต่เวลาที่จะเขียนควรได้รับการบันทึกเป็นการวัดแล้ว) ฉันสนใจโดยเฉพาะอย่างยิ่งในการประเมินข้อผิดพลาดของ Halstead (ซึ่งไม่ได้กล่าวถึงใน Wikipedia) - จำนวนข้อบกพร่องในแอปพลิเคชันสามารถประมาณได้โดย Volume / 3000 หรือ Effort ^ (2/3) / 3000 ฉันกำลังมองหาสองสิ่ง: มีใครบ้างที่ใช้มาตรการความซับซ้อนของซอฟต์แวร์ของ Halstead ในแอปพลิเคชันที่ใช้งานจริงเพื่อประเมินคุณภาพซอฟต์แวร์ ถ้าเป็นเช่นนั้นคุณใช้พวกเขาอย่างไรและพวกเขากลายเป็นการวัดที่มีประโยชน์ถูกต้องและ / หรือเชื่อถือได้หรือไม่ มีงานวิจัยเชิงวิชาการในรูปแบบของการสำรวจวิเคราะห์หรือกรณีศึกษาที่กล่าวถึงความถูกต้อง (หรือความไม่ถูกต้อง) ของมาตรการความซับซ้อนของ Halstead เมื่อนำไปใช้กับคุณภาพของซอฟต์แวร์หรือไม่ …

6
การตรวจสอบแบบเพียร์สำหรับการทดสอบเช่นเดียวกับการรีวิวโค้ด
ไม่มีใครฝึกกระบวนการ "ทบทวนรหัส" สำหรับการทดสอบการทำงานหรือไม่ คุณเห็นว่ามีประโยชน์หรือไม่ วิธีที่นายจ้างปัจจุบันของฉันปฏิบัติกับ SCRUM เรารวมการทดสอบการทำงานเป็นส่วนหนึ่งของสิ่งที่ "ต้องทำ" ในการวิ่งที่กำหนด

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

8
วิธีจัดการกับความคิด“ ระบบอัตโนมัติเป็นเรื่องง่าย”?
ชื่อกล่าวมันทั้งหมด พนักงานบางคนใน บริษัท ของเราเชื่อว่าการทดสอบอัตโนมัตินั้น "ง่าย" และ "ต้องใช้เวลาหนึ่งวัน" ในการเขียนชุดการทดสอบ COM และ UI สิ่งที่สามารถทำได้เพื่อตอบโต้เรื่องนี้? หมายเหตุ: ฉันไม่ได้ถามเกี่ยวกับวิธีการโปรโมตระบบอัตโนมัติ นั่นไม่ใช่ปัญหา มีการส่งเสริมการทดสอบและกระบวนการอัตโนมัติโดยอัตโนมัติตลอดเวลาที่นี่ ปัญหาคือบุคคลบางคนไม่เข้าใจว่าระบบอัตโนมัตินั้นไม่ใช่ "ง่าย" หรือ "รวดเร็ว"

7
มีความสัมพันธ์จริง ๆ ระหว่างจำนวนคนที่มอบหมายให้โครงการและจำนวนข้อบกพร่องหรือไม่?
นี่คือใบเสนอราคาจากคู่มือการฝึกอบรมที่ทำงานเกี่ยวกับ SLIM และการประเมินซอฟต์แวร์: โปรดสังเกตว่ามีความสัมพันธ์ระหว่างความพยายามกับข้อบกพร่อง ซึ่งหมายความว่ายิ่งมีคนได้รับมอบหมายให้โครงการขนาดที่กำหนดมากเท่าไหร่ก็จะยิ่งมีข้อบกพร่องมากขึ้นเท่านั้น ความพยายามคือบุคคลเวลา (คนปีบุคคลเดือน) สำหรับโครงการ ข้อบกพร่องคือจำนวนของข้อบกพร่องที่ตรวจพบ ณ จุดใด ๆ ในวงจรชีวิต ขนาดถูกกำหนดให้เป็นกรณีการใช้งานจุดทำงานหรือ SLOC ที่ประกอบโครงการ ดูเหมือนว่าจะเป็นเรื่องที่เข้าใจง่ายโดยถือว่าเป็นกระบวนการที่ดีและวิศวกรที่มีความสามารถ ตัวอย่างเช่นการมีคนมากขึ้นหมายถึงการมองสิ่งประดิษฐ์ทั้งหมด (ข้อกำหนดรายละเอียดการออกแบบรหัสการทดสอบ) นอกเหนือจากการมีดวงตามากขึ้นสัญชาตญาณของฉันแสดงให้เห็นว่ามีความสัมพันธ์ระหว่างความพยายามและข้อบกพร่องเล็กน้อยในโครงการที่ใช้เทคนิคคุณภาพที่เหมาะสม ฉันไม่สามารถค้นหาเอกสารใด ๆ นอกเหนือจากเอกสารเกี่ยวกับแบบจำลองพัทนัม (ซึ่งใช้โดย SLIM) ที่แนะนำความสัมพันธ์แบบใดก็ได้ที่รู้จักระหว่างข้อบกพร่องกับความพยายามหรือข้อบกพร่องและจำนวนคนในโครงการ นี่เป็นความสัมพันธ์ที่รู้จักกันดีและเป็นการยืนยันว่า "มีคนมากกว่า = ข้อบกพร่องมากขึ้น" ถูกต้องหรือไม่?

7
ตัวชี้วัดเชิงวัตถุประสงค์สำหรับคุณภาพซอฟต์แวร์ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มีคุณภาพหลายประเภทที่สามารถวัดได้ในผลิตภัณฑ์ซอฟต์แวร์เช่นความเหมาะสมสำหรับวัตถุประสงค์ (เช่นการใช้งานปลายทาง) การบำรุงรักษาประสิทธิภาพ บางส่วนเป็นแบบอัตนัยหรือเฉพาะโดเมน (เช่นหลักการออกแบบ GUI ที่ดีอาจแตกต่างกันในแต่ละวัฒนธรรมหรือขึ้นอยู่กับบริบทการใช้งานคิดว่าการทหารกับการใช้งานของผู้บริโภค) สิ่งที่ฉันสนใจคือรูปแบบที่ลึกกว่าของคุณภาพที่เกี่ยวข้องกับเครือข่าย (หรือกราฟ) ของประเภทและความสัมพันธ์ระหว่างกันของพวกเขานั่นคือประเภทใดที่อ้างถึงแต่ละประเภทจะมีกลุ่มของการเชื่อมต่อระหว่างกันอย่างชัดเจน สถาปัตยกรรมแบบฉัตรหรือตรงกันข้ามมี 'ball' ขนาดใหญ่ของการอ้างอิงประเภท (รหัส 'เสาหิน') นอกจากนี้ขนาดของแต่ละประเภทและ / หรือวิธีการ (เช่นวัดในปริมาณของรหัสไบต์ Java หรือ. Net IL) ควรให้ข้อบ่งชี้ว่ามีการใช้อัลกอริธึมที่ซับซ้อนขนาดใหญ่เป็นบล็อกก้อนใหญ่ของรหัสแทนที่จะถูกย่อยสลายได้ง่าย ชิ้น การวิเคราะห์ตามแนวคิดดังกล่าวอาจสามารถคำนวณตัวชี้วัดที่มีพร็อกซีเพื่อคุณภาพอย่างน้อย เกณฑ์ที่แน่นอน / คะแนนการตัดสินใจระหว่างคุณภาพสูงและต่ำฉันจะสงสัยว่าเป็นอัตนัยเช่นเนื่องจากการบำรุงรักษาเราหมายถึงการบำรุงรักษาโดยโปรแกรมเมอร์ของมนุษย์และดังนั้นการสลายตัวของการทำงานจะต้องสอดคล้องกับวิธีการทำงานของจิตใจมนุษย์ ด้วยเหตุนี้ฉันจึงสงสัยว่าจะมีคำจำกัดความที่บริสุทธิ์ทางคณิตศาสตร์ของคุณภาพของซอฟต์แวร์ที่เหนือกว่าซอฟต์แวร์ที่เป็นไปได้ทั้งหมดในทุกสถานการณ์ที่เป็นไปได้หรือไม่ ฉันยังสงสัยว่านี่เป็นความคิดที่อันตรายหรือไม่ถ้าหากผู้รับมอบฉันทะที่มีคุณภาพเป็นที่นิยมนั้นความกดดันทางธุรกิจจะทำให้นักพัฒนาต้องติดตามตัวชี้วัดเหล่านี้ด้วยค่าใช้จ่ายของคุณภาพโดยรวม (ด้านคุณภาพของพวกเขา วิธีคิดอีกอย่างคือคุณภาพจากมุมมองของเอนโทรปี เอนโทรปีคือแนวโน้มของระบบที่จะเปลี่ยนจากการสั่งซื้อเป็นรัฐที่ไม่เป็นระเบียบ ทุกคนที่เคยทำงานในโลกแห่งความเป็นจริงโครงการซอฟต์แวร์ขนาดกลางถึงขนาดใหญ่จะขอบคุณในระดับที่คุณภาพของรหัสฐานมีแนวโน้มที่จะลดลงเมื่อเวลาผ่านไป โดยทั่วไปความกดดันทางธุรกิจส่งผลให้เกิดการเปลี่ยนแปลงที่มุ่งเน้นไปที่ฟังก์ชั่นใหม่ (ยกเว้นในกรณีที่คุณภาพเป็นจุดขายหลักเช่นในซอฟต์แวร์ avionics) และการกัดเซาะของคุณภาพผ่านปัญหาการถดถอยและฟังก์ชั่น 'รองเท้า horning' มุมมองด้านคุณภาพและการบำรุงรักษา ดังนั้นเราสามารถวัดเอนโทรปีของซอฟต์แวร์ได้หรือไม่? …

11
การสร้างรหัสเพิ่มคุณภาพของรหัสหรือไม่
การโต้เถียงสำหรับการสร้างรหัสฉันกำลังมองหาตัวอย่างของวิธีการที่จะเพิ่มคุณภาพของรหัส เพื่อชี้แจงสิ่งที่ฉันหมายถึงโดยการสร้างรหัสฉันสามารถพูดคุยเกี่ยวกับโครงการของฉันเท่านั้น: เราใช้ไฟล์ XML เพื่ออธิบายความสัมพันธ์เอนทิตีในสคีมาฐานข้อมูลของเราดังนั้นพวกเขาจึงช่วยให้เราสร้างกรอบ ORM และรูปแบบ HTML ซึ่งสามารถใช้ในการเพิ่มลบและแก้ไขเอนทิตี ในใจของฉันมันเพิ่มคุณภาพรหัสเพราะความผิดพลาดของมนุษย์ลดลง หากมีการใช้งานสิ่งใดอย่างไม่ถูกต้องจะเกิดความผิดพลาดในแบบจำลองซึ่งเป็นสิ่งที่ดีเพราะข้อผิดพลาดอาจปรากฏขึ้นเร็วกว่าเนื่องจากรหัสที่สร้างขึ้นนั้นใช้งานไม่ได้เช่นกัน ตั้งแต่ผมก็ถามว่าสำหรับความหมายของคุณภาพรหัสให้ฉันชี้แจงนี้สิ่งที่ฉันหมายถึงเป็นซอฟต์แวร์ที่มีคุณภาพ คุณภาพซอฟต์แวร์ : ไม่ใช่คุณลักษณะเดียว แต่มีหลายอย่างเช่นประสิทธิภาพความสามารถในการปรับเปลี่ยนความสามารถในการอ่านความถูกต้องความทนทานความเข้าใจในการใช้งานความสะดวกในการพกพาเป็นต้นซึ่งส่งผลกระทบต่อกัน

4
รอบการเปิดตัวหนึ่งสัปดาห์: ฉันจะทำให้สิ่งนี้เป็นไปได้อย่างไร
ที่ บริษัท ของฉัน (การเริ่มต้นอุตสาหกรรมเว็บอายุ 3 ปี) เรามีปัญหาบ่อยครั้งกับทีมผลิตภัณฑ์ที่พูดว่า "aaaah นี่คือการแก้ไขวิกฤติตอนนี้!" (ไม่ใช่ทุกคนเหรอ?) สิ่งนี้มีผลกระทบต่อความสามารถในการผลิต (และขวัญกำลังใจ) ของเจ้าหน้าที่วิศวกรรมรวมอยู่ด้วยตนเอง ฝ่ายบริหารใช้เวลาคิดเกี่ยวกับวิธีลดความถี่ของการร้องขอในวันเดียวกันและเกิดขึ้นกับวิธีแก้ปัญหาที่เรากำลังจะออกวางจำหน่ายทุกสัปดาห์ (ก่อนหน้านี้เราได้ทำทุกสองสัปดาห์ซึ่งโดยปกติจะลดลงภายในสองสามวันหรือมากกว่านั้น) มีผู้พัฒนา 13 คนและผู้ทดสอบนอกชายฝั่ง 6 คน / 9 คน ทฤษฎีคือนักพัฒนาเพียง 4 คน (และผู้ทดสอบทั้งหมด) จะทำงานในรุ่นที่มีเลขคู่เว้นเสียแต่ว่าจะมีชิ้นงานที่ต้องใช้ความเชี่ยวชาญเฉพาะจากนักพัฒนาอื่น ๆ แต่ละรอบจะมีงาน dev สองวันและงาน QA สองวัน (บวก 1 วันของการกำหนดขอบเขต / triage / ... ) คำถามของฉันคือ: (a) มีใครบ้างที่เคยมีประสบการณ์กับวงจรการเปิดตัวนี้หรือไม่? (b) มีใครเคยได้ยินเรื่องความยาวของรอบการเปิดตัวนี้ถึงแม้จะพยายามบ้างไหม? (c) ถ้า (a) …

4
ฉันจะอัปเดต codebase ขนาดใหญ่เพื่อให้ได้ตามมาตรฐานคุณภาพที่เฉพาะเจาะจงได้อย่างไร
มีข้อมูลจำนวนมากเกี่ยวกับเครื่องมือและเทคนิคในการปรับปรุงฐานรหัสดั้งเดิม แต่ฉันไม่ได้เจอกรณีศึกษาจริงที่ประสบความสำเร็จ คำแนะนำส่วนใหญ่อยู่ในระดับจุลภาคและในขณะที่มีประโยชน์ก็ไม่ได้ชักจูงคนจำนวนมากเพราะขาดหลักฐานที่สามารถช่วยในระดับมหภาค ฉันกำลังมองหาการปรับปรุงเพิ่มเติมโดยเฉพาะซึ่งได้รับการพิสูจน์แล้วว่าประสบความสำเร็จในโลกแห่งความจริงเมื่อทำการอัปเดตโค้ดเบสขนาดใหญ่เพื่อให้เป็นไปตามมาตรฐานคุณภาพในปัจจุบันไม่ใช่การเขียนซ้ำทั้งหมด ก่อน: ใหญ่: มากกว่า 1MLOC มรดก: ไม่มีการทดสอบอัตโนมัติ คุณภาพไม่ดี: ความซับซ้อนสูงข้อต่อสูงข้อบกพร่องที่หลบหนีได้สูง หลังจาก การทดสอบอัตโนมัติ ปรับปรุง / บำรุงรักษาง่ายขึ้น คุณภาพสูง: ความซับซ้อนที่ลดลง, โค้ดแยกส่วน, ข้อบกพร่องเล็ก ๆ น้อย ๆ ที่หลบหนี ขั้นตอนที่เพิ่มขึ้นประเภทใดที่ได้รับการพิสูจน์แล้วในโลกแห่งความจริงเพื่ออัปเดตรหัสฐานข้อมูลขนาดใหญ่แบบดั้งเดิมให้ประสบความสำเร็จเพื่อให้ได้ตามมาตรฐานคุณภาพที่สูงกว่าโดยไม่ต้องเขียนซ้ำทั้งหมด ถ้าเป็นไปได้ให้ใส่ตัวอย่าง บริษัท หรือกรณีศึกษาของโครงการมรดกขนาดใหญ่ที่ผ่านกระบวนการปรับปรุงคุณภาพ "ประสบความสำเร็จ" ในคำตอบของคุณเพื่อสำรองข้อมูล

3
เราต้องการข้อมูลการทดสอบหรือเราสามารถพึ่งพาการทดสอบหน่วยและการทดสอบด้วยตนเองได้หรือไม่?
ขณะนี้เรากำลังทำงานในโครงการ PHP / MySQL ขนาดกลาง / ใหญ่ เราทำการทดสอบหน่วยด้วย PHPUnit & QUnit และเรามีผู้ทดสอบเต็มเวลาสองคนที่ทำการทดสอบแอปพลิเคชันด้วยตนเอง ขณะนี้ข้อมูลการทดสอบ (จำลอง) ของเราสร้างขึ้นด้วยสคริปต์ SQL เรามีปัญหากับการบำรุงรักษาสคริปต์สำหรับข้อมูลการทดสอบ ตรรกะทางธุรกิจค่อนข้างซับซ้อนและการเปลี่ยนแปลง "ง่าย" หนึ่งครั้งในข้อมูลการทดสอบมักจะสร้างข้อบกพร่องหลายอย่างในแอปพลิเคชัน (ซึ่งไม่ใช่ข้อผิดพลาดจริง นี่เป็นภาระใหญ่สำหรับทั้งทีมเพราะเราสร้างและเปลี่ยนแปลงตารางอย่างต่อเนื่อง ฉันไม่เห็นจุดของการบำรุงรักษาข้อมูลการทดสอบในสคริปต์เพราะทุกอย่างสามารถเพิ่มได้ด้วยตนเองในแอปพลิเคชันในเวลาประมาณ 5 นาทีด้วย UI PM ของเราไม่เห็นด้วยและกล่าวว่าการมีโครงการที่เราไม่สามารถนำไปใช้กับข้อมูลทดสอบได้นั้นถือเป็นการปฏิบัติที่ไม่ดี เราควรละทิ้งการบำรุงรักษาสคริปต์ด้วยข้อมูลทดสอบและให้ผู้ทดสอบทดสอบแอปพลิเคชันโดยไม่มีข้อมูลหรือไม่ วิธีปฏิบัติที่ดีที่สุดคืออะไร

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