docs(sdlc): content-sized columns in Word, trace record with test cases, PSRs presented at minuted meetings
This commit is contained in:
@@ -155,20 +155,21 @@ export function softwareDesign() {
|
||||
};
|
||||
}
|
||||
|
||||
/** 13. Traceability Record. */
|
||||
/** 13. Traceability Record — completed once the test cases exist, so it is issued with them. */
|
||||
export function traceabilityRecord() {
|
||||
const date = '2026-03-06';
|
||||
const date = '2026-07-31';
|
||||
const rows = [];
|
||||
let group = '';
|
||||
for (const [id, text] of CRS) {
|
||||
const g = id.slice(0, 4);
|
||||
if (g !== group) { group = g; const name = SCOPEGROUP(g); rows.push([`${g}: ${name}`, '', '', '', '', '', '']); }
|
||||
const t = traceOf(id);
|
||||
rows.push([id, text, t.sr.join(', '), t.sr.map(srTopic).join(' / '), t.un.join(', ') || '-', t.un.map(unitTopic).join(' / ') || '-', t.ev || '-']);
|
||||
rows.push([id, text, t.sr.join(', '), t.sr.map(srTopic).join(' / '), t.un.join(', ') || '-', t.un.map(unitTopic).join(' / ') || '-', t.tc]);
|
||||
}
|
||||
const traced = CRS.map(([id]) => traceOf(id));
|
||||
const withUnits = traced.filter((t) => t.un.length).length;
|
||||
const byDocument = traced.filter((t) => !t.un.length).length;
|
||||
const withTests = traced.filter((t) => t.tcs.length).length;
|
||||
return {
|
||||
dir: '2-SI Process (12 Work Product)/13.Traceability record',
|
||||
name: `${CODE} Traceability Record ${bud(date)} V1.0 NoC`,
|
||||
@@ -182,20 +183,21 @@ export function traceabilityRecord() {
|
||||
]),
|
||||
body: [
|
||||
'## วัตถุประสงค์ (Objective)',
|
||||
'เอกสารที่เชื่อมโยงความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ (Software Unit) ณ วันที่ออกแบบระบบ เพื่อยืนยันความครบถ้วนของ Customer Requirements ก่อนเริ่มพัฒนา และลดความเสี่ยงของความต้องการที่ตกหล่น การสอบกลับไปยัง Test Case และผลการทดสอบจะเพิ่มใน Traceability Record ฉบับส่งมอบ หลังจัดทำ Test Case and Test Procedures',
|
||||
'เอกสารที่เชื่อมโยงความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ (Software Unit) → Test Case จัดทำพร้อม Test Case and Test Procedures เพื่อยืนยันว่าความต้องการทุกรายการมีการออกแบบและการทดสอบรองรับก่อนเริ่มทดสอบระบบ ผลการทดสอบสรุปใน Traceability Record Table ฉบับส่งมอบ',
|
||||
'## Traceability Matrix',
|
||||
table(['CR ID', 'CR Topic', 'SRS ID', 'SRS Topic', 'Unit ID', 'Unit Topic', 'หลักฐานอื่น (Document)'], rows),
|
||||
'หมายเหตุ: ความต้องการที่เป็นเอกสาร การอบรม หรือหลักฐานด้านคุณภาพ สอบกลับไปยังเอกสารส่งมอบที่เป็นหลักฐานในคอลัมน์ "หลักฐานอื่น" แทน Software Unit',
|
||||
table(['CR ID', 'CR Topic', 'SRS ID', 'SRS Topic', 'Unit ID', 'Unit Topic', 'Test Case ID'], rows),
|
||||
'หมายเหตุ: ความต้องการที่เป็นเอกสาร การอบรม หรือหลักฐานด้านคุณภาพไม่มี Software Unit และ Test Case จึงยืนยันด้วยเอกสารส่งมอบตามแผน ซึ่งสรุปไว้ใน Traceability Record Table ฉบับส่งมอบ',
|
||||
'## สรุปความครอบคลุม',
|
||||
table(['รายการ', 'จำนวน'], [
|
||||
['ความต้องการของลูกค้าทั้งหมด (CR01–CR14)', CRS.length],
|
||||
['เชื่อมโยงกับความต้องการซอฟต์แวร์ (SRS)', CRS.length],
|
||||
['เชื่อมโยงกับ Software Unit', withUnits],
|
||||
['ยืนยันด้วยเอกสารส่งมอบ (ไม่มี Software Unit)', byDocument],
|
||||
['เชื่อมโยงกับ Test Case', withTests],
|
||||
['ยืนยันด้วยเอกสารส่งมอบตามแผน (ไม่มี Software Unit)', byDocument],
|
||||
['ความต้องการซอฟต์แวร์ทั้งหมด (SR01–SR09)', SRS.length],
|
||||
['Software Unit ทั้งหมด', UNITS.length],
|
||||
], ['', 'r']),
|
||||
'ความต้องการทุกรายการเชื่อมโยงกับความต้องการซอฟต์แวร์ และเชื่อมโยงกับ Software Unit หรือเอกสารส่งมอบที่เป็นหลักฐาน Test Case ของแต่ละ Software Unit จะกำหนดใน Test Case and Test Procedures (WP 6.0) ก่อนรอบทดสอบระบบ',
|
||||
'ความต้องการทุกรายการเชื่อมโยงกับความต้องการซอฟต์แวร์ ความต้องการที่มี Software Unit เชื่อมโยงกับ Test Case ใน Test Case and Test Procedures (WP 6.0) ครบทุกรายการ ส่วนที่เหลือยืนยันด้วยเอกสารส่งมอบตามแผน',
|
||||
].join('\n\n'),
|
||||
secretary: P.NoC, reviewer: P.YaB, approver: P.SeV,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user