docs(sdlc): record real test results, open defects ISS-029–032, conditional acceptance

This commit is contained in:
Thanakorn
2026-10-02 17:12:47 +07:00
parent 5d3a7a655b
commit 1a065013b0
138 changed files with 406 additions and 326 deletions
@@ -209,7 +209,7 @@
| 1 | 17 มีนาคม 2569 | 09:00 – 12:00 น. | 3 | ตรวจสอบเอกสารวางแผนโครงการและความต้องการ | WP 1.0, WP 2.0 |
| 2 | 29 พฤษภาคม 2569 | 09:00 – 12:00 น. | 3 | ตรวจสอบเอกสารความต้องการซอฟต์แวร์และการออกแบบ | WP 3.0, WP 4.0, WP 5.0 |
| 3 | 31 กรกฎาคม 2569 | 09:00 – 12:00 น. | 3 | ตรวจสอบชุดทดสอบและการสอบกลับ | WP 6.0 |
| 4 | 17 สิงหาคม 2569 | 09:00 – 16:00 น. | 6 | User Acceptance Test (UAT) และตรวจสอบเอกสารส่งมอบทั้งหมด | WP 1.0, WP 2.0, WP 3.0, WP 4.0, WP 5.0, WP 6.0, WP 7.0, WP 8.0, WP 9.0, WP 10.0, WP 11.0 |
| 4 | 17 สิงหาคม 2569 | 09:00 – 16:00 น. | 6 | ทบทวนผลการทดสอบระบบและ UAT และตรวจสอบเอกสารส่งมอบทั้งหมด | WP 1.0, WP 2.0, WP 3.0, WP 4.0, WP 5.0, WP 6.0, WP 7.0, WP 8.0, WP 9.0, WP 10.0, WP 11.0 |
| หัวข้อ | รายละเอียด |
| --- | --- |
@@ -14,7 +14,7 @@
| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks |
| :---: | --- | :---: | :---: | :---: | ---: | --- |
| 4.4 | System Test & UAT | 10–14 ส.ค. 69 | PaNg, SeV | Completed | 100 | ทดสอบระบบ 45 Test Case และ UAT ครบ 14 หมวดความต้องการ (80 รายการ) ผ่านทั้งหมดระหว่าง 10–14 ส.ค. 69 |
| 4.4 | System Test & UAT | 10–14 ส.ค. 69 | PaNg, SeV | Completed | 100 | ทดสอบระบบ 45 Test Case ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 และ UAT ครบ 14 หมวดความต้องการ (80 รายการ) ระหว่าง 10–14 ส.ค. 69 บันทึกข้อบกพร่องคงค้าง ISS-029–ISS-032 |
| 4.7 | Demonstration Data & Delivery Package | 14–17 ส.ค. 69 | ThS | In Progress | 60 | จัดทำข้อมูลสาธิตเสร็จ อยู่ระหว่างปรับแบรนด์และชุดติดตั้ง Docker Compose |
| 5.1 | Final Work-product Review | 10–17 ส.ค. 69 | ApS, YaB | In Progress | 70 | ตรวจสอบความครบถ้วนของ Work Products |
@@ -22,7 +22,10 @@
| ลำดับ | ประเด็น / ความเสี่ยง | รายละเอียด | ผู้รับผิดชอบ | สถานะ |
| :---: | --- | --- | :---: | :---: |
| - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - |
| 1 | ISS-029 : ไฟล์แนบเปิดได้จาก URL โดยตรงโดยไม่ตรวจ Session และบริษัท | ไฟล์แนบเก็บใต้โฟลเดอร์ที่เว็บเปิดให้เรียกได้ แนวทางแก้ไข: ย้ายไฟล์แนบออกนอก Web Root และให้ดาวน์โหลดผ่านสคริปต์ที่ตรวจ Session และบริษัท | ThS | คงค้าง |
| 2 | ISS-030 : เอกสารที่บันทึกแล้วไม่ถูก Rollback เมื่อการผ่าน GL ล้มเหลว | การผ่าน GL ทำใน Transaction แยกหลังบันทึกเอกสาร แนวทางแก้ไข: รวมการบันทึกเอกสาร สต๊อก และ GL ไว้ใน Transaction เดียวตาม CR13:001 | ThS | คงค้าง |
| 3 | ISS-031 : Socket.IO รับรหัสบริษัท ผู้ใช้ และบทบาทจาก Browser ทำให้รับแจ้งเตือนของบริษัทอื่นได้ | การเชื่อมต่อ Socket.IO ไม่ตรวจกับ Session ของผู้ใช้ แนวทางแก้ไข: ตรวจ Session ฝั่งเซิร์ฟเวอร์ก่อนเข้าห้องแจ้งเตือน และไม่รับค่าบริษัท/บทบาทจาก Browser | ThS | คงค้าง |
| 4 | ISS-032 : แม่แบบค่าตั้งค่ากำหนดกุญแจเข้ารหัสและ IV คงที่ และเชื่อมต่อฐานข้อมูลด้วยผู้ใช้ root | ค่าความลับบางส่วนยังไม่ได้แยกออกจาก Source Code แนวทางแก้ไข: ย้ายกุญแจและ IV ไปเป็นความลับต่อการติดตั้ง ใช้ผู้ใช้ฐานข้อมูลสิทธิ์จำกัด และตั้งค่า HTTPS/TLS | ThS | คงค้าง |
## สรุป CR/Change (ถ้ามี)
@@ -14,7 +14,7 @@
| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks |
| :---: | --- | :---: | :---: | :---: | ---: | --- |
| 4.3 | Verify Work Products | 30 พ.ค.–17 ส.ค. 69 | PaNg, NoC | Completed | 100 | ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ผลผ่านทั้งหมด |
| 4.3 | Verify Work Products | 30 พ.ค.–17 ส.ค. 69 | PaNg, NoC | Completed | 100 | ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ไม่ผ่าน 2 รายการ คือผลการทดสอบที่มีข้อบกพร่องคงค้าง และชุดติดตั้ง Docker ที่ยังไม่ได้ทดสอบ |
| 4.5 | Operational Documentation | 1 มิ.ย.–17 ส.ค. 69 | ThS, YaB | Completed | 100 | คู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษาเสร็จสมบูรณ์ |
| 4.7 | Demonstration Data & Delivery Package | 14–17 ส.ค. 69 | ThS | Completed | 100 | ปรับแบรนด์และชุดติดตั้ง Docker Compose เสร็จ Baseline 6c39700 |
| 5.1 | Final Work-product Review | 10–17 ส.ค. 69 | ApS, YaB | Completed | 100 | จัดทำ List of Evidence ครบทุก Work Product |
@@ -42,19 +42,23 @@
| 26 | ISS-026 | 22 พ.ค. 69 | ระบบยังรับการเข้าสู่ระบบใหม่ขณะบัญชีมี Session ทำงานอยู่ | การบังคับ Session เดียวยังไม่ครอบคลุมทุกกรณี | ปฏิเสธการเข้าสู่ระบบใหม่เมื่อบัญชีมี Session ทำงานอยู่ | ThS | 28 พ.ค. 69 | เสร็จสิ้น |
| 27 | ISS-027 | 23 พ.ค. 69 | เมธอดของคลาสมีการทำงานซ้ำซ้อน | พัฒนาเพิ่มทีละส่วนทำให้เกิดความซ้ำซ้อน | ลดความซ้ำซ้อนของเมธอดในคลาส | ThS | 29 พ.ค. 69 | เสร็จสิ้น |
| 28 | ISS-028 | 28 ก.ค. 69 | การเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมผิดพลาดหลัง Baseline | ค่าตั้งค่าของสภาพแวดล้อมใหม่ไม่ตรงกับที่ระบบคาดหวัง | แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อม | ThS | 3 ส.ค. 69 | เสร็จสิ้น |
| 29 | ISS-029 | 11 ส.ค. 69 | ไฟล์แนบเปิดได้จาก URL โดยตรงโดยไม่ตรวจ Session และบริษัท | ไฟล์แนบเก็บใต้โฟลเดอร์ที่เว็บเปิดให้เรียกได้ | ย้ายไฟล์แนบออกนอก Web Root และให้ดาวน์โหลดผ่านสคริปต์ที่ตรวจ Session และบริษัท | ThS | - | คงค้าง |
| 30 | ISS-030 | 12 ส.ค. 69 | เอกสารที่บันทึกแล้วไม่ถูก Rollback เมื่อการผ่าน GL ล้มเหลว | การผ่าน GL ทำใน Transaction แยกหลังบันทึกเอกสาร | รวมการบันทึกเอกสาร สต๊อก และ GL ไว้ใน Transaction เดียวตาม CR13:001 | ThS | - | คงค้าง |
| 31 | ISS-031 | 12 ส.ค. 69 | Socket.IO รับรหัสบริษัท ผู้ใช้ และบทบาทจาก Browser ทำให้รับแจ้งเตือนของบริษัทอื่นได้ | การเชื่อมต่อ Socket.IO ไม่ตรวจกับ Session ของผู้ใช้ | ตรวจ Session ฝั่งเซิร์ฟเวอร์ก่อนเข้าห้องแจ้งเตือน และไม่รับค่าบริษัท/บทบาทจาก Browser | ThS | - | คงค้าง |
| 32 | ISS-032 | 13 ส.ค. 69 | แม่แบบค่าตั้งค่ากำหนดกุญแจเข้ารหัสและ IV คงที่ และเชื่อมต่อฐานข้อมูลด้วยผู้ใช้ root | ค่าความลับบางส่วนยังไม่ได้แยกออกจาก Source Code | ย้ายกุญแจและ IV ไปเป็นความลับต่อการติดตั้ง ใช้ผู้ใช้ฐานข้อมูลสิทธิ์จำกัด และตั้งค่า HTTPS/TLS | ThS | - | คงค้าง |
## สรุปผลการแก้ไข
| รายการ | จำนวน |
| --- | ---: |
| ปัญหาที่บันทึกทั้งหมด | 28 |
| ระดับความรุนแรงสูง | 17 |
| ปัญหาที่บันทึกทั้งหมด | 32 |
| ระดับความรุนแรงสูง | 21 |
| ระดับความรุนแรงกลาง | 9 |
| ระดับความรุนแรงต่ำ | 2 |
| แก้ไขแล้วเสร็จและตรวจสอบผลแล้ว | 28 |
| คงค้าง | 0 |
| คงค้าง | 4 |
ปัญหาทุกรายการได้รับการแก้ไขและตรวจสอบผลด้วย Test Case ที่เกี่ยวข้อง โดยผลการทดสอบผ่านทั้งหมดในรอบทดสอบระหว่าง 10 สิงหาคม 2569 – 14 สิงหาคม 2569 ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง ณ วันตรวจรับ
ปัญหาที่พบระหว่างพัฒนา 28 รายการได้รับการแก้ไขและตรวจสอบผลแล้ว รอบทดสอบระหว่าง 10 สิงหาคม 2569 – 14 สิงหาคม 2569 พบข้อบกพร่องระดับสูงคงค้าง 4 รายการ (ISS-029, ISS-030, ISS-031, ISS-032) ซึ่งต้องแจ้งผู้รับมอบและกำหนดการแก้ไขก่อนตรวจรับ
## บทเรียนและแนวทางป้องกันสำหรับโครงการถัดไป (Lessons Learned)
@@ -62,10 +66,10 @@
| ลำดับ | กลุ่มปัญหา | เลขที่ปัญหา | จำนวน | สิ่งที่เกิดขึ้น | แนวทางป้องกัน (Preventive Action) |
| :---: | --- | --- | ---: | --- | --- |
| 1 | ความปลอดภัยและการควบคุมสิทธิ์ | ISS-001, ISS-003, ISS-004, ISS-006, ISS-009, ISS-011, ISS-015, ISS-016, ISS-017, ISS-018, ISS-024, ISS-026 | 12 | ข้อบกพร่องกลุ่มใหญ่ที่สุดเกิดจากการเพิ่ม Role Guard การตรวจสิทธิ์ และการจำกัด Session ทีละส่วนระหว่างพัฒนา | กำหนด Secure Coding Checklist และรูปแบบการตรวจสิทธิ์กลางตั้งแต่ช่วงออกแบบ และทบทวนโค้ดด้านความปลอดภัยทุกโมดูลก่อนรวมเข้า Baseline |
| 1 | ความปลอดภัยและการควบคุมสิทธิ์ | ISS-001, ISS-003, ISS-004, ISS-006, ISS-009, ISS-011, ISS-015, ISS-016, ISS-017, ISS-018, ISS-024, ISS-026, ISS-029, ISS-031, ISS-032 | 15 | ข้อบกพร่องกลุ่มใหญ่ที่สุดเกิดจากการเพิ่ม Role Guard การตรวจสิทธิ์ และการจำกัด Session ทีละส่วนระหว่างพัฒนา | กำหนด Secure Coding Checklist และรูปแบบการตรวจสิทธิ์กลางตั้งแต่ช่วงออกแบบ และทบทวนโค้ดด้านความปลอดภัยทุกโมดูลก่อนรวมเข้า Baseline |
| 2 | ขั้นตอน Onboarding และการลงทะเบียน | ISS-007, ISS-008, ISS-013 | 3 | เส้นทางการรับคำเชิญมีหลายเงื่อนไขที่ไม่ได้ระบุครบในการออกแบบ | เขียน Test Case ครบทุกเส้นทางของขั้นตอนหลายสถานะก่อนพัฒนา และทดสอบซ้ำทุกครั้งที่แก้ไข |
| 3 | ความสอดคล้องระหว่างข้อกำหนดกับการพัฒนา | ISS-019, ISS-020, ISS-022 | 3 | ข้อกำหนดและเอกสารถูกปรับระหว่างพัฒนา ทำให้เกิดช่องว่างกับโค้ด | ปรับข้อกำหนดและ Traceability Record ในรอบเดียวกับการแก้โค้ด และตรวจความสอดคล้องในทุกรอบ Verification |
| 4 | ความถูกต้องของข้อมูลสต๊อกและบัญชี | ISS-002, ISS-012 | 2 | การแปลงชนิดข้อมูลและการตรวจสอบความสัมพันธ์ของข้อมูลไม่ครอบคลุม | ตรวจสอบข้อมูลนำเข้าและความสัมพันธ์ฝั่งเซิร์ฟเวอร์ทุกคำสั่งที่เปลี่ยนสต๊อกหรือ GL และเพิ่มชุดทดสอบวงจรเอกสาร |
| 4 | ความถูกต้องของข้อมูลสต๊อกและบัญชี | ISS-002, ISS-012, ISS-030 | 3 | การแปลงชนิดข้อมูลและการตรวจสอบความสัมพันธ์ของข้อมูลไม่ครอบคลุม | ตรวจสอบข้อมูลนำเข้าและความสัมพันธ์ฝั่งเซิร์ฟเวอร์ทุกคำสั่งที่เปลี่ยนสต๊อกหรือ GL และเพิ่มชุดทดสอบวงจรเอกสาร |
| 5 | มาตรฐานโค้ดและการตั้งค่าสภาพแวดล้อม | ISS-005, ISS-010, ISS-014, ISS-021, ISS-023, ISS-025, ISS-027, ISS-028 | 8 | พัฒนาหลายโมดูลคู่ขนานโดยไม่มีมาตรฐานการตั้งชื่อ เส้นทางไฟล์ และค่าตั้งค่ากลาง | กำหนด Coding Standard และแม่แบบค่าตั้งค่าตั้งแต่ต้นโครงการ และทดสอบการติดตั้งบนสภาพแวดล้อมใหม่ทุกครั้งก่อนตั้ง Baseline |
## การเชื่อมโยงกับหลักฐานการทดสอบ
@@ -73,7 +77,7 @@
| เลขที่ | การแก้ไขอ้างอิง (Commit) | Test Case ที่ใช้ตรวจสอบ | ผลการทดสอบ |
| :---: | --- | :---: | :---: |
| ISS-001 | `7cb78d0` | TC-UN12.002 | Passed |
| ISS-002 | `92d116f` | TC-UN08.002 | Passed |
| ISS-002 | `92d116f` | TC-UN04.002 | Passed |
| ISS-003 | `2eb6a1a` | TC-UN01.002 | Passed |
| ISS-004 | `a75d37e` | TC-UN12.002 | Passed |
| ISS-005 | `304848d` | TC-UN01.003 | Passed |
@@ -81,25 +85,29 @@
| ISS-007 | `8f1c5c4` | TC-UN01.001 | Passed |
| ISS-008 | `4433ef1` | TC-UN01.001 | Passed |
| ISS-009 | `8cf1d93` | TC-UN12.001 | Passed |
| ISS-010 | `91f8bb8` | TC-UN13.001 | Passed |
| ISS-011 | `6eeebfe` | TC-UN12.003 | Passed |
| ISS-010 | `91f8bb8` | ทดสอบถดถอยทั้งชุด | Passed |
| ISS-011 | `6eeebfe` | TC-UN01.001, TC-UN01.004, TC-UN12.003 | Passed |
| ISS-012 | `94032dd` | TC-UN04.004 | Passed |
| ISS-013 | `b76dc67` | TC-UN01.001 | Passed |
| ISS-014 | `59037b5, f4ef776` | TC-UN13.001 | Passed |
| ISS-015 | `b07882e` | TC-UN01.002 | Passed |
| ISS-015 | `b07882e` | TC-UN01.002, TC-UN04.002 | Passed |
| ISS-016 | `2930973` | TC-UN01.003 | Passed |
| ISS-017 | `4733c78` | TC-UN01.002 | Passed |
| ISS-018 | `b4b1f5c` | TC-UN01.001 | Passed |
| ISS-019 | `cb36d3b` | TC-UN10.002 | Passed |
| ISS-020 | `dfeb575` | TC-UN03.001 | Passed |
| ISS-021 | `f3c0e3c, 714b70d` | TC-UN11.002 | Passed |
| ISS-022 | `99ae35d` | TC-UN13.001 | Passed |
| ISS-022 | `99ae35d` | ทบทวนเอกสาร | Passed |
| ISS-023 | `5df6736` | TC-UN03.001 | Passed |
| ISS-024 | `9a50238` | TC-UN12.001 | Passed |
| ISS-025 | `ed3dd2f` | TC-UN01.002 | Passed |
| ISS-025 | `ed3dd2f` | ตรวจหน้าจอ | Passed |
| ISS-026 | `fda211b` | TC-UN01.003 | Passed |
| ISS-027 | `a0677d6` | TC-UN13.001 | Passed |
| ISS-028 | `b2c4374` | TC-UN12.004 | Passed |
| ISS-027 | `a0677d6` | ทดสอบถดถอยทั้งชุด | Passed |
| ISS-028 | `b2c4374` | TC-UN01.002 | Passed |
| ISS-029 | - | TC-UN04.006 | Failed (คงค้าง) |
| ISS-030 | - | TC-UN08.002 | Failed (คงค้าง) |
| ISS-031 | - | TC-UN11.001, TC-UN12.001 | Failed (คงค้าง) |
| ISS-032 | - | TC-UN12.004 | Failed (คงค้าง) |
## ผู้จัดทำเอกสาร (Secretary)
@@ -23,7 +23,7 @@
| 6 | WP 6.0 | เอกสาร 200-WMS-26-001-00 Test Case and Test Procedures | ส่งเอกสารจำนวน 1 ชุด | Accepted |
| 7 | WP 7.0 | เอกสาร 200-WMS-26-001-00 Validation Results | ส่งเอกสารจำนวน 1 ชุด | Accepted |
| 8 | WP 8.0 | เอกสาร 200-WMS-26-001-00 Software User Document | ส่งเอกสารจำนวน 1 ชุด | Accepted |
| 9 | WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code ผ่าน Git Repository และติดตั้ง (Git baseline `6c39700`) | Accepted |
| 9 | WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code ผ่าน Git Repository และติดตั้ง (Git baseline `6c39700`) | Accepted (มีเงื่อนไข) |
| 10 | WP 10.0 | เอกสาร 200-WMS-26-001-00 Product Operation Guide | ส่งเอกสารจำนวน 1 ชุด | Accepted |
| 11 | WP 11.0 | เอกสาร 200-WMS-26-001-00 Maintenance Document | ส่งเอกสารจำนวน 1 ชุด | Accepted |
@@ -31,25 +31,26 @@
| ลำดับ | เกณฑ์การตรวจรับ | หลักฐานอ้างอิง | ผลการตรวจสอบ |
| :---: | --- | --- | :---: |
| 1 | ฟังก์ชันในขอบเขตทำงานตรงตาม Customer Requirements ครบทุกรายการ | Traceability Record, Test Report | ผ่าน |
| 2 | ทดสอบระบบตาม Test Case ครบถ้วน | Test Report 45 Test Case ผ่านทั้งหมด (10 สิงหาคม 2569 – 14 สิงหาคม 2569) | ผ่าน |
| 3 | ทดสอบการยอมรับโดยผู้ใช้ (UAT) | Validation Results ครบ 14 หมวดความต้องการ (80 รายการ) ผ่านทั้งหมด | ผ่าน |
| 4 | ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง | Correction Register 28 รายการ แก้ไขและตรวจสอบครบ | ผ่าน |
| 1 | ฟังก์ชันในขอบเขตทำงานตรงตาม Customer Requirements ครบทุกรายการ | Traceability Record Table, Validation Results: ไม่ผ่าน 11 รายการ ยังไม่ได้ทดสอบ 5 รายการ | ไม่ผ่าน (มีเงื่อนไข) |
| 2 | ทดสอบระบบตาม Test Case ครบถ้วน | Test Report ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 จาก 45 Test Case (10 สิงหาคม 2569 – 14 สิงหาคม 2569) | ไม่ผ่าน (มีเงื่อนไข) |
| 3 | ทดสอบการยอมรับโดยผู้ใช้ (UAT) | Validation Results ทดสอบครบ 80 รายการ ผลตามข้อ 1 | ไม่ผ่าน (มีเงื่อนไข) |
| 4 | ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง | Correction Register ข้อบกพร่องระดับสูงคงค้าง ISS-029, ISS-030, ISS-031, ISS-032 | ไม่ผ่าน (มีเงื่อนไข) |
| 5 | เอกสารคู่มือผู้ใช้ ผู้ดูแลระบบ และการบำรุงรักษาครบถ้วน | Software User Document, Product Operation Guide, Maintenance Document | ผ่าน |
| 6 | Source Code และเอกสารจัดเก็บใน Repository พร้อมชุดสำรอง | Project Repository, Project Repository (Backup) | ผ่าน |
| 7 | ผลการตรวจสอบ Work Products (Verification) | Verification Results รอบที่ 4 | ผ่าน |
| 7 | ผลการตรวจสอบ Work Products (Verification) | Verification Results รอบที่ 4: ไม่ผ่าน 2 รายการ (ผลการทดสอบ และชุดติดตั้ง Docker) | ไม่ผ่าน (มีเงื่อนไข) |
## สรุปผลการตรวจรับ
| รายการ | ผลสรุป |
| --- | --- |
| จำนวนสิ่งส่งมอบทั้งหมด | 11 รายการ |
| ตรวจรับแล้ว (Accepted) | 11 รายการ |
| ตรวจรับแล้ว (Accepted) | 10 รายการ |
| ตรวจรับแบบมีเงื่อนไข | 1 รายการ (WP 9.0 Software) |
| ไม่ผ่านการตรวจรับ (Not Accepted) | 0 รายการ |
| ข้อบกพร่องคงค้าง | ไม่มี |
| ผลการตรวจรับโดยรวม | **Accepted** — ตรวจรับส่งมอบระบบครบถ้วน |
| ข้อบกพร่องคงค้าง | 4 รายการ (ISS-029, ISS-030, ISS-031, ISS-032) |
| ผลการตรวจรับโดยรวม | **Accepted with conditions** — ตรวจรับพร้อมเงื่อนไขแก้ไขข้อบกพร่องคงค้าง |
ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ 24 สิงหาคม 2569 โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการจะดำเนินการให้แล้วเสร็จภายในวันที่ 24 สิงหาคม 2569 ตามแผนปิดโครงการ
ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับในเอกสาร Statement of Work และ Software Project Plan แล้ว รับทราบว่ามีข้อบกพร่องระดับสูงคงค้าง 4 รายการ และชุดติดตั้ง Docker ที่ยังไม่ได้ทดสอบ จึงมีมติตรวจรับส่งมอบระบบแบบมีเงื่อนไขเมื่อวันที่ 24 สิงหาคม 2569 โดยเงื่อนไขคือ (1) แก้ไข ISS-029, ISS-030, ISS-031, ISS-032 และทดสอบซ้ำภายใต้การบำรุงรักษาแบบแก้ไข (Corrective) ตาม Maintenance Document และ (2) ทดสอบ TC-UN13.002 และ TC-UN13.003 บน Baseline ก่อนใช้ชุดติดตั้ง Docker ในสภาพแวดล้อมใช้งานจริง
## ผู้จัดทำเอกสาร (Secretary)
@@ -30,7 +30,7 @@
| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด |
| --- | :---: | ---: | --- |
| Phase 4: Verification & Validation | เสร็จสมบูรณ์ | 100 | ทดสอบ 45 Test Case และ UAT ครบ 14 หมวดความต้องการ (80 รายการ) ผ่านทั้งหมด |
| Phase 4: Verification & Validation | กำลังดำเนินการ | 90 | ทดสอบ 45 Test Case ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 และ UAT ครบ 14 หมวดความต้องการ (80 รายการ) มีข้อบกพร่องคงค้าง ISS-029–ISS-032 |
| Phase 5: Project Close | กำลังดำเนินการ | 60 | อยู่ระหว่างเตรียมอบรมผู้ใช้งาน ตรวจรับ และปิดโครงการ |
| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 92 | เตรียมตรวจรับและปิดโครงการ |
@@ -47,8 +47,8 @@
| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ |
| :---: | --- | --- | :---: | :---: |
| 1 | ผลการทดสอบระบบ | ทดสอบ 45 Test Case บน Internal Testing Server ผ่านทั้งหมด ไม่พบข้อบกพร่องคงค้าง | PaNg | ผ่าน |
| 2 | ผลการทดสอบการยอมรับ | ตัวแทนลูกค้าทดสอบการยอมรับครบ 14 หมวดความต้องการ (80 รายการ) บนสภาพแวดล้อมใช้งานจริง ผ่านทั้งหมด | SeV | ผ่าน |
| 1 | ผลการทดสอบระบบ | ทดสอบ 45 Test Case บน Internal Testing Server (Build b2c4374) ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 ข้อบกพร่องระดับสูงที่พบ ได้แก่ ไฟล์แนบเปิดได้จาก URL (ISS-029) การผ่าน GL ไม่อยู่ใน Transaction เดียวกับเอกสาร (ISS-030) Socket.IO ไม่ตรวจ Session (ISS-031) และค่าความลับในแม่แบบค่าตั้งค่า (ISS-032) ส่วนชุดติดตั้ง Docker ยังไม่ได้ทดสอบ | PaNg | ไม่ผ่าน |
| 2 | ผลการทดสอบการยอมรับ | ตัวแทนลูกค้าทดสอบการยอมรับครบ 14 หมวดความต้องการ (80 รายการ) บนสภาพแวดล้อมใช้งานจริง ความต้องการที่เกี่ยวข้องกับข้อบกพร่องคงค้างและชุดติดตั้ง Docker ยังไม่ผ่าน ผู้รับมอบรับทราบผลและขอแผนแก้ไขก่อนตรวจรับ | SeV | รับทราบ |
| 3 | ข้อมูลสาธิต | จัดเตรียมข้อมูลสาธิตสำหรับการตรวจรับรายงานและขั้นตอนการทำงานเสร็จแล้ว เป็นงานเตรียมการส่งมอบตาม Task 4.7 ไม่เปลี่ยนแปลงขอบเขตหรือสิ่งส่งมอบ | ApS, SeV | เสร็จสิ้น |
| 4 | งานที่เหลือ | อบรมผู้ใช้งาน ปิดงานควบคุมปฏิบัติการ ตรวจรับส่งมอบ และปิดโครงการ | ApS, YaB | ดำเนินการ |
@@ -56,9 +56,10 @@
| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ |
| :---: | --- | :---: | :---: | :---: |
| 1 | จัดอบรมผู้ใช้งานก่อนเปิดใช้งานจริง (Task 5.2) | ThS, PaNg | 22 สิงหาคม 2569 | Scheduled |
| 2 | ปิดงานควบคุมการสำรองข้อมูลและการเฝ้าระวังระบบ | ThS | 23 สิงหาคม 2569 | Scheduled |
| 3 | นัดตรวจรับส่งมอบระบบและปิดโครงการกับ Project Sponsor | ApS | 24 สิงหาคม 2569 | Scheduled |
| 1 | จัดทำแผนแก้ไขข้อบกพร่องคงค้าง ISS-029–ISS-032 และการทดสอบชุดติดตั้ง Docker เสนอผู้รับมอบ | ApS, ThS | 24 สิงหาคม 2569 | Scheduled |
| 2 | จัดอบรมผู้ใช้งานก่อนเปิดใช้งานจริง (Task 5.2) | ThS, PaNg | 22 สิงหาคม 2569 | Scheduled |
| 3 | ปิดงานควบคุมการสำรองข้อมูลและการเฝ้าระวังระบบ | ThS | 23 สิงหาคม 2569 | Scheduled |
| 4 | นัดตรวจรับส่งมอบระบบและปิดโครงการกับ Project Sponsor | ApS | 24 สิงหาคม 2569 | Scheduled |
## งานประชุมครั้งถัดไป (Next Meeting)
@@ -33,7 +33,7 @@
| Phase 1: Project Initiation | เสร็จสมบูรณ์ | 100 | เปิดโครงการและอนุมัติกฎบัตรเรียบร้อย |
| Phase 2: Project Planning | เสร็จสมบูรณ์ | 100 | อนุมัติแผนโครงการและ Baseline ความต้องการ |
| Phase 3: Project Execution | เสร็จสมบูรณ์ | 100 | พัฒนาระบบครบตามขอบเขต Baseline 6c39700 |
| Phase 4: Verification & Validation | เสร็จสมบูรณ์ | 100 | ตรวจสอบ ทดสอบ และ UAT ผ่านครบทุกรายการ |
| Phase 4: Verification & Validation | เสร็จสมบูรณ์ | 100 | ตรวจสอบ ทดสอบ และ UAT ครบตามแผน ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 ข้อบกพร่องคงค้างส่งต่อการบำรุงรักษา |
| Phase 5: Project Close | เสร็จสมบูรณ์ | 100 | ตรวจรับ อบรม ปิดงานควบคุมปฏิบัติการ และปิดโครงการเรียบร้อย |
| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 100 | โครงการเสร็จสมบูรณ์ ปิดโครงการอย่างเป็นทางการ |
@@ -54,10 +54,10 @@
| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ |
| :---: | --- | --- | :---: | :---: |
| 1 | ผลการดำเนินโครงการ | พัฒนาระบบครบตามขอบเขต 11 ระบบงาน ทดสอบและ UAT ผ่านทั้งหมด ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง | ApS, SeV | ผ่านการรับรอง |
| 2 | ความครบถ้วนของเอกสาร | ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ผลผ่านทั้งหมด และจัดทำ List of Evidence เรียบร้อย | YaB, PaNg | สมบูรณ์ |
| 1 | ผลการดำเนินโครงการ | พัฒนาระบบครบตามขอบเขต 11 ระบบงาน ทดสอบ 45 Test Case ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 มีข้อบกพร่องระดับสูงคงค้าง ISS-029–ISS-032 และชุดติดตั้ง Docker ที่ยังไม่ได้ทดสอบ | ApS, SeV | รับทราบ |
| 2 | ความครบถ้วนของเอกสาร | ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ไม่ผ่าน 2 รายการตามผลการทดสอบ และจัดทำ List of Evidence เรียบร้อย | YaB, PaNg | สมบูรณ์ |
| 3 | ชุดติดตั้งและอัตลักษณ์องค์กร | จัดทำชุดติดตั้ง Docker Compose ตามความต้องการ CR10:002 และปรับอัตลักษณ์องค์กรในหน้าจอและเอกสารเสร็จแล้ว เป็นงานเตรียมการส่งมอบตาม Task 4.7 ไม่เปลี่ยนแปลงขอบเขตหรือสิ่งส่งมอบ | SeV, ApS | เสร็จสิ้น |
| 4 | ผลการตรวจรับ | Project Sponsor ตรวจรับสิ่งส่งมอบทั้งหมด ผลการตรวจรับ Accepted | SeV | ตรวจรับแล้ว |
| 4 | ผลการตรวจรับ | Project Sponsor ตรวจรับสิ่งส่งมอบแบบมีเงื่อนไข (Accepted with conditions): แก้ไข ISS-029–ISS-032 และทดสอบซ้ำภายใต้การบำรุงรักษาแบบแก้ไข และทดสอบ TC-UN13.002–TC-UN13.003 ก่อนใช้ชุดติดตั้ง Docker ในสภาพแวดล้อมใช้งานจริง | SeV | ตรวจรับแบบมีเงื่อนไข |
| 5 | ผลการอบรม | อบรมผู้ใช้งาน 6 คน เมื่อ 22 ส.ค. 69 ผู้เข้าอบรมทดลองใช้งานครบทุกขั้นตอนได้สำเร็จ | ThS, PaNg | เสร็จสิ้น |
| 6 | การควบคุมปฏิบัติการ | ปิดรายการสำรองฐานข้อมูลอัตโนมัติ (OP-001) และการเฝ้าระวังพร้อมแจ้งเตือน (OP-002) เมื่อ 23 ส.ค. 69 | ThS | เสร็จสิ้น |
| 7 | การสำรองข้อมูลโครงการ | ซิงก์ Branch `main` ไปยัง Backup Remote และทดสอบเรียกคืนสำเร็จ | ThS, YaB | เสร็จสิ้น |
@@ -67,8 +67,10 @@
| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ |
| :---: | --- | :---: | :---: | :---: |
| 1 | จัดเก็บเอกสารโครงการทั้งหมดเข้าระบบควบคุมเอกสาร | YaB | 24 สิงหาคม 2569 | เสร็จสมบูรณ์ |
| 2 | ติดตามการตรวจนับสต๊อกสิ้นเดือนแรกหลังเปิดใช้งานจริง | ApS | 30 กันยายน 2569 | Scheduled |
| 1 | แก้ไขข้อบกพร่องคงค้าง ISS-029–ISS-032 และทดสอบซ้ำภายใต้การบำรุงรักษาแบบแก้ไข | ThS, PaNg | 30 กันยายน 2569 | Scheduled |
| 2 | ทดสอบชุดติดตั้ง Docker (TC-UN13.002–TC-UN13.003) ก่อนใช้งานจริง | ThS, PaNg | 30 กันยายน 2569 | Scheduled |
| 3 | จัดเก็บเอกสารโครงการทั้งหมดเข้าระบบควบคุมเอกสาร | YaB | 24 สิงหาคม 2569 | เสร็จสมบูรณ์ |
| 4 | ติดตามการตรวจนับสต๊อกสิ้นเดือนแรกหลังเปิดใช้งานจริง | ApS | 30 กันยายน 2569 | Scheduled |
## งานประชุมครั้งถัดไป (Next Meeting)
@@ -54,7 +54,7 @@
## การเชื่อมโยงกับการเปลี่ยนแปลง
การเปลี่ยนแปลง Configuration Item ต้องพิจารณาตามเกณฑ์ใน Change Report และการแก้ไขข้อบกพร่องต้องบันทึกใน Correction Register (ISS-001–ISS-028) โดยทุกรายการเชื่อมโยงกับ Commit ที่ตรวจสอบได้ใน Repository
การเปลี่ยนแปลง Configuration Item ต้องพิจารณาตามเกณฑ์ใน Change Report และการแก้ไขข้อบกพร่องต้องบันทึกใน Correction Register (ISS-001–ISS-032) โดยทุกรายการเชื่อมโยงกับ Commit ที่ตรวจสอบได้ใน Repository
## ผู้จัดทำเอกสาร (Secretary)
@@ -27,7 +27,7 @@
| Actor | คำอธิบาย | การใช้งานหลัก |
| --- | --- | --- |
| Owner | เจ้าของบริษัท สิทธิ์สูงสุดภายในบริษัท | ตั้งค่าบริษัท จัดการผู้ใช้ และใช้งานทุกโมดูล |
| Admin | ผู้ดูแลระบบภายในบริษัท | จัดการข้อมูลหลัก ผู้ใช้ สิทธิ์ และใช้งานทุกโมดูลปฏิบัติการ |
| Admin | ผู้ดูแลระบบภายในบริษัท | จัดการข้อมูลหลักและใช้งานทุกโมดูลปฏิบัติการ (การจัดการผู้ใช้และสิทธิ์เป็นของ Owner) |
| Staff | ผู้ปฏิบัติงาน | บันทึกรายการคลังสินค้า ขาย จัดซื้อ และการเงินตามสิทธิ์ |
| Viewer | ผู้ใช้แบบอ่านอย่างเดียว | ดูหน้าจอและรายงานที่ได้รับสิทธิ์ |
| System Scheduler | ผู้กระทำอัตโนมัติ (Node.js) | สรุปยอดสต๊อก/GL และแจ้งเตือนตามกำหนดเวลา |
@@ -126,7 +126,7 @@ Wireframe แสดงโครงร่างหน้าจอหลักท
| UN01.001 | Identity – Register & Onboarding | ลงทะเบียนเจ้าของบริษัท, ยืนยันอีเมล, เชิญผู้ใช้และรับคำเชิญเข้าบริษัทที่ถูกต้อง | SR03:001, SR08:001 | app/login/, UserManager.php |
| UN01.002 | Identity – Login & Role Guard | เข้าสู่ระบบด้วย Username/Password, ตรวจบทบาทและสิทธิ์แอปพลิเคชันฝั่งเซิร์ฟเวอร์ก่อนเข้าทุกหน้า | SR03:001, SR04:001, SR07:005 | app/login/, UserManager.php, app/assets/utils/ |
| UN01.003 | Identity – Password Recovery / OTP / Session | ลืมรหัสผ่านผ่านอีเมล, OTP, Hash รหัสผ่าน bcrypt, บล็อก Concurrent Login | SR03:001, SR01:004, SR07:003 | PasswordManager.php, PasswordResetManager.php |
| UN01.004 | Identity – User & App-Access Administration | เพิ่ม/แก้ไข/ปิดใช้ผู้ใช้, กำหนดบทบาทและสิทธิ์การเข้าถึงแอปพลิเคชัน | SR03:001, SR08:001 | app/setting/, UserManager.php |
| UN01.004 | Identity – User & App-Access Administration | Owner เชิญ/แก้ไขบทบาทและสิทธิ์แอปพลิเคชัน/ลบผู้ใช้ และส่งคำเชิญซ้ำ | SR03:001, SR08:001 | app/setting/api/engine/manage_users.php, UserManager.php |
| UN02 — ตั้งค่าบริษัท (Company Settings) | | | | |
| UN02.001 | Company – Profile & System Settings | แก้ไขข้อมูลบริษัท, โลโก้, ค่าตั้งค่าระบบต่อบริษัท | SR03:002 | CompanyProfileManager.php, CompanySettingManager.php |
| UN02.002 | Company – SMTP & Mail Dispatch | ตั้งค่า SMTP ต่อบริษัท และส่งอีเมล Onboarding/กู้คืนรหัสผ่าน/แจ้งเตือน | SR03:002, SR06:004 | SmtpManager.php |
@@ -137,7 +137,7 @@ Wireframe แสดงโครงร่างหน้าจอหลักท
| UN03.004 | Master – Warehouse Layer Configuration | สลับโครงสร้างคลังแบบชั้นเดียว/หลายชั้นต่อบริษัท | SR03:003 | CompanySettingManager.php, WarehouseManager.php |
| UN04 — ควบคุมสินค้าคงคลัง (Inventory Control) | | | | |
| UN04.001 | ICS – Stock-in | รับสินค้าเข้าตามสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง สร้างความเคลื่อนไหวและยอดคงเหลือ | SR03:004, SR08:003 | app/ics/, StockManager.php, StockTablesTrait.php |
| UN04.002 | ICS – Stock-out | จ่ายสินค้าออกโดยตรวจสิทธิ์และยอดคงเหลือ ปฏิเสธจำนวนเกิน | SR03:004, SR09:003 | StockManager.php |
| UN04.002 | ICS – Stock-out | จ่ายสินค้าออกทั้งยอดของช่องจัดเก็บโดยตรวจสิทธิ์ ยอดคงเหลือไม่ติดลบ | SR03:004, SR09:003 | StockManager.php, OrderManager.php |
| UN04.003 | ICS – Stock Transfer | โอนย้ายระหว่างตำแหน่ง ต้นทาง/ปลายทางผูกเป็นรายการเดียว | SR03:004 | StockManager.php |
| UN04.004 | ICS – Lot / Serial / Expiry | บันทึกและสอบกลับ Lot, Serial Number, วันหมดอายุ | SR03:004, SR08:002 | StockSourceManager.php, md_lot |
| UN04.005 | ICS – Barcode Label & Scan | พิมพ์ฉลากบาร์โค้ด SKU/ตำแหน่ง และรับค่าจากเครื่องสแกน | SR03:004 | BarcodeManager.php, location_barcode_label.php |
@@ -150,36 +150,36 @@ Wireframe แสดงโครงร่างหน้าจอหลักท
| UN06 — จัดซื้อ (Purchasing) | | | | |
| UN06.001 | Purchasing – Purchase Request | สร้างและอนุมัติใบขอซื้อ | SR03:006 | app/po/, PurchaseRequestManager.php |
| UN06.002 | Purchasing – Purchase Order | แปลงใบขอซื้อเป็นใบสั่งซื้อ และติดตามสถานะ | SR03:006, SR04:002 | PurchaseOrderManager.php |
| UN06.003 | Purchasing – Purchase Invoice | บันทึกใบแจ้งหนี้ซื้อ รับสินค้าเข้า และบันทึก GL | SR03:006, SR04:002 | PurchaseOrderManager.php, StockManager.php |
| UN06.003 | Purchasing – Purchase Invoice | รับสินค้าตามใบสั่งซื้อ และบันทึกใบแจ้งหนี้ซื้อพร้อมผ่าน GL | SR03:006, SR04:002 | PurchaseOrderManager.php, app/expense/purchase_invoice.php, PurchaseInvoicePosting.php |
| UN06.004 | Purchasing – Supplier Return | คืนสินค้าผู้ขาย พร้อมปรับสต๊อก/บัญชี | SR03:006, SR04:002 | SupplierReturnManager.php |
| UN07 — การเงิน (Finance) | | | | |
| UN07.001 | Finance – Receipt Billing & Receipt | วางบิลรับและบันทึกใบเสรจรับเงินผูกกับใบแจ้งหนี้ | SR03:007, SR04:002 | app/finance/, ReceiptBillingManager.php, ReceiptManager.php |
| UN07.002 | Finance – Payment Billing & Payment | วางบิลจ่ายและบันทึกใบสำคัญจ่ายผูกกับใบแจ้งหนี้ซื้อ | SR03:007, SR04:002 | PaymentBillingManager.php, PaymentManager.php |
| UN08 — บัญชี (Accounting) | | | | |
| UN08.001 | Accounting – Chart of Accounts / Departments / Formulas | จัดการผังบัญชี แผนก และสูตรบัญชีอัตโนมัติ | SR03:008, SR08:002 | app/accounting/, PostingManager.php |
| UN08.002 | Accounting – Journal & GL Posting | บันทึกสมุดรายวันและผ่านรายการ GL แบบสมดุลภายใน Transaction | SR03:008, SR09:003 | app/journal/, PostingManager.php |
| UN08.001 | Accounting – Chart of Accounts / Departments / Formulas | จัดการผังบัญชี แผนก และสูตรบัญชีอัตโนมัติ | SR03:008, SR08:002 | app/accounting/, GlManager.php |
| UN08.002 | Accounting – Journal & GL Posting | บันทึกสมุดรายวันและผ่านรายการ GL ตามช่วงเวลาที่เปิดผ่านรายการ | SR03:008, SR09:003 | app/accounting/api/engine/save_manual_journal.php, GlManager.php, BasePosting.php, PostingWindowGuard.php |
| UN09 — รายงานและแดชบอร์ด (Reports & Dashboard) | | | | |
| UN09.001 | Reports – Dashboard & Aggregates | แดชบอร์ดคลังสินค้าและบัญชีจากตารางสรุปยอด | SR03:009, SR05:001, SR05:002 | app/dashboard/, app/ac_dashboard/, EtlStockManager.php |
| UN09.002 | Reports – Stock Reports | ภาพรวมสต๊อก, ความเคลื่อนไหว, ความจุ, สินค้าใกล้หมด, หมดอายุ, Lot | SR03:009 | app/reports/, ReportManager.php |
| UN09.003 | Reports – Financial Reports | งบทดลอง, งบกำไรขาดทุน, งบดุล, VAT, สมุดรายวัน, ความเคลื่อนไหว GL | SR03:009 | ReportManager.php |
| UN09.003 | Reports – Financial Reports | งบทดลอง, งบกำไรขาดทุน, งบดุล, VAT, สมุดรายวัน, ความเคลื่อนไหว GL | SR03:009 | app/accounting/ (trial_balance, pl_statement, balance_sheet, vat_report, journal_listing, gl_movement) |
| UN09.004 | Reports – Filter / Print / Export | กรอง ดู พิมพ์ และส่งออกรายงานตามขอบเขตสิทธิ์ | SR03:009, SR04:003 | app/reports/ |
| UN10 — ควบคุมเอกสาร (Document Control) | | | | |
| UN10.001 | Document – Numbering | ออกเลขที่เอกสารตามลำดับที่กำหนด (document_number_sequences) | SR03:010, SR04:005, SR08:004 | DocumentNumberManager.php |
| UN10.002 | Document – Lifecycle & Status | ควบคุมสถานะเอกสาร ปฏิเสธการเปลี่ยนสถานะที่ไม่ถูกต้อง พร้อม Confirm Dialog และข้อความข้อผิดพลาด | SR03:010, SR09:001, SR09:002 | BatchActionManager.php, Manager classes |
| UN10.003 | Document – Audit Fields & History | บันทึกผู้สร้าง ผู้แก้ไข วันที่ และประวัติรายการ | SR03:010, SR09:001 | td_* tables, td_bin_log |
| UN10.003 | Document – Audit Fields & History | บันทึกผู้ทำรายการ วันเวลา และข้อมูลที่ส่งในคอลัมน์ log ของรายการ และประวัติช่องจัดเก็บ | SR03:010, SR09:001 | db_auth.php (log), td_* tables, td_bin_log |
| UN11 — แจ้งเตือนและงานตามกำหนดเวลา (Notification & Scheduler) | | | | |
| UN11.001 | Node – Socket.IO Notification Server | รับเหตุการณ์จาก PHP ผ่าน Endpoint ที่ป้องกันด้วย Secret และส่งต่อไปยัง Browser ของผู้ใช้ที่เกี่ยวข้อง | SR03:011, SR04:004, SR06:004, SR06:005 | nodejs/server.js |
| UN11.002 | Node – Scheduler (ETL & Alerts) | สรุปยอดสต๊อก/GL, แจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระ ตามกำหนดเวลา Asia/Bangkok | SR03:011, SR05:002, SR01:006 | nodejs/scheduler.js, app/cron/ |
| UN12 — ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | | | | |
| UN12.001 | Security – Tenant Scope Guard | จำกัดทุก Query และ Action ให้อยู่ในบริษัท/คลังที่ผู้ใช้ได้รับอนุญาต | SR04:001, SR04:003, SR07:002 | StockTablesTrait.php, Manager classes |
| UN12.002 | Security – Server-side Validation | ตรวจสอบข้อมูลนำเข้า, Prepared Statements, Escape Output ป้องกัน SQLi/XSS | SR07:002, SR07:004 | Manager classes, app/assets/utils/ |
| UN12.003 | Security – Operation Lock & Usage Guard | ล็อกช่วงเวลาผ่านรายการ และจำกัดโควตารายการต่อบริษัท | SR07:002, SR09:003 | OperationLockManager.php, UsageGuard.php |
| UN12.003 | Security – Posting Window & Usage Guard | ปฏิเสธการผ่านรายการนอกช่วงเวลาที่เปิด และล็อกแดชบอร์ด/รายงานเมื่อใช้งานเกินแพ็กเกจ | SR07:002, SR09:003 | PostingWindowGuard.php, UsageGuard.php |
| UN12.004 | Security – TLS & Secret Configuration | ค่าตั้งค่า TLS, NODE_EMIT_SECRET และ Secrets ที่สร้างตอนติดตั้ง | SR07:001, SR01:005 | docker/php/config.php.template, .env |
| UN13 — ติดตั้งและสำรองข้อมูล (Deployment & Backup) | | | | |
| UN13.001 | Deploy – setup.php Schema Installer | สร้างฐานข้อมูล wms/wms2 และตารางทั้งหมดในขั้นตอนเดียว | SR01:003, SR08:005, SR06:001 | setup.php, docker/mariadb/init-wms2.sql |
| UN13.002 | Deploy – Docker Compose Stack | Container php-apache, mariadb, node/pm2 พร้อม Entrypoint สร้าง config.php | SR02:005, SR01:003 | docker-compose.yml, docker/ |
| UN13.002 | Deploy – Docker Compose Stack | Service db, php, node พร้อม Entrypoint สร้าง config.php | SR02:005, SR01:003 | docker-compose.yml, docker/ |
| UN13.003 | Deploy – .env Generator | สร้าง .env และความลับอัตโนมัติ ไม่เก็บใน Git | SR01:005 | docker/init-env.sh, .env.example |
| UN13.004 | Deploy – Backup & Restore | สำรอง Git 2 Remote, mysqldump รายวัน, ขั้นตอนกู้คืน | SR01:003 | Product Operation Guide, backup remote |
| UN13.004 | Deploy – Backup & Restore | สำรอง Git 2 Remote, สำรองฐานข้อมูลด้วย mysqldump และขั้นตอนกู้คืน | SR01:003 | Product Operation Guide, backup remote |
## ผู้จัดทำเอกสาร (Secretary)
@@ -67,7 +67,7 @@
| CR06: Security Considerations | | | | | | |
| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | SR07:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องผ่าน HTTPS/TLS | UN12.004 | Security – TLS & Secret Configuration | TC-UN12.004 |
| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | UN13.003, UN12.004 | Deploy – .env Generator / Security – TLS & Secret Configuration | TC-UN13.003, TC-UN12.004 |
| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.002 | Security – Server-side Validation | TC-UN12.002 |
| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.002, UN12.003 | Security – Server-side Validation / Security – Posting Window & Usage Guard | TC-UN12.002, TC-UN12.003 |
| CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | SR07:005 | RBAC (Owner/Admin/Staff/Viewer) ต้องบังคับใช้ที่ฝั่งเซิร์ฟเวอร์ ไม่ใช่เพียงการซ่อนเมนู | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 |
| CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | SR07:004 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting ทั้งด้านรับข้อมูลและแสดงผล | UN12.002 | Security – Server-side Validation | TC-UN12.002 |
| CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | SR07:003 | ระบบต้องอนุญาต Session ที่ใช้งานอยู่เพียงหนึ่งต่อบัญชี (บล็อก Concurrent Login) | UN01.003 | Identity – Password Recovery / OTP / Session | TC-UN01.003 |
@@ -65,7 +65,7 @@
| แจ้งเตือนและงานตามกำหนดเวลา (Notification & Scheduler) | UN11.002 | Node – Scheduler (ETL & Alerts) | พัฒนาแล้ว |
| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.001 | Security – Tenant Scope Guard | พัฒนาแล้ว |
| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.002 | Security – Server-side Validation | พัฒนาแล้ว |
| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.003 | Security – Operation Lock & Usage Guard | พัฒนาแล้ว |
| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.003 | Security – Posting Window & Usage Guard | พัฒนาแล้ว |
| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.004 | Security – TLS & Secret Configuration | พัฒนาแล้ว |
| ติดตั้งและสำรองข้อมูล (Deployment & Backup) | UN13.001 | Deploy – setup.php Schema Installer | พัฒนาแล้ว |
| ติดตั้งและสำรองข้อมูล (Deployment & Backup) | UN13.002 | Deploy – Docker Compose Stack | พัฒนาแล้ว |
@@ -31,7 +31,7 @@
| 1 | TC-UN01.001 | UN01.001 Identity – Register & Onboarding | ลงทะเบียนเจ้าของบริษัทใหม่ → ยืนยันอีเมล → เชิญผู้ใช้ → ผู้ใช้กดลิงก์เชิญ | สร้างบริษัท/บัญชีเจ้าของสำเร็จ ผู้ใช้ที่ถูกเชิญเข้าบริษัทที่ถูกต้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | ต้องส่งอีเมลได้จริง | - | Ready | ตามแผน 10–14 ส.ค. 69 |
| 2 | TC-UN01.002 | UN01.002 Identity – Login & Role Guard | เข้าสู่ระบบด้วยบัญชี Owner/Admin/Staff/Viewer แล้วเรียกหน้าและ Action ที่ไม่ได้รับสิทธิ์ | แต่ละบทบาทเข้าถึงได้เฉพาะหน้าจอ/คำสั่งที่อนุญาต คำสั่งที่ไม่ได้รับสิทธิ์ถูกปฏิเสธฝั่งเซิร์ฟเวอร์ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | ต้องมีบัญชีทดสอบครบ 4 บทบาท | TC-UN01.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 3 | TC-UN01.003 | UN01.003 Identity – Password Recovery / OTP / Session | ขอรีเซ็ตรหัสผ่าน → กรอก OTP → ตั้งรหัสใหม่; เข้าสู่ระบบบัญชีเดิมจาก 2 อุปกรณ์ | รีเซ็ตสำเร็จโดยไม่เปิดเผยรหัสผ่านเดิม Session ที่สองถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 4 | TC-UN01.004 | UN01.004 Identity – User & App-Access Administration | Admin เพิ่มผู้ใช้ เปลี่ยนบทบาท และปิดสิทธิ์แอปพลิเคชัน; Staff ลองทำรายการเดียวกัน | การเปลี่ยนแปลงของ Admin ถูกบันทึก Staff ถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 4 | TC-UN01.004 | UN01.004 Identity – User & App-Access Administration | Owner เชิญผู้ใช้ แก้ไขบทบาทและสิทธิ์แอปพลิเคชัน และลบผู้ใช้; Admin และ Staff ลองทำรายการเดียวกัน | การเปลี่ยนแปลงของ Owner ถูกบันทึก สิทธิ์แอปพลิเคชันไม่เกินสิทธิ์ของ Owner Admin และ Staff ถูกปฏิเสธ (HTTP 403) | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | บัญชี Owner, Admin, Staff ในบริษัทเดียวกัน | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 5 | TC-UN02.001 | UN02.001 Company – Profile & System Settings | แก้ไขข้อมูลบริษัทและค่าตั้งค่าระบบ | ค่าใหม่ถูกบันทึกและมีผลกับบริษัทนั้นเท่านั้น | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 6 | TC-UN02.002 | UN02.002 Company – SMTP & Mail Dispatch | ตั้งค่า SMTP แล้วส่งอีเมลทดสอบ/คำเชิญ | อีเมลถูกส่งผ่าน SMTP ของบริษัทและได้รับที่ปลายทาง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | ต้องมีบัญชี SMTP ทดสอบ | TC-UN02.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 7 | TC-UN03.001 | UN03.001 Master – Warehouse / Storage / Bin | เพิ่ม/แก้ไข/ปิดใช้ คลังสินค้า พื้นที่ และช่องจัดเก็บ; กรอกความจุไม่ถูกต้อง | รายการถูกต้องถูกบันทึก ข้อมูลผิดถูกปฏิเสธพร้อมข้อความ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
@@ -39,7 +39,7 @@
| 9 | TC-UN03.003 | UN03.003 Master – Contact | เพิ่มประเภทผู้ติดต่อ ลูกค้า และผู้ขาย | ผู้ติดต่อเลือกใช้ในเอกสารขาย/ซื้อได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 10 | TC-UN03.004 | UN03.004 Master – Warehouse Layer Configuration | ตั้งบริษัท A เป็นคลังชั้นเดียว บริษัท B เป็นคลัง/พื้นที่/ช่อง แล้วรับสินค้าเข้า | ทั้งสองบริษัททำรายการได้ถูกต้องตามโครงสร้างของตน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, 2 บริษัททดสอบ | - | TC-UN03.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 11 | TC-UN04.001 | UN04.001 ICS – Stock-in | รับสินค้าเข้า ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง; กรอกจำนวนติดลบ | สร้างความเคลื่อนไหวและยอดคงเหลือถูกต้อง จำนวนติดลบถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 12 | TC-UN04.002 | UN04.002 ICS – Stock-out | จ่ายสินค้าออกภายในยอดคงเหลือ และจ่ายเกินยอด | ยอดลดลงถูกต้อง การจ่ายเกินยอดถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 12 | TC-UN04.002 | UN04.002 ICS – Stock-out | จ่ายสินค้าออกจากช่องจัดเก็บที่มียอด; ยืนยันใบสั่งขายที่จำนวนเกินยอดคงเหลือ | ยอดช่องจัดเก็บลดเป็นศูนย์และบันทึกความเคลื่อนไหว ยอดไม่ติดลบ ใบสั่งขายที่เกินยอดถูกปฏิเสธพร้อมข้อความ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 13 | TC-UN04.003 | UN04.003 ICS – Stock Transfer | โอนย้ายระหว่าง 2 ตำแหน่งที่ได้รับอนุญาต | ต้นทางลด ปลายทางเพิ่ม ผูกเป็นรายการโอนเดียวและสอบกลับได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 14 | TC-UN04.004 | UN04.004 ICS – Lot / Serial / Expiry | รับสินค้าเข้าพร้อม Lot, Serial Number, วันหมดอายุ แล้วเปิดรายงาน Lot/หมดอายุ | ข้อมูลติดตามคงอยู่และแสดงในรายงานที่เกี่ยวข้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 15 | TC-UN04.005 | UN04.005 ICS – Barcode Label & Scan | พิมพ์ฉลาก SKU/ตำแหน่ง แล้วสแกน (หรือป้อนค่า) ในหน้าจอรับเข้า | ฉลากมีรหัสที่ใช้งานได้ ค่าที่สแกนถูกยอมรับ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, เครื่องสแกนหรือจำลอง | เครื่องพิมพ์/สแกน (ถ้ามี) | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
@@ -56,23 +56,23 @@
| 26 | TC-UN07.002 | UN07.002 Finance – Payment Billing & Payment | วางบิลจ่ายและบันทึกใบสำคัญจ่ายกับใบแจ้งหนี้ซื้อ | ยอดค้างจ่ายลดลง เอกสารเชื่อมโยงกันและมีประวัติ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.003 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 27 | TC-UN08.001 | UN08.001 Accounting – Chart of Accounts / Departments / Formulas | เพิ่มผังบัญชี แผนก และสูตรบัญชี | โครงสร้างบัญชีถูกบันทึกและใช้กับการผ่านรายการได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.004 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 28 | TC-UN08.002 | UN08.002 Accounting – Journal & GL Posting | บันทึกสมุดรายวันแบบสมดุลและแบบไม่สมดุล; จำลองความล้มเหลวระหว่างผ่านรายการ | รายการสมดุลถูกผ่าน GL รายการไม่สมดุลถูกปฏิเสธ ความล้มเหลวถูก Rollback ทั้งชุด | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | ต้องจำลองความล้มเหลวบน Testing Server | TC-UN08.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 29 | TC-UN09.001 | UN09.001 Reports – Dashboard & Aggregates | เปิดแดชบอร์ดคลังสินค้าและบัญชีหลังรันงานสรุปยอด | ตัวเลขตรงกับตารางสรุปยอดและแสดงผลภายในเวลาที่ใช้งานได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN11.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 29 | TC-UN09.001 | UN09.001 Reports – Dashboard & Aggregates | รันงานสรุปยอดแล้วเปิดแดชบอร์ดคลังสินค้าและบัญชี | ตัวเลขตรงกับตาราง etl_stock_summary และ etl_gl_summary และหน้าแดชบอร์ดแสดงผลภายใน 3 วินาที | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN11.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 30 | TC-UN09.002 | UN09.002 Reports – Stock Reports | เปิดรายงานภาพรวมสต๊อก ความเคลื่อนไหว ความจุ สินค้าใกล้หมด หมดอายุ และ Lot พร้อมตัวกรอง | รายงานแสดงข้อมูลที่ได้รับสิทธิ์ตามตัวกรอง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001–TC-UN04.004 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 31 | TC-UN09.003 | UN09.003 Reports – Financial Reports | เปิดงบทดลอง งบกำไรขาดทุน งบดุล VAT สมุดรายวัน และความเคลื่อนไหว GL | ยอดรวมสอดคล้องกันในงวดที่เลือก | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN08.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 31 | TC-UN09.003 | UN09.003 Reports – Financial Reports | เปิดงบทดลอง งบกำไรขาดทุน งบดุล VAT สมุดรายวัน และความเคลื่อนไหว GL ของงวดเดียวกัน | งบทดลองเดบิตเท่ากับเครดิต สินทรัพย์เท่ากับหนี้สินรวมส่วนของเจ้าของ และยอดในรายงานตรงกับสมุดรายวัน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN08.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 32 | TC-UN09.004 | UN09.004 Reports – Filter / Print / Export | กรอง ดู พิมพ์ และส่งออกรายงาน | ผลลัพธ์ตรงกับขอบเขตและตัวกรองที่เลือก | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN09.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 33 | TC-UN10.001 | UN10.001 Document – Numbering | สร้างเอกสารควบคุมหลายฉบับติดต่อกัน | เลขที่เอกสารเรียงตามลำดับที่ตั้งค่า ไม่ซ้ำ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 34 | TC-UN10.002 | UN10.002 Document – Lifecycle & Status | พยายามเปลี่ยนสถานะเอกสารข้ามขั้น; ลบเอกสารควบคุม | การเปลี่ยนสถานะที่ไม่ถูกต้องถูกปฏิเสธพร้อมข้อความ การลบต้องยืนยันก่อน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN10.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 35 | TC-UN10.003 | UN10.003 Document – Audit Fields & History | สร้างแล้วแก้ไขรายการ แล้วเปิดดูประวัติ | ผู้สร้าง ผู้แก้ไข วันที่ และสถานะถูกบันทึกครบ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 35 | TC-UN10.003 | UN10.003 Document – Audit Fields & History | สร้างแล้วแก้ไขรายการ แล้วเปิดดูประวัติรายการ | คอลัมน์ log บันทึกผู้ทำรายการ วันเวลา และข้อมูลที่ส่งครบทุกครั้ง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 36 | TC-UN11.001 | UN11.001 Node – Socket.IO Notification Server | เปลี่ยนสถานะเอกสารที่ต้องแจ้งเตือน; เรียก Endpoint แจ้งเตือนโดยไม่มี Secret | ผู้ใช้ที่เกี่ยวข้องได้รับแจ้งเตือน Real-time เท่านั้น การเรียกโดยไม่มี Secret ถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, Node.js + pm2, Internal Testing Server | บริการ Node.js ทำงานอยู่ | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 37 | TC-UN11.002 | UN11.002 Node – Scheduler (ETL & Alerts) | รันงานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด/ใบแจ้งหนี้ค้างชำระ; ตรวจเวลาบันทึกเทียบ Asia/Bangkok | งานเสร็จโดยไม่ซ้ำ ผลลัพธ์อยู่ในขอบเขตสิทธิ์ เวลาถูกต้องตามเขตเวลา | Node.js + pm2, Internal Testing Server | Scheduler ทำงานอยู่ | TC-UN04.001, TC-UN07.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 37 | TC-UN11.002 | UN11.002 Node – Scheduler (ETL & Alerts) | รันงานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด/ใบแจ้งหนี้ค้างชำระสองรอบติดกัน; ตรวจเวลาบันทึกเทียบ Asia/Bangkok | แถวสรุปยอดของงวดเดียวกันไม่เพิ่มซ้ำในรอบที่สอง แจ้งเตือนส่งเฉพาะบริษัทเจ้าของข้อมูล เวลาตรงกับ Asia/Bangkok | Node.js + pm2, Internal Testing Server | Scheduler ทำงานอยู่ | TC-UN04.001, TC-UN07.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 38 | TC-UN12.001 | UN12.001 Security – Tenant Scope Guard | ผู้ใช้บริษัท A เรียกข้อมูล/รายการของบริษัท B และคลังที่ไม่ได้รับสิทธิ์ ทั้งผ่าน UI และ URL/ API โดยตรง | ถูกปฏิเสธทุกช่องทาง ไม่มีข้อมูลรั่วไหลหรือถูกแก้ไข | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, 2 บริษัททดสอบ | - | TC-UN01.002, TC-UN03.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 39 | TC-UN12.002 | UN12.002 Security – Server-side Validation | ส่งข้อมูลนำเข้าที่มี SQL/Script และค่าที่ไม่ถูกต้องไปยัง Action ฝั่งเซิร์ฟเวอร์ | ถูกปฏิเสธหรือ Escape โดยไม่มีข้อมูลเปลี่ยนแปลงหรือ Script ทำงาน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, เครื่องมือทดสอบ API | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 40 | TC-UN12.003 | UN12.003 Security – Operation Lock & Usage Guard | ผ่านรายการในงวดที่ล็อก; ทำรายการเกินโควตาบริษัท | รายการถูกปฏิเสธพร้อมข้อความ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN08.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 40 | TC-UN12.003 | UN12.003 Security – Posting Window & Usage Guard | ผ่านรายการลงวันที่นอกช่วงเวลาที่เปิด; ใช้งานเกินจำนวนรายการของแพ็กเกจแล้วเปิดแดชบอร์ด/รายงาน | การผ่านรายการนอกช่วงถูกปฏิเสธพร้อมข้อความ แดชบอร์ด/รายงานถูกล็อก (HTTP 402) พร้อมข้อความให้ปรับแพ็กเกจ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | ตั้งช่วงเวลาผ่านรายการและแพ็กเกจทดสอบ | TC-UN08.002 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 41 | TC-UN12.004 | UN12.004 Security – TLS & Secret Configuration | ตรวจ Repository และสภาพแวดล้อมที่ติดตั้งว่ามีความลับหรือไฟล์ตั้งค่าเปิดเผยหรือไม่; เรียกผ่าน HTTPS | ไม่พบความลับใน Git หรือเข้าถึงได้จากเว็บ การเชื่อมต่อผ่าน TLS | Repository, Deployed Environment | - | - | Ready | ตามแผน 10–14 ส.ค. 69 |
| 42 | TC-UN13.001 | UN13.001 Deploy – setup.php Schema Installer | ติดตั้งบนเครื่องใหม่ด้วย setup.php | ฐานข้อมูลและตารางครบตาม SR08 โดยไม่แก้ Schema ด้วยมือ | Fresh Linux Server, PHP 8, MariaDB | ต้องใช้เครื่องว่าง | - | Ready | ตามแผน 10–14 ส.ค. 69 |
| 43 | TC-UN13.002 | UN13.002 Deploy – Docker Compose Stack | รัน docker compose up -d --build | Container php-apache, mariadb, node ทำงานและเข้าใช้ระบบได้ | Docker Host | - | TC-UN13.003 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 43 | TC-UN13.002 | UN13.002 Deploy – Docker Compose Stack | รัน docker compose up -d --build | Service db, php, node ทำงานและเข้าใช้ระบบได้ | Docker Host | - | TC-UN13.003 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 44 | TC-UN13.003 | UN13.003 Deploy – .env Generator | รัน docker/init-env.sh โดยเว้นค่าความลับว่าง | .env ถูกสร้างพร้อมความลับสุ่ม และไม่ถูก Git ติดตาม | Docker Host | - | - | Ready | ตามแผน 10–14 ส.ค. 69 |
| 45 | TC-UN13.004 | UN13.004 Deploy – Backup & Restore | สำรองฐานข้อมูล กู้คืนสู่สภาพแวดล้อมทดสอบ และ Clone จาก Backup Remote | ข้อมูลและ Source Code กู้คืนได้ครบตามขั้นตอนในคู่มือ | Testing Server, Backup Remote | ตาม Product Operation Guide | TC-UN13.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
| 45 | TC-UN13.004 | UN13.004 Deploy – Backup & Restore | สำรองฐานข้อมูลด้วย mysqldump กู้คืนสู่สภาพแวดล้อมทดสอบ และ Clone จาก Backup Remote | ข้อมูลและ Source Code กู้คืนได้ครบตามขั้นตอนในคู่มือ | Testing Server, Backup Remote | ตาม Product Operation Guide | TC-UN13.001 | Ready | ตามแผน 10–14 ส.ค. 69 |
## Summary
@@ -23,90 +23,67 @@
| 2 | Non-Functional Test | ประสิทธิภาพ, ความปลอดภัย (สิทธิ์/TLS/การเข้ารหัสรหัสผ่าน), การแยกข้อมูล, การสำรองและกู้คืน |
| 3 | Environment | Internal Testing Server (PHP 8, MariaDB, Node.js) |
| 4 | ช่วงเวลา | รอบทดสอบระบบ 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 5 | Baseline ที่ใช้ทดสอบ | สถานะ Repository ที่ใกล้เคียงที่สุด Commit `dd48a8b` |
| 5 | Build ที่ใช้ทดสอบ | Commit `b2c4374` บน Branch main (การแก้ไขโค้ดล่าสุดก่อนรอบทดสอบ) |
## สรุปผลการทดสอบ
| รายการ | จำนวน |
| --- | ---: |
| Test Case ที่กำหนดทั้งหมด | 45 |
| ดำเนินการทดสอบ | 45 |
| ผ่าน (Passed) | 45 |
| ไม่ผ่าน (Failed) | 0 |
| ค้าง (Blocked / Pending) | 0 |
| ดำเนินการทดสอบ | 43 |
| ผ่าน (Passed) | 38 |
| ไม่ผ่าน (Failed) | 5 |
| ยังไม่ได้ทดสอบ (ฟังก์ชันส่งมอบหลังรอบทดสอบ) | 2 |
## Verification Items
| No | Test Case | Software Testing | Customer Req. ID | Customer Req. Topic | Status | Test Date |
| :---: | :---: | --- | :---: | --- | :---: | :---: |
| 1 | TC-UN01.001 | ตรวจสอบ Identity – Register & Onboarding | CR01:001 | ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 2 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR01:002 | ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 3 | TC-UN01.003 | ตรวจสอบ Identity – Password Recovery / OTP / Session | CR01:003 | ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 4 | TC-UN01.004, TC-UN02.001, TC-UN02.002 | ตรวจสอบ Identity – User & App-Access Administration / Company – Profile & System Settings / Company – SMTP & Mail Dispatch | CR01:004 | ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 5 | TC-UN03.001, TC-UN03.002, TC-UN03.003 | ตรวจสอบ Master – Warehouse / Storage / Bin / Master – Product & Category / Master – Contact | CR01:005 | ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 6 | TC-UN03.004 | ตรวจสอบ Master – Warehouse Layer Configuration | CR01:006 | ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 7 | TC-UN04.001 | ตรวจสอบ ICS – Stock-in | CR01:007 | ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 8 | TC-UN04.002 | ตรวจสอบ ICS – Stock-out | CR01:008 | ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 9 | TC-UN04.003 | ตรวจสอบ ICS – Stock Transfer | CR01:009 | ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 10 | TC-UN04.004 | ตรวจสอบ ICS – Lot / Serial / Expiry | CR01:010 | ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 11 | TC-UN09.002 | ตรวจสอบ Reports – Stock Reports | CR01:011 | ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 12 | TC-UN04.005 | ตรวจสอบ ICS – Barcode Label & Scan | CR01:012 | ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 13 | TC-UN05.001, TC-UN05.002, TC-UN05.003, TC-UN05.004 | ตรวจสอบ Sales – Quotation / Sales – Sales Order / Sales – Invoice / Sales – Return / Credit Note | CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 14 | TC-UN06.001, TC-UN06.002, TC-UN06.003, TC-UN06.004 | ตรวจสอบ Purchasing – Purchase Request / Purchasing – Purchase Order / Purchasing – Purchase Invoice / Purchasing – Supplier Return | CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 15 | TC-UN07.001, TC-UN07.002 | ตรวจสอบ Finance – Receipt Billing & Receipt / Finance – Payment Billing & Payment | CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 16 | TC-UN08.001, TC-UN08.002 | ตรวจสอบ Accounting – Chart of Accounts / Departments / Formulas / Accounting – Journal & GL Posting | CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 17 | TC-UN09.003 | ตรวจสอบ Reports – Financial Reports | CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 18 | TC-UN10.001, TC-UN10.002 | ตรวจสอบ Document – Numbering / Document – Lifecycle & Status | CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 19 | TC-UN04.006 | ตรวจสอบ ICS – File Attachment | CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 20 | TC-UN09.004 | ตรวจสอบ Reports – Filter / Print / Export | CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 21 | TC-UN11.001 | ตรวจสอบ Node – Socket.IO Notification Server | CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 22 | TC-UN11.002 | ตรวจสอบ Node – Scheduler (ETL & Alerts) | CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 23 | TC-UN10.003 | ตรวจสอบ Document – Audit Fields & History | CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 24 | TC-UN12.001 | ตรวจสอบ Security – Tenant Scope Guard | CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 25 | TC-UN09.001 | ตรวจสอบ Reports – Dashboard & Aggregates | CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 26 | TC-UN09.001, TC-UN11.002 | ตรวจสอบ Reports – Dashboard & Aggregates / Node – Scheduler (ETL & Alerts) | CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 27 | TC-UN09.001 | ตรวจสอบ Reports – Dashboard & Aggregates | CR02:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 28 | TC-UN13.001 | ตรวจสอบ Deploy – setup.php Schema Installer | CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 29 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 30 | TC-UN11.001 | ตรวจสอบ Node – Socket.IO Notification Server | CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 31 | TC-UN11.001 | ตรวจสอบ Node – Socket.IO Notification Server | CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 32 | TC-UN02.002 | ตรวจสอบ Company – SMTP & Mail Dispatch | CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 33 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 34 | TC-UN13.001 | ตรวจสอบ Deploy – setup.php Schema Installer | CR04:002 | ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 35 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR04:003 | ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 36 | TC-UN13.001 | ตรวจสอบ Deploy – setup.php Schema Installer | CR04:004 | ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 37 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR05:001 | UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 38 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR05:002 | เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 39 | TC-UN10.002 | ตรวจสอบ Document – Lifecycle & Status | CR05:003 | ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 40 | TC-UN10.002 | ตรวจสอบ Document – Lifecycle & Status | CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 41 | TC-UN04.005 | ตรวจสอบ ICS – Barcode Label & Scan | CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 42 | TC-UN12.004 | ตรวจสอบ Security – TLS & Secret Configuration | CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 43 | TC-UN13.003, TC-UN12.004 | ตรวจสอบ Deploy – .env Generator / Security – TLS & Secret Configuration | CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 44 | TC-UN12.002 | ตรวจสอบ Security – Server-side Validation | CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 45 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 46 | TC-UN12.002 | ตรวจสอบ Security – Server-side Validation | CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 47 | TC-UN01.003 | ตรวจสอบ Identity – Password Recovery / OTP / Session | CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 48 | TC-UN13.001, TC-UN13.002 | ตรวจสอบ Deploy – setup.php Schema Installer / Deploy – Docker Compose Stack | CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 49 | TC-UN11.002 | ตรวจสอบ Node – Scheduler (ETL & Alerts) | CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 50 | TC-UN01.002 | ตรวจสอบ Identity – Login & Role Guard | CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 51 | TC-UN13.001 | ตรวจสอบ Deploy – setup.php Schema Installer | CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 52 | TC-UN13.004 | ตรวจสอบ Deploy – Backup & Restore | CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 53 | TC-UN13.004 | ตรวจสอบ Deploy – Backup & Restore | CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 54 | TC-UN12.001 | ตรวจสอบ Security – Tenant Scope Guard | CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 55 | TC-UN11.002 | ตรวจสอบ Node – Scheduler (ETL & Alerts) | CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 56 | TC-UN13.003 | ตรวจสอบ Deploy – .env Generator | CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 57 | TC-UN13.001 | ตรวจสอบ Deploy – setup.php Schema Installer | CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 58 | TC-UN13.001 | ตรวจสอบ Deploy – setup.php Schema Installer | CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 59 | TC-UN13.002 | ตรวจสอบ Deploy – Docker Compose Stack | CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 60 | TC-UN13.003 | ตรวจสอบ Deploy – .env Generator | CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 61 | TC-UN13.001, TC-UN13.002 | ตรวจสอบ Deploy – setup.php Schema Installer / Deploy – Docker Compose Stack | CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 62 | TC-UN13.001 | ตรวจสอบ Deploy – setup.php Schema Installer | CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 63 | TC-UN01.003 | ตรวจสอบ Identity – Password Recovery / OTP / Session | CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 64 | TC-UN08.002 | ตรวจสอบ Accounting – Journal & GL Posting | CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 65 | TC-UN04.002 | ตรวจสอบ ICS – Stock-out | CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 66 | TC-UN13.004 | ตรวจสอบ Deploy – Backup & Restore | CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 67 | TC-UN10.002 | ตรวจสอบ Document – Lifecycle & Status | CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 68 | TC-UN12.001, TC-UN12.002 | ตรวจสอบ Security – Tenant Scope Guard / Security – Server-side Validation | CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| No | Test Case | Software Unit | Customer Req. ID | Actual Result | Status | Test Date |
| :---: | :---: | --- | --- | --- | :---: | :---: |
| 1 | TC-UN01.001 | Identity – Register & Onboarding | CR01:001 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 2 | TC-UN01.002 | Identity – Login & Role Guard | CR01:002, CR03:002, CR04:001, CR04:003, CR05:001, CR05:002, CR06:004, CR07:003 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 3 | TC-UN01.003 | Identity – Password Recovery / OTP / Session | CR01:003, CR06:006, CR12:003 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 4 | TC-UN01.004 | Identity – User & App-Access Administration | CR01:004 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 5 | TC-UN02.001 | Company – Profile & System Settings | CR01:004 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 6 | TC-UN02.002 | Company – SMTP & Mail Dispatch | CR01:004, CR03:005 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 7 | TC-UN03.001 | Master – Warehouse / Storage / Bin | CR01:005 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 8 | TC-UN03.002 | Master – Product & Category | CR01:005 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 9 | TC-UN03.003 | Master – Contact | CR01:005 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 10 | TC-UN03.004 | Master – Warehouse Layer Configuration | CR01:006 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 11 | TC-UN04.001 | ICS – Stock-in | CR01:007 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 12 | TC-UN04.002 | ICS – Stock-out | CR01:008, CR13:002 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 13 | TC-UN04.003 | ICS – Stock Transfer | CR01:009 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 14 | TC-UN04.004 | ICS – Lot / Serial / Expiry | CR01:010 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 15 | TC-UN04.005 | ICS – Barcode Label & Scan | CR01:012, CR05:005 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 16 | TC-UN04.006 | ICS – File Attachment | CR01:019 | อัปโหลดและตรวจชนิด/ขนาดไฟล์ถูกต้อง แต่ไฟล์แนบอยู่ใต้ app/uploads/ ที่เว็บเปิดให้เรียกโดยตรง ผู้ที่ทราบ URL เปิดไฟล์ได้โดยไม่ตรวจ Session และบริษัท | Failed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 17 | TC-UN05.001 | Sales – Quotation | CR01:013 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 18 | TC-UN05.002 | Sales – Sales Order | CR01:013 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 19 | TC-UN05.003 | Sales – Invoice | CR01:013 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 20 | TC-UN05.004 | Sales – Return / Credit Note | CR01:013 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 21 | TC-UN06.001 | Purchasing – Purchase Request | CR01:014 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 22 | TC-UN06.002 | Purchasing – Purchase Order | CR01:014 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 23 | TC-UN06.003 | Purchasing – Purchase Invoice | CR01:014 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 24 | TC-UN06.004 | Purchasing – Supplier Return | CR01:014 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 25 | TC-UN07.001 | Finance – Receipt Billing & Receipt | CR01:015 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 26 | TC-UN07.002 | Finance – Payment Billing & Payment | CR01:015 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 27 | TC-UN08.001 | Accounting – Chart of Accounts / Departments / Formulas | CR01:016 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 28 | TC-UN08.002 | Accounting – Journal & GL Posting | CR01:016, CR13:001 | สมุดรายวันที่ไม่สมดุลถูกปฏิเสธ แต่เมื่อการผ่าน GL ล้มเหลว เอกสารที่บันทึกแล้วไม่ถูก Rollback เพราะการผ่าน GL แยก Transaction จากเอกสาร | Failed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 29 | TC-UN09.001 | Reports – Dashboard & Aggregates | CR02:001, CR02:002, CR02:003 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 30 | TC-UN09.002 | Reports – Stock Reports | CR01:011 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 31 | TC-UN09.003 | Reports – Financial Reports | CR01:017 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 32 | TC-UN09.004 | Reports – Filter / Print / Export | CR01:020 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 33 | TC-UN10.001 | Document – Numbering | CR01:018 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 34 | TC-UN10.002 | Document – Lifecycle & Status | CR01:018, CR05:003, CR05:004, CR13:004 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 35 | TC-UN10.003 | Document – Audit Fields & History | CR01:023 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 36 | TC-UN11.001 | Node – Socket.IO Notification Server | CR01:021, CR03:003, CR03:004 | การเรียก Endpoint แจ้งเตือนโดยไม่มี Secret ถูกปฏิเสธ แต่ Socket.IO รับ company_id, user_id และ role จาก Browser โดยไม่ตรวจกับ Session ผู้ที่ปลอมค่าได้รับแจ้งเตือนของบริษัทอื่น | Failed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 37 | TC-UN11.002 | Node – Scheduler (ETL & Alerts) | CR01:022, CR02:002, CR07:002, CR08:005 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 38 | TC-UN12.001 | Security – Tenant Scope Guard | CR01:024, CR08:004, CR14:004 | หน้าจอและ API ปฏิเสธการเข้าถึงข้ามบริษัทถูกต้อง แต่ช่องทาง Socket.IO ยังรับการแจ้งเตือนของบริษัทอื่นได้ | Failed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 39 | TC-UN12.002 | Security – Server-side Validation | CR06:003, CR06:005, CR14:004 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 40 | TC-UN12.003 | Security – Posting Window & Usage Guard | CR06:003 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 41 | TC-UN12.004 | Security – TLS & Secret Configuration | CR06:001, CR06:002 | ไม่พบไฟล์ .env หรือรหัสผ่านใน Git แต่แม่แบบค่าตั้งค่ากำหนดกุญแจเข้ารหัสและ IV คงที่ เชื่อมต่อฐานข้อมูลด้วยผู้ใช้ root และไม่มีหลักฐานการตั้งค่า HTTPS/TLS | Failed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 42 | TC-UN13.001 | Deploy – setup.php Schema Installer | CR03:001, CR04:002, CR04:004, CR07:001, CR07:004, CR09:004, CR10:001, CR10:004, CR12:001 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| 43 | TC-UN13.002 | Deploy – Docker Compose Stack | CR07:001, CR10:002, CR10:004 | ชุดติดตั้ง Docker Compose ยังไม่อยู่ใน Build ที่ทดสอบ ส่งมอบภายหลังใน Task 4.7 | Not tested | - |
| 44 | TC-UN13.003 | Deploy – .env Generator | CR06:002, CR09:002, CR10:003 | สคริปต์ docker/init-env.sh ยังไม่อยู่ใน Build ที่ทดสอบ ส่งมอบภายหลังใน Task 4.7 | Not tested | - |
| 45 | TC-UN13.004 | Deploy – Backup & Restore | CR08:001, CR08:002, CR13:003 | ผลตรงตามที่คาดหวัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
ความต้องการที่ยืนยันด้วย Test Case มี 68 รายการ ส่วนอีก 12 รายการเป็นความต้องการด้านเอกสาร การอบรม และหลักฐานด้านคุณภาพ ซึ่งยืนยันด้วยเอกสารส่งมอบตามที่ระบุใน Traceability Record และได้รับการยืนยันจากลูกค้าใน Validation Results
@@ -114,13 +91,14 @@
| No | Topic | Detail |
| :---: | --- | --- |
| 1 | Test Case | ทดสอบตาม Customer Requirements ผ่านทั้งหมด 45 Test Case คิดเป็น 100% |
| 2 | Pending | ไม่พบข้อผิดพลาด (Fail) หรือรายการค้าง (Pending) ในรอบการทดสอบนี้ |
| 3 | Conclusion | ผลการทดสอบสรุปได้ว่าระบบพร้อมสำหรับ UAT และการส่งมอบ เนื่องจากผลการทดสอบผ่านครบ 100% และเป็นไปตาม Project Plan |
| 1 | Test Case | ทดสอบ 43 จาก 45 Test Case ผ่าน 38 ไม่ผ่าน 5 |
| 2 | Failed | TC-UN04.006, TC-UN08.002, TC-UN11.001, TC-UN12.001, TC-UN12.004 บันทึกเป็นข้อบกพร่องคงค้าง ISS-029, ISS-030, ISS-031, ISS-032 ใน Correction Register |
| 3 | Not tested | TC-UN13.002, TC-UN13.003 ฟังก์ชันส่งมอบหลังรอบทดสอบ (Task 4.7) ต้องทดสอบก่อนใช้งาน |
| 4 | Conclusion | ฟังก์ชันหลักผ่านการทดสอบ แต่ยังมีข้อบกพร่องด้านความปลอดภัยและความถูกต้องของข้อมูลคงค้าง ต้องแจ้งผู้รับมอบและกำหนดการแก้ไขก่อนตรวจรับ |
## หลักฐานประกอบทางอ้อม
Correction Register บันทึกการแก้ไขข้อบกพร่องที่พบระหว่างพัฒนา 28 รายการ ซึ่งได้รับการแก้ไขและตรวจสอบผลด้วย Test Case ที่เกี่ยวข้องครบทุกรายการ
Correction Register บันทึกข้อบกพร่อง 32 รายการ แก้ไขแล้ว 28 รายการ และคงค้างจากรอบทดสอบนี้ 4 รายการ
## ผู้จัดทำเอกสาร (Secretary)
@@ -44,8 +44,8 @@
| :---: | --- | --- |
| 1 | Source Code และ Baseline | Commit `6c39700` ควบคุมใน Repository หลักและสำรอง |
| 2 | ชุดติดตั้งระบบ | Docker Compose Stack และสคริปต์ `setup.php` สำหรับสร้างฐานข้อมูล |
| 3 | ผลการทดสอบระบบ | Test Report 45 Test Case ผ่านทั้งหมด |
| 4 | ผลการทดสอบการยอมรับ | Validation Results ครบ 14 หมวด 80 รายการ ผ่านทั้งหมด |
| 3 | ผลการทดสอบระบบ | Test Report 45 Test Case ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 |
| 4 | ผลการทดสอบการยอมรับ | Validation Results 80 รายการ ผ่าน 60 ไม่ผ่าน 11 ยังไม่ได้ทดสอบ 5 รอดำเนินการ 4 |
| 5 | การตรวจรับส่งมอบ | เสนอ Project Sponsor ตรวจรับตามแผนในวันที่ 24 สิงหาคม 2569 (Acceptance Report) |
| 6 | คู่มือประกอบการใช้งาน | Software User Document, Product Operation Guide, Maintenance Document |
@@ -59,7 +59,7 @@
| ลำดับ | ขั้นตอน | รายละเอียด |
| :---: | --- | --- |
| 1 | ระบุส่วนประกอบที่เกี่ยวข้อง | ค้นหา Manager Class ที่รับผิดชอบจากเอกสาร Software Components ก่อนแก้ไขหน้าจอโดยตรง |
| 2 | ตรวจสอบประวัติข้อบกพร่อง | ตรวจสอบ Correction Register (28 รายการ) เพื่อไม่ให้การแก้ไขย้อนกลับผลการแก้ไขเดิม |
| 2 | ตรวจสอบประวัติข้อบกพร่อง | ตรวจสอบ Correction Register (32 รายการ) เพื่อไม่ให้การแก้ไขย้อนกลับผลการแก้ไขเดิม |
| 3 | ควบคุมการเปลี่ยนแปลง | หากกระทบขอบเขตหรือ Baseline ที่ส่งมอบแล้ว ต้องจัดทำ Change Report ก่อนดำเนินการ |
| 4 | ปรับปรุงฐานข้อมูล | สะท้อนการเปลี่ยนแปลงโครงสร้างใน `setup.php` และตาราง `schema_migrations` เสมอ |
| 5 | ทดสอบและบันทึกผล | ทดสอบด้วย Test Case ที่เกี่ยวข้อง แล้วบันทึกผลใน Correction Register |
@@ -6,7 +6,7 @@
| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด |
| Project Code | 200-WMS-26-001-00 |
| Title | บันทึกการตรวจสอบตามข้อกำหนดของมาตรฐาน |
| รอบตรวจสอบ | รอบที่ 4 (17 สิงหาคม 2569) | หัวข้อ | User Acceptance Test (UAT) และตรวจสอบเอกสารส่งมอบทั้งหมด |
| รอบตรวจสอบ | รอบที่ 4 (17 สิงหาคม 2569) | หัวข้อ | ทบทวนผลการทดสอบระบบและ UAT และตรวจสอบเอกสารส่งมอบทั้งหมด |
| เวลาตรวจสอบ | 09:00 – 16:00 น. | ระยะเวลา | 6 ชั่วโมง |
| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) |
| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) |
@@ -101,9 +101,9 @@
| VR04.080.003 | ใช้ถ้อยคำถูกต้องและสอดคล้องกับหน้าจอจริง | ตรวจสอบแล้วสอดคล้อง | Passed | YaB | |
| VR04.080.004 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | YaB | |
| WP 9.0 ระบบที่ผ่านการทดสอบพร้อมใช้งานจริง | | | | | |
| VR04.090.001 | ระบบติดตั้งและใช้งานได้บนสภาพแวดล้อมที่กำหนด | ติดตั้งสำเร็จและใช้งานได้ Baseline `6c39700` | Passed | ThS | |
| VR04.090.001 | ระบบติดตั้งและใช้งานได้บนสภาพแวดล้อมที่กำหนด | Build `b2c4374` ติดตั้งและใช้งานบน Internal Testing Server ได้ ชุดติดตั้ง Docker ใน Baseline `6c39700` ยังไม่ได้ทดสอบ | Failed | ThS | ทดสอบ TC-UN13.002 และ TC-UN13.003 บน Baseline ก่อนใช้งานจริง |
| VR04.090.002 | Source Code จัดเก็บใน Repository พร้อมชุดสำรอง | จัดเก็บครบทั้ง Repository หลักและสำรอง | Passed | ThS | |
| VR04.090.003 | ผลการทดสอบระบบผ่านครบทุก Test Case | ผ่านครบ 45 Test Case | Passed | ThS | |
| VR04.090.003 | ผลการทดสอบระบบผ่านครบทุก Test Case | ผ่าน 38 ไม่ผ่าน 5 ยังไม่ได้ทดสอบ 2 จาก 45 Test Case | Failed | ThS | ข้อบกพร่องคงค้างบันทึกใน Correction Register ต้องมีแผนแก้ไขก่อนตรวจรับ |
| WP 10.0 Product Operation Guide | | | | | |
| VR04.100.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | ThS | |
| VR04.100.002 | ระบุขั้นตอนการติดตั้งและตั้งค่าครบถ้วน | มีทั้งแบบ Container และแบบ Manual | Passed | ThS | |
@@ -120,11 +120,11 @@
| รายการ | จำนวน |
| --- | ---: |
| รายการตรวจสอบทั้งหมด | 61 |
| ผลผ่าน (Passed) | 61 |
| ผลไม่ผ่าน (Failed) | 0 |
| ประเด็นคงค้าง | 0 |
| ผลผ่าน (Passed) | 59 |
| ผลไม่ผ่าน (Failed) | 2 |
| ประเด็นคงค้าง | 2 |
รอบตรวจสอบนี้เป็นรอบสุดท้ายก่อนส่งมอบ ครอบคลุมสิ่งส่งมอบทั้งหมด 11 รายการ ผลการตรวจสอบผ่านทุกรายการ จึงเห็นควรให้ดำเนินการตรวจรับส่งมอบระบบตามที่บันทึกใน Acceptance Report
รอบตรวจสอบนี้เป็นรอบสุดท้ายก่อนส่งมอบ ครอบคลุมสิ่งส่งมอบทั้งหมด 11 รายการ ผ่าน 59 รายการ ไม่ผ่าน 2 รายการ คือผลการทดสอบระบบที่ยังมีข้อบกพร่องคงค้าง และชุดติดตั้ง Docker ที่ยังไม่ได้ทดสอบ จึงเสนอให้ผู้รับมอบพิจารณาการตรวจรับพร้อมแผนแก้ไขข้อบกพร่องคงค้าง
## ผู้จัดทำเอกสาร (Secretary)
@@ -24,7 +24,8 @@
| ผู้บันทึกผล | คุณปริญ งามขำ (QA/Tester) |
| ช่วงเวลาทดสอบ | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 |
| ขอบเขตการทดสอบ | Customer Requirements ครบ 14 หมวด 80 รายการ (CR01–CR14) |
| สถานะ Repository ที่ใกล้เคียงที่สุด | Commit `dd48a8b` |
| Build ที่ใช้ทดสอบ | Commit `b2c4374` บน Branch main |
| ลำดับการทดสอบ | ทดสอบการยอมรับคู่ขนานกับการทดสอบระบบตามมติที่ประชุม 10 ส.ค. 69 ซึ่งต่างจากเกณฑ์เข้าสู่ UAT ใน Test Case and Test Procedures |
## ตารางสรุป Validation Result ตาม Customer Requirements
@@ -46,15 +47,15 @@
| CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN05.001, TC-UN05.002, TC-UN05.003, TC-UN05.004 | Passed | SeV |
| CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN06.001, TC-UN06.002, TC-UN06.003, TC-UN06.004 | Passed | SeV |
| CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN07.001, TC-UN07.002 | Passed | SeV |
| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN08.001, TC-UN08.002 | Passed | SeV |
| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN08.001, TC-UN08.002 / ข้อบกพร่องคงค้าง ISS-030 | Failed | SeV |
| CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN09.003 | Passed | SeV |
| CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN10.001, TC-UN10.002 | Passed | SeV |
| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN04.006 | Passed | SeV |
| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN04.006 / ข้อบกพร่องคงค้าง ISS-029 | Failed | SeV |
| CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN09.004 | Passed | SeV |
| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN11.001 | Passed | SeV |
| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN11.001 / ข้อบกพร่องคงค้าง ISS-031 | Failed | SeV |
| CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN11.002 | Passed | SeV |
| CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN10.003 | Passed | SeV |
| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN12.001 | Passed | SeV |
| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | ทดลองใช้งานตามขั้นตอนธุรกิจจริงบนระบบ | TC-UN12.001 / ข้อบกพร่องคงค้าง ISS-031 | Failed | SeV |
| CR02 | **Performance Considerations** | | | | |
| CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | ใช้งานประจำวันบนสภาพแวดล้อมจริงและสังเกตเวลาตอบสนอง | TC-UN09.001 | Passed | SeV |
| CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | ใช้งานประจำวันบนสภาพแวดล้อมจริงและสังเกตเวลาตอบสนอง | TC-UN09.001, TC-UN11.002 | Passed | SeV |
@@ -62,8 +63,8 @@
| CR03 | **Interface Considerations** | | | | |
| CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | ใช้งานผ่าน Browser ที่กำหนด รับอีเมลและการแจ้งเตือนจริง | TC-UN13.001 | Passed | SeV |
| CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | ใช้งานผ่าน Browser ที่กำหนด รับอีเมลและการแจ้งเตือนจริง | TC-UN01.002 | Passed | SeV |
| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | ใช้งานผ่าน Browser ที่กำหนด รับอีเมลและการแจ้งเตือนจริง | TC-UN11.001 | Passed | SeV |
| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | ใช้งานผ่าน Browser ที่กำหนด รับอีเมลและการแจ้งเตือนจริง | TC-UN11.001 | Passed | SeV |
| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | ใช้งานผ่าน Browser ที่กำหนด รับอีเมลและการแจ้งเตือนจริง | TC-UN11.001 / ข้อบกพร่องคงค้าง ISS-031 | Failed | SeV |
| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | ใช้งานผ่าน Browser ที่กำหนด รับอีเมลและการแจ้งเตือนจริง | TC-UN11.001 / ข้อบกพร่องคงค้าง ISS-031 | Failed | SeV |
| CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | ใช้งานผ่าน Browser ที่กำหนด รับอีเมลและการแจ้งเตือนจริง | TC-UN02.002 | Passed | SeV |
| CR04 | **Required System Characteristics** | | | | |
| CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | ตรวจสอบสภาพแวดล้อมที่ติดตั้งและการเข้าสู่ระบบ | TC-UN01.002 | Passed | SeV |
@@ -77,45 +78,45 @@
| CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | ทดลองใช้งานบน Desktop และ Tablet/Mobile | TC-UN10.002 | Passed | SeV |
| CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | ทดลองใช้งานบน Desktop และ Tablet/Mobile | TC-UN04.005 | Passed | SeV |
| CR06 | **Security Considerations** | | | | |
| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN12.004 | Passed | SeV |
| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN13.003, TC-UN12.004 | Passed | SeV |
| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN12.002 | Passed | SeV |
| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN12.004 / ข้อบกพร่องคงค้าง ISS-032 | Failed | SeV |
| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN13.003, TC-UN12.004 / ข้อบกพร่องคงค้าง ISS-032 | Failed | SeV |
| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN12.002, TC-UN12.003 | Passed | SeV |
| CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN01.002 | Passed | SeV |
| CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN12.002 | Passed | SeV |
| CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | ตรวจสอบ HTTPS การจำกัดสิทธิ์ และการเข้าสู่ระบบซ้ำซ้อน | TC-UN01.003 | Passed | SeV |
| CR07 | **Environmental Considerations** | | | | |
| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | ตรวจสอบสภาพแวดล้อมจริง เขตเวลา และการแยกข้อมูลสาธิต | TC-UN13.001, TC-UN13.002 | Passed | SeV |
| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | ตรวจสอบสภาพแวดล้อมจริง เขตเวลา และการแยกข้อมูลสาธิต | TC-UN13.001, TC-UN13.002 | Not tested | SeV |
| CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | ตรวจสอบสภาพแวดล้อมจริง เขตเวลา และการแยกข้อมูลสาธิต | TC-UN11.002 | Passed | SeV |
| CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | ตรวจสอบสภาพแวดล้อมจริง เขตเวลา และการแยกข้อมูลสาธิต | TC-UN01.002 | Passed | SeV |
| CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | ตรวจสอบสภาพแวดล้อมจริง เขตเวลา และการแยกข้อมูลสาธิต | TC-UN13.001 | Passed | SeV |
| CR08 | **Operational Considerations** | | | | |
| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | TC-UN13.004 | Passed | SeV |
| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | TC-UN13.004 / รอปิดรายการ OP-001 สำรองฐานข้อมูลอัตโนมัติ | Pending | SeV |
| CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | TC-UN13.004 | Passed | SeV |
| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | Product Operation Guide (การเฝ้าระวังระบบ) | Passed | SeV |
| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | TC-UN12.001 | Passed | SeV |
| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | Product Operation Guide (การเฝ้าระวังระบบ) / รอปิดรายการ OP-002 การเฝ้าระวังและแจ้งเตือน | Pending | SeV |
| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | TC-UN12.001 / ข้อบกพร่องคงค้าง ISS-031 | Failed | SeV |
| CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | ตรวจสอบการสำรอง/กู้คืน การเฝ้าระวัง และการแยกข้อมูลหลายบริษัท | TC-UN11.002 | Passed | SeV |
| CR09 | **Maintenance Considerations** | | | | |
| CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | ทบทวนโครงสร้างซอฟต์แวร์และเอกสารการบำรุงรักษา | Software Design (Software Unit), Software Components | Passed | SeV |
| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | ทบทวนโครงสร้างซอฟต์แวร์และเอกสารการบำรุงรักษา | TC-UN13.003 | Passed | SeV |
| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | ทบทวนโครงสร้างซอฟต์แวร์และเอกสารการบำรุงรักษา | TC-UN13.003 | Not tested | SeV |
| CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | ทบทวนโครงสร้างซอฟต์แวร์และเอกสารการบำรุงรักษา | Maintenance Document, Correction Register | Passed | SeV |
| CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | ทบทวนโครงสร้างซอฟต์แวร์และเอกสารการบำรุงรักษา | TC-UN13.001 | Passed | SeV |
| CR10 | **Installation Considerations** | | | | |
| CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | สาธิตการติดตั้งตามขั้นตอนในคู่มือ | TC-UN13.001 | Passed | SeV |
| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | สาธิตการติดตั้งตามขั้นตอนในคู่มือ | TC-UN13.002 | Passed | SeV |
| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | สาธิตการติดตั้งตามขั้นตอนในคู่มือ | TC-UN13.003 | Passed | SeV |
| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | สาธิตการติดตั้งตามขั้นตอนในคู่มือ | TC-UN13.001, TC-UN13.002 / Product Operation Guide (ขั้นตอนติดตั้ง) | Passed | SeV |
| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | สาธิตการติดตั้งตามขั้นตอนในคู่มือ | TC-UN13.002 | Not tested | SeV |
| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | สาธิตการติดตั้งตามขั้นตอนในคู่มือ | TC-UN13.003 | Not tested | SeV |
| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | สาธิตการติดตั้งตามขั้นตอนในคู่มือ | TC-UN13.001, TC-UN13.002 / Product Operation Guide (ขั้นตอนติดตั้ง) | Not tested | SeV |
| CR11 | **Support Considerations** | | | | |
| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | ทบทวนคู่มือ แผนการอบรม และช่องทางสนับสนุน | Software User Document (WP 8.0) | Passed | SeV |
| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | ทบทวนคู่มือ แผนการอบรม และช่องทางสนับสนุน | Product Operation Guide (WP 10.0) | Passed | SeV |
| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | ทบทวนคู่มือ แผนการอบรม และช่องทางสนับสนุน | แผนการอบรมก่อนเปิดใช้งาน (Task 5.2) | Passed | SeV |
| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | ทบทวนคู่มือ แผนการอบรม และช่องทางสนับสนุน | แผนการอบรมก่อนเปิดใช้งาน (Task 5.2) / รอการอบรมผู้ใช้งานตามแผน | Pending | SeV |
| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | ทบทวนคู่มือ แผนการอบรม และช่องทางสนับสนุน | Maintenance Document (SLA) | Passed | SeV |
| CR12 | **Design Constraints** | | | | |
| CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | ตรวจสอบเทคโนโลยี การควบคุม Source Code และเอกสารตามมาตรฐาน | TC-UN13.001 | Passed | SeV |
| CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | ตรวจสอบเทคโนโลยี การควบคุม Source Code และเอกสารตามมาตรฐาน | Software Configuration, Project Repository | Passed | SeV |
| CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | ตรวจสอบเทคโนโลยี การควบคุม Source Code และเอกสารตามมาตรฐาน | TC-UN01.003 | Passed | SeV |
| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | ตรวจสอบเทคโนโลยี การควบคุม Source Code และเอกสารตามมาตรฐาน | Verification Results รอบที่ 1–3 | Passed | SeV |
| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | ตรวจสอบเทคโนโลยี การควบคุม Source Code และเอกสารตามมาตรฐาน | Verification Results รอบที่ 1–3 / รอจัดทำ List of Evidence ตอนปิดโครงการ | Pending | SeV |
| CR13 | **Safety and Reliability Considerations** | | | | |
| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | ทดลองทำรายการที่ล้มเหลวและตรวจสอบข้อความแจ้งข้อผิดพลาด | TC-UN08.002 | Passed | SeV |
| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | ทดลองทำรายการที่ล้มเหลวและตรวจสอบข้อความแจ้งข้อผิดพลาด | TC-UN08.002 / ข้อบกพร่องคงค้าง ISS-030 | Failed | SeV |
| CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | ทดลองทำรายการที่ล้มเหลวและตรวจสอบข้อความแจ้งข้อผิดพลาด | TC-UN04.002 | Passed | SeV |
| CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | ทดลองทำรายการที่ล้มเหลวและตรวจสอบข้อความแจ้งข้อผิดพลาด | TC-UN13.004 | Passed | SeV |
| CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | ทดลองทำรายการที่ล้มเหลวและตรวจสอบข้อความแจ้งข้อผิดพลาด | TC-UN10.002 | Passed | SeV |
@@ -123,26 +124,26 @@
| CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | ทบทวนผลการทดสอบ การสอบกลับ และผลการตรวจสอบ | Test Report | Passed | SeV |
| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | ทบทวนผลการทดสอบ การสอบกลับ และผลการตรวจสอบ | Traceability Record | Passed | SeV |
| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | ทบทวนผลการทดสอบ การสอบกลับ และผลการตรวจสอบ | ผลการทดสอบการยอมรับในเอกสารฉบับนี้ | Passed | SeV |
| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | ทบทวนผลการทดสอบ การสอบกลับ และผลการตรวจสอบ | TC-UN12.001, TC-UN12.002 / Test Report, Correction Register | Passed | SeV |
| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | ทบทวนผลการทดสอบ การสอบกลับ และผลการตรวจสอบ | TC-UN12.001, TC-UN12.002 / Test Report, Correction Register / ข้อบกพร่องคงค้าง ISS-031 | Failed | SeV |
## สรุปผลการทดสอบการยอมรับรายหมวด
| หมวดความต้องการ | จำนวนรายการ | ผ่าน (Passed) | ไม่ผ่าน (Failed) |
| --- | ---: | ---: | ---: |
| CR01 Feature & Functional Characteristics | 24 | 24 | 0 |
| CR02 Performance Considerations | 3 | 3 | 0 |
| CR03 Interface Considerations | 5 | 5 | 0 |
| CR04 Required System Characteristics | 4 | 4 | 0 |
| CR05 Human Engineering Considerations | 5 | 5 | 0 |
| CR06 Security Considerations | 6 | 6 | 0 |
| CR07 Environmental Considerations | 4 | 4 | 0 |
| CR08 Operational Considerations | 5 | 5 | 0 |
| CR09 Maintenance Considerations | 4 | 4 | 0 |
| CR10 Installation Considerations | 4 | 4 | 0 |
| CR11 Support Considerations | 4 | 4 | 0 |
| CR12 Design Constraints | 4 | 4 | 0 |
| CR13 Safety and Reliability Considerations | 4 | 4 | 0 |
| CR14 Quality Expectations | 4 | 4 | 0 |
| หมวดความต้องการ | จำนวนรายการ | ผ่าน (Passed) | ไม่ผ่าน (Failed) | ยังไม่ได้ทดสอบ / รอดำเนินการ |
| --- | ---: | ---: | ---: | ---: |
| CR01 Feature & Functional Characteristics | 24 | 20 | 4 | 0 |
| CR02 Performance Considerations | 3 | 3 | 0 | 0 |
| CR03 Interface Considerations | 5 | 3 | 2 | 0 |
| CR04 Required System Characteristics | 4 | 4 | 0 | 0 |
| CR05 Human Engineering Considerations | 5 | 5 | 0 | 0 |
| CR06 Security Considerations | 6 | 4 | 2 | 0 |
| CR07 Environmental Considerations | 4 | 3 | 0 | 1 |
| CR08 Operational Considerations | 5 | 2 | 1 | 2 |
| CR09 Maintenance Considerations | 4 | 3 | 0 | 1 |
| CR10 Installation Considerations | 4 | 1 | 0 | 3 |
| CR11 Support Considerations | 4 | 3 | 0 | 1 |
| CR12 Design Constraints | 4 | 3 | 0 | 1 |
| CR13 Safety and Reliability Considerations | 4 | 3 | 1 | 0 |
| CR14 Quality Expectations | 4 | 3 | 1 | 0 |
## สรุปผลการทดสอบการยอมรับ
@@ -150,11 +151,12 @@
| --- | ---: |
| หมวดความต้องการที่ทดสอบ | 14 |
| ความต้องการที่ทดสอบทั้งหมด | 80 |
| ผ่าน (Passed) | 80 |
| ไม่ผ่าน (Failed) | 0 |
| ค้างการทดสอบ | 0 |
| ผ่าน (Passed) | 60 |
| ไม่ผ่าน (Failed) | 11 |
| ยังไม่ได้ทดสอบ (ฟังก์ชันส่งมอบหลังรอบทดสอบ) | 5 |
| รอดำเนินการตามแผน (Pending) | 4 |
ตัวแทนลูกค้าได้ทดสอบการยอมรับครบทุกความต้องการใน Customer Requirements บนสภาพแวดล้อมใช้งานจริง ผลการทดสอบผ่านทั้งหมด ไม่พบประเด็นที่ขัดขวางการเปิดใช้งาน จึงยืนยันความพร้อมของระบบและเสนอเข้าสู่การตรวจรับส่งมอบตามแผนในวันที่ 24 สิงหาคม 2569
ตัวแทนลูกค้าทดสอบการยอมรับครบ 80 ความต้องการ ผ่าน 60 รายการ ความต้องการ 11 รายการไม่ผ่านเนื่องจากข้อบกพร่องคงค้างที่บันทึกใน Correction Register 5 รายการขึ้นกับชุดติดตั้ง Docker ที่ส่งมอบหลังรอบทดสอบ และ 4 รายการรองานปฏิบัติการตามแผน ผู้รับมอบรับทราบผลและจะพิจารณาการตรวจรับพร้อมแผนแก้ไขในวันที่ 24 สิงหาคม 2569
## ผู้จัดทำเอกสาร (Secretary)
@@ -33,22 +33,22 @@
| CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | SR03:005, SR04:002 | UN05.001, UN05.002, UN05.003, UN05.004 | TC-UN05.001, TC-UN05.002, TC-UN05.003, TC-UN05.004 | - | Passed | Passed |
| CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | SR03:006, SR04:002 | UN06.001, UN06.002, UN06.003, UN06.004 | TC-UN06.001, TC-UN06.002, TC-UN06.003, TC-UN06.004 | - | Passed | Passed |
| CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | SR03:007, SR04:002 | UN07.001, UN07.002 | TC-UN07.001, TC-UN07.002 | - | Passed | Passed |
| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | SR03:008 | UN08.001, UN08.002 | TC-UN08.001, TC-UN08.002 | - | Passed | Passed |
| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | SR03:008 | UN08.001, UN08.002 | TC-UN08.001, TC-UN08.002 | - | Failed | Failed |
| CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | SR03:009 | UN09.003 | TC-UN09.003 | - | Passed | Passed |
| CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | SR03:010, SR04:005, SR08:004 | UN10.001, UN10.002 | TC-UN10.001, TC-UN10.002 | - | Passed | Passed |
| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | SR03:004 | UN04.006 | TC-UN04.006 | - | Passed | Passed |
| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | SR03:004 | UN04.006 | TC-UN04.006 | - | Failed | Failed |
| CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | SR03:009 | UN09.004 | TC-UN09.004 | - | Passed | Passed |
| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | SR03:011, SR04:004, SR06:005 | UN11.001 | TC-UN11.001 | - | Passed | Passed |
| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | SR03:011, SR04:004, SR06:005 | UN11.001 | TC-UN11.001 | - | Failed | Failed |
| CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | SR03:011, SR05:002, SR08:004 | UN11.002 | TC-UN11.002 | - | Passed | Passed |
| CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | SR03:010, SR09:001 | UN10.003 | TC-UN10.003 | - | Passed | Passed |
| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | SR04:001, SR04:003, SR07:002 | UN12.001 | TC-UN12.001 | - | Passed | Passed |
| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | SR04:001, SR04:003, SR07:002 | UN12.001 | TC-UN12.001 | - | Failed | Failed |
| CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | SR05:001 | UN09.001 | TC-UN09.001 | - | Passed | Passed |
| CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | SR05:002 | UN09.001, UN11.002 | TC-UN09.001, TC-UN11.002 | - | Passed | Passed |
| CR02:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | SR05:003 | UN09.001 | TC-UN09.001 | - | Passed | Passed |
| CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | SR06:001 | UN13.001 | TC-UN13.001 | - | Passed | Passed |
| CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | SR06:002 | UN01.002 | TC-UN01.002 | - | Passed | Passed |
| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | SR06:004, SR04:004 | UN11.001 | TC-UN11.001 | - | Passed | Passed |
| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | SR06:005 | UN11.001 | TC-UN11.001 | - | Passed | Passed |
| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | SR06:004, SR04:004 | UN11.001 | TC-UN11.001 | - | Failed | Failed |
| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | SR06:005 | UN11.001 | TC-UN11.001 | - | Failed | Failed |
| CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | SR06:004, SR03:002 | UN02.002 | TC-UN02.002 | - | Passed | Passed |
| CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | SR02:001 | UN01.002 | TC-UN01.002 | - | Passed | Passed |
| CR04:002 | ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity | SR08:001, SR08:002, SR08:003 | UN13.001 | TC-UN13.001 | - | Passed | Passed |
@@ -59,45 +59,45 @@
| CR05:003 | ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน | SR09:002 | UN10.002 | TC-UN10.002 | - | Passed | Passed |
| CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | SR09:001 | UN10.002 | TC-UN10.002 | - | Passed | Passed |
| CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | SR03:004 | UN04.005 | TC-UN04.005 | - | Passed | Passed |
| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | SR07:001 | UN12.004 | TC-UN12.004 | - | Passed | Passed |
| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | SR01:005 | UN13.003, UN12.004 | TC-UN13.003, TC-UN12.004 | - | Passed | Passed |
| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | SR07:002 | UN12.002 | TC-UN12.002 | - | Passed | Passed |
| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | SR07:001 | UN12.004 | TC-UN12.004 | - | Failed | Failed |
| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | SR01:005 | UN13.003, UN12.004 | TC-UN13.003, TC-UN12.004 | - | Failed | Failed |
| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | SR07:002 | UN12.002, UN12.003 | TC-UN12.002, TC-UN12.003 | - | Passed | Passed |
| CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | SR07:005 | UN01.002 | TC-UN01.002 | - | Passed | Passed |
| CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | SR07:004 | UN12.002 | TC-UN12.002 | - | Passed | Passed |
| CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | SR07:003 | UN01.003 | TC-UN01.003 | - | Passed | Passed |
| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | SR01:003 | UN13.001, UN13.002 | TC-UN13.001, TC-UN13.002 | - | Passed | Passed |
| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | SR01:003 | UN13.001, UN13.002 | TC-UN13.001, TC-UN13.002 | - | Not tested | Not tested |
| CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | SR01:006 | UN11.002 | TC-UN11.002 | - | Passed | Passed |
| CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | SR06:003, SR02:002 | UN01.002 | TC-UN01.002 | - | Passed | Passed |
| CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | SR01:003 | UN13.001 | TC-UN13.001 | - | Passed | Passed |
| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | SR01:003 | UN13.004 | TC-UN13.004 | - | Passed | Passed |
| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | SR01:003 | UN13.004 | TC-UN13.004 | - | Pending | Pending |
| CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | SR01:003 | UN13.004 | TC-UN13.004 | - | Passed | Passed |
| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | SR05:004 | - | - | Product Operation Guide (การเฝ้าระวังระบบ) | Passed | Passed |
| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | SR04:003 | UN12.001 | TC-UN12.001 | - | Passed | Passed |
| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | SR05:004 | - | - | Product Operation Guide (การเฝ้าระวังระบบ) | - | Pending |
| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | SR04:003 | UN12.001 | TC-UN12.001 | - | Failed | Failed |
| CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | SR05:002 | UN11.002 | TC-UN11.002 | - | Passed | Passed |
| CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | SR02:003, SR02:004 | - | - | Software Design (Software Unit), Software Components | Passed | Passed |
| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | SR01:005 | UN13.003 | TC-UN13.003 | - | Passed | Passed |
| CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | SR01:001 | - | - | Maintenance Document, Correction Register | Passed | Passed |
| CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | SR02:003, SR02:004 | - | - | Software Design (Software Unit), Software Components | - | Passed |
| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | SR01:005 | UN13.003 | TC-UN13.003 | - | Not tested | Not tested |
| CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | SR01:001 | - | - | Maintenance Document, Correction Register | - | Passed |
| CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | SR08:005, SR08:004 | UN13.001 | TC-UN13.001 | - | Passed | Passed |
| CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | SR01:003, SR08:005 | UN13.001 | TC-UN13.001 | - | Passed | Passed |
| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | SR02:005 | UN13.002 | TC-UN13.002 | - | Passed | Passed |
| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | SR01:005 | UN13.003 | TC-UN13.003 | - | Passed | Passed |
| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | SR01:001 | UN13.001, UN13.002 | TC-UN13.001, TC-UN13.002 | Product Operation Guide (ขั้นตอนติดตั้ง) | Passed | Passed |
| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | SR01:001 | - | - | Software User Document (WP 8.0) | Passed | Passed |
| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | SR01:001 | - | - | Product Operation Guide (WP 10.0) | Passed | Passed |
| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | SR01:001 | - | - | Training Report | Passed | Passed |
| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | SR01:001 | - | - | Maintenance Document (SLA) | Passed | Passed |
| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | SR02:005 | UN13.002 | TC-UN13.002 | - | Not tested | Not tested |
| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | SR01:005 | UN13.003 | TC-UN13.003 | - | Not tested | Not tested |
| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | SR01:001 | UN13.001, UN13.002 | TC-UN13.001, TC-UN13.002 | Product Operation Guide (ขั้นตอนติดตั้ง) | Not tested | Not tested |
| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | SR01:001 | - | - | Software User Document (WP 8.0) | - | Passed |
| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | SR01:001 | - | - | Product Operation Guide (WP 10.0) | - | Passed |
| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | SR01:001 | - | - | Training Report (ตามแผน 22 ส.ค. 69) | - | Pending |
| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | SR01:001 | - | - | Maintenance Document (SLA) | - | Passed |
| CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | SR01:002 | UN13.001 | TC-UN13.001 | - | Passed | Passed |
| CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | SR01:001 | - | - | Software Configuration, Project Repository | Passed | Passed |
| CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | SR01:001 | - | - | Software Configuration, Project Repository | - | Passed |
| CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | SR01:004 | UN01.003 | TC-UN01.003 | - | Passed | Passed |
| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | SR01:001 | - | - | List of Evidence, Verification Results | Passed | Passed |
| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | SR09:003 | UN08.002 | TC-UN08.002 | - | Passed | Passed |
| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | SR01:001 | - | - | List of Evidence (ตามแผน 24 ส.ค. 69), Verification Results | - | Pending |
| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | SR09:003 | UN08.002 | TC-UN08.002 | - | Failed | Failed |
| CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | SR09:003 | UN04.002 | TC-UN04.002 | - | Passed | Passed |
| CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | SR01:003 | UN13.004 | TC-UN13.004 | - | Passed | Passed |
| CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | SR09:002 | UN10.002 | TC-UN10.002 | - | Passed | Passed |
| CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | SR01:001 | - | - | Test Report | Passed | Passed |
| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | SR01:001 | - | - | Traceability Record | Passed | Passed |
| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | SR01:001 | - | - | Validation Results, Acceptance Report | Passed | Passed |
| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | SR07:002 | UN12.001, UN12.002 | TC-UN12.001, TC-UN12.002 | Test Report, Correction Register | Passed | Passed |
| CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | SR01:001 | - | - | Test Report | - | Passed |
| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | SR01:001 | - | - | Traceability Record | - | Passed |
| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | SR01:001 | - | - | Validation Results, Acceptance Report (ตามแผน 24 ส.ค. 69) | - | Passed |
| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | SR07:002 | UN12.001, UN12.002 | TC-UN12.001, TC-UN12.002 | Test Report, Correction Register | Failed | Failed |
## สรุปความครอบคลุม
@@ -108,8 +108,10 @@
| เชื่อมโยงกับ Software Unit | 68 |
| เชื่อมโยงกับ Test Case | 68 |
| ยืนยันด้วยเอกสารส่งมอบ (ไม่มี Software Unit) | 12 |
| ผลการทดสอบหรือการตรวจสอบเอกสารผ่าน | 80 |
| ผลการทดสอบการยอมรับผ่าน | 80 |
| ผ่าน (Passed) | 60 |
| ไม่ผ่าน (Failed) — ข้อบกพร่องคงค้างใน Correction Register | 11 |
| ยังไม่ได้ทดสอบ (ชุดติดตั้ง Docker ส่งมอบหลังรอบทดสอบ) | 5 |
| รอดำเนินการตามแผน (Pending) | 4 |
## ผู้จัดทำเอกสาร (Secretary)
+6 -5
View File
@@ -11,9 +11,9 @@
| How did you track progress, and what did you do when something slipped? | Progress Status Records (15 periods), Minutes of Meeting |
| What risks did you identify, and were they reviewed? | Software Project Plan §9 (R1–R8); expect "show me a risk that changed during the project" |
| How were changes requested, assessed and approved? | Change Report |
| How were defects recorded and closed? | Correction Register ISS-001–028, each linked to a commit and a test case |
| How were defects recorded and closed? | Correction Register: ISS-001–028 fixed, each linked to a commit and a test case; ISS-029–032 open from the system test, handed to corrective maintenance |
| How is the repository controlled and backed up? | Project Repository, Project Repository (Backup), Software Configuration (`main`, baseline `6c39700`) |
| Did the customer formally accept the product? | Acceptance Report, Validation Results |
| Did the customer formally accept the product? | Acceptance Report (Accepted with conditions), Validation Results, Minutes of Meeting 24 Aug |
### Software Implementation (SI)
@@ -23,7 +23,7 @@
| Pick one requirement and show its design, code, test and result | Traceability Record — most common test; rehearse 2–3 requirements end to end |
| Show the design and how it maps to the code | Software Design (units UN01–UN13 with file paths) |
| Who reviewed which documents, what was found, and how was it fixed? | Verification Results V0.1–V1.0 (4 rounds) |
| Show the test cases and test results, including a failure and its retest | Test Case and Test Procedures (45), Test Report, Correction Register |
| Show the test cases and test results, including a failure and its retest | Test Case and Test Procedures (45), Test Report (38 passed, 5 failed, 2 not tested), Correction Register |
| What exactly was delivered, and can you rebuild it? | Software, Software Components, Product Operation Guide |
| Are user, operation and maintenance documents available? | Software User Document, Product Operation Guide, Maintenance Document |
@@ -32,6 +32,7 @@
| Point | What to show | What to say |
|---|---|---|
| No change requests in 8 months | Change Report parts 1–3; Minutes of Meeting 18 May (Rack → Bin), 10 Aug (Task 4.7 decided) and 19 Aug / 24 Aug (Task 4.7 done) | "Change control was used: 3 items were judged against the criteria and none qualified." Rehearse the advisor's test: "if we removed it, could we still deliver?" |
| All 45 test cases passed in one run | Correction Register: 28 issues found and fixed during development, each linked to a commit and a test case; Test Case and Test Procedures pass rule: defects logged and retested until they pass | "The formal run came after the defects were fixed, so a clean run is the result of that work." If git history has real failing test runs, have one ready |
| Open defects at acceptance | Test Report: TC-UN04.006, TC-UN08.002, TC-UN11.001, TC-UN12.001, TC-UN12.004 failed, TC-UN13.002–003 not tested; Correction Register ISS-029–032; Acceptance Report conditions; Minutes 24 Aug actions | "The run found four high-severity defects. We recorded them, told the sponsor, and acceptance was conditional on fixing them under corrective maintenance." Be ready to show the fix plan and its status. Do not claim they were fixed before 24 Aug |
| UAT ran alongside the system test | Validation Results (test order row); Minutes of Meeting 10 Aug | "The entry criterion said UAT after 100% pass. The sponsor approved running both in 10–14 Aug at the 10 Aug meeting, and the deviation is recorded in Validation Results." |
| Risks never re-rated | Software Project Plan R1–R8; risk table in every Progress Status Record | Pick 1–2 risks that actually occurred (R1 → Rack/Bin decision; R7 → evidence prepared before UAT) and show where they were handled. Do not change ratings in the records now |
| Interviews must match the documents | One rehearsal session with the three people | Developer: how a defect is logged (ISS-002 → commit `92d116f` → TC-UN08.002). QA: run TC-UN08.002 (rollback test). PM: trace CR13:001 → SR09:003 → UN08.002 → TC-UN08.002 → Passed in Test Report and Validation Results |
| Interviews must match the documents | One rehearsal session with the three people | Developer: a fixed defect (ISS-002 → commit `92d116f` → TC-UN04.002) and an open one (ISS-030 → TC-UN08.002, GL posting outside the document transaction). QA: run TC-UN04.002 and show the TC-UN08.002 failure. PM: trace CR13:001 → SR09:003 → UN08.002 → TC-UN08.002 → Failed → ISS-030 → acceptance condition |