<BugDay-MiniEvent #04> ห้องปฏิบัติการ SQUAT กับการทดสอบซอฟต์แวร์ใน IoT & Robot โดย ดร.ฝน — NECTEC #LearningWithSCK

Parima Spd
6 min readMay 29, 2024

--

แนะนำตัว

ก่อนหน้า ดร.ฝน เคยเป็น SA, Tester, Project Manager ทำ CMMI ทำ ISO ใดๆ และมาจบที่การ Testing

รู้หรือไม่ ผลิตภัณฑ์อย่าง Software ไม่ได้ผ่านตามข้อกำหนดมาตรฐานเสมอไป แล้วผลความซวยก็ตกอยู่กับผู้บริโภค

แล้วเราจะรู้ได้ยังไง ว่าผลิตภัณฑ์ Software ที่เราใช้ ผ่านมาตรฐานอะไรบ้าง มีการตรวจสอบอย่างไร?

แม้ผู้ผลิตจะมี Testig Lab ก็อาจจะไม่ได้คุณภาพเสมอไป

SQUAT — Software Quality Testing Laboratory ห้องปฏิบัติการทดสอบ Software แห่งแรกของประเทศไทย

ที่ผ่านการรับรองความสามารถห้องปฏิบัติการทดสอบตาม มาตรฐาน มอก. 17025 (ISO/IEC 17025) ที่ให้บริการทดสอบระบบซอฟต์แวร์ตามมาตรฐาน หรือข้อกำหนดของระบบเพื่อเป็นการยกระดับศักยภาพของระบบอุตสาหกรรมไทย ซึ่งจัดตั้งขึ้นภายใต้ เนคเทค สวทช. อีกทั้งยังได้รับงบประมาณสนับสนุนจาก กองทุนวิจัยและพัฒนากิจการกระจายเสียง กิจการโทรทัศน์ และกิจการโทรคมนาคม เพื่อประโยชน์สาธารณะ (กทปส.) ภายใต้ สำนักงานคณะกรรมการกิจการกระจายเสียง กิจการโทรทัศน์ และกิจการโทรคมนาคมแห่งชาติ (กสทช.) อีกด้วย

มอก.17025 (ISO/IEC 17025) เป็น ข้อกำหนดทั่วไปว่าด้วยความสามารถห้องปฏิบัติการในการดำเนินการทดสอบและ/ หรือสอบเทียบ ซึ่งจะประกอบด้วยข้อกำหนดด้านการบริหารงานคุณภาพและ ข้อกำหนดด้านวิชาการ (มอก.17025 คืออะไร)

https://www.nectec.or.th/news/news-article/squat-introduce.html

1. Software System หรือ ระบบซอฟต์แวร์
ทดสอบด้านการทำงานเชิงหน้าที่ (Functional suitability), ด้านประสิทธิภาพ (Performance), ด้านความมั่นคงปลอดภัย (Security) ตามมาตรฐานการทดสอบ ISO/IEC25040:2011, ISO/IEC/IEEE29119 -2:2013

2. Internet of thing หรือ IOT ด้านซอฟต์แวร์
ทดสอบด้านการทำงานเชิงหน้าที่ (Functional suitability), ด้านประสิทธิภาพ (Performance), ด้านความมั่นคงปลอดภัย (Security) ตามมาตรฐานการทดสอบ ISO/IEC25040:2011, ISO/IEC/IEEE29119 -2:2013 IoT เช่น CCTV เป็นต้น

3. Computer log System หรือ ระบบเก็บรักษาข้อมูลจลาจลทางคอมพิวเตอร์ ทดสอบตามมาตรฐาน มศอ.4003.1–2560, ศอ.2006.3–2558

4. Medical Device Software หรือ ซอฟต์แวร์เครื่องมือแพทย์ ทดสอบตามมาตรฐาน IEC 60601–1:2015 Cl.14 Programmable electrical medical system (PEMS) ทดสอบตามมาตรฐาน IEC 62304:2006+AMD1:2015

นอกจากนี้ยังมีบริการอื่นๆ เช่น เครื่องมือชุดทดสอบ HIL : (Hardware in the Loop) เป็นการให้บริการเช่า — ยืม เครื่องมือเช่น ECU (MicroLabBox), HILS (SCALEXIO) และให้บริการโปรแกรมต่างๆ เช่น Mathworks, dSPACE และมีให้บริการ Automate Testing

Testing Lab นี้ จะช่วยเอา Test Report ไปให้หน่วยงานต่างๆ เช่น ทดสอบซอฟต์แวร์ด้านเครื่องมือแพทย์ ก็ต้องไปองค์กรที่ตรวจรับด้านเครื่องมือแพทย์ เพื่อเอาไปใช้ในโรงงานต่างๆ ได้ ซึ่ง Test Report นี้ สามารถเอาไปใช้กับต่างประเทศได้

ท้ายที่สุดแล้ว เวลาเราจะไปขายของ ก็ต้องโฆษณาตัวเองนิดหนึ่งว่าเราทำตามมาตรฐานอะไร ผ่านข้อกำหนดอะไรบ้าง ซึ่งสิ่งนี้ควรไปอยู่ตั้งแต่เก็บ Requirement เช่น

  • ถ้าเกี่ยวกับคลื่น ต้องผ่าน กสทช.
  • เครื่องใช้ไฟฟ้า จะก่อให้เกิดอันตรายกับผู้ใช้ด้านไหนบ้าง เช่น อุปกรณ์การแพทย์ชิ้นหนึ่ง ที่ต้องอยู่ในห้องผ่าตัด แล้วถ้ามันอยู่ ทำให้ตัวอื่นทำงานแปรปรวน ก็จะมีอันตรายกับคนไข้
  • เวลาทำอะไรก็ต้องดูว่ามีกฎ ระเบียบ มาตรฐานอะไรบ้าง ตั้งแต่เก็บ Requirement เลย
  • เครื่องหมายสีแดง แปลว่าต้องมี ไม่มีโดนฟ้องร้อง
  • เครื่องหมายสีนำ้เงิน มีก็ดี ไม่มีก็ไม่เป็นไร
https://www.squat.in.th/
  • Biometric เช่นใน Application ธนาคาร ที่ใช้ Face, นิ้วมือ, ม่านตา, เสียงพูด
  • ตอนนี้กำลังศึกษาวิธีการทดสอบเกี่ยวกับ AI อยู่
ตัวอย่างการทดสอบ

dSPACE SCALEXIO HIL System

เป็นอุปกรณ์สำหรับใช้ในการสร้างแบบจำลองยานยนต์ไฟฟ้า แบบเสมือนจริง และ มีการประมวลผลแบบ Real-Time เพื่อใช้ทดสอบฟังค์ชันการทำงานต่างๆ ของระบบควบคุมสำหรับ ยานยนต์ไฟฟ้า (อ่านต่อที่นี่)

  • SQUAT เป็น หน่วยงานราชการที่เดียวที่ได้รับการรับรองในประเทศไทย กับ มอก.17025
  • หน่วยงานของ ดร.ฝน ไม่สามารถทำ Consult ได้ เพื่อความเป็นกลาง Test Report จึงสามารถไปใช้กับต่างประเทศได้
  • หน่วยงานราชการอื่น หรือ หน่วยงานเอกชน อื่น สามารถขอสอบ มอก.17025 ได้ แต่ต้องดูว่า จะตรวจสอบ ทดสอบอะไร ต้องใช้เครื่องแบบไหน
  • การจะได้ใบ Cert. นี้มา ก็ต้องมีกระบวนการ เอกสารใดๆ ประหนึ่งทำพวก CMMI
  • ต้องมีการต่ออายุ มี Internal Audit และ External Audit
  • ถ้าทำขาไหนอยู่ แล้วต้องการเพิ่มขา (ขยายขอบข่าย) ก็ต้องมีการตรวจเพิ่ม ซึ่งเราต้องมีวิธีการตรวจสอบก่อน โดยอ้างอิงจากมาตรฐานสากล เช่น ISO, IEC อะไรว่าไป แต่ถ้าใช้ทั้งหมดไม่ได้ ต้องทำ Work instruction บางอย่าง based on สิ่งนั้น ถ้าเป็น in-house method จะมีความยากในการ defend ทำยังไงให้เค้าเชื่อว่า ของเรามีมาตรฐานจริง
  • เอเชียตะวันออกเฉียงใต้ มีที่สิงคโปร์ เกาหลี (25 Lab ทั่วประเทศ) จีน ส่วนเวียดนามไม่แน่ใจว่ามีไหม

JumpStart: Service Robots & IoTs https://www.facebook.com/SWPJUMPSTART/

  • ทดสอบตามที่ประเภทบังคับก่อน เช่น เกี่ยวกับเรื่องคลื่น ก็ต้องตามที่ กสทช. บังคับ แล้วก็ไล่เรียงตามความจำเป็นอื่นๆ
  • SQUAT ทำเรื่อง Software และ PDPA (เฉพาะของ Product)
https://www.iso.org/standard/53820.html

ในโครงการนี้ เน้นที่ หุ่นยนต์เคลื่อนที่ก่อน โดยไม่รวมโดรน หรือตัวที่มีลักษณะเฉพาะทางอื่นๆ

ถ้าหุ่นยนต์ทำความสะอาด ก็กับพื้นทั่วไป แต่ไม่ได้ทดสอบกับสระว่ายน้ำ เพราะจะมีมาตรฐานอื่นๆ มาเกี่ยวข้องอีก

  • มาตรฐานทุกอันต้องมีเรื่องการประเมินความเสี่ยง เช่น ไฟรั่ว การเกิดอุบัติเหตุ การชน
  • ข้อกำหนดทางด้านความปลอดภัย และมาตรการที่ใช้ในการป้องกัน เช่น อันตรายจากการชาร์จแบต การเคลื่อนที่ ตัดสินใจที่ผิดพลาด เค้าก็จะบอกว่าต้องดูยังไง มีคำแนะนำในการออกแบบและจัดการอย่างไรบ้าง
  • ข้อกำหนดด้านการควบคุมในด้านความปลอดภัย เรามีวิธีแก้ปัญหาอย่างไร
  • ออกแบบ ควบคุม และ Verification and Validation ว่าทำได้จริงไหมอย่างที่เราออกแบบ
  • ใส่มาตรการทุกอย่างแล้วไม่สามารถลดความเสี่ยงได้ ก็ต้องบอกให้คนใช้งานรู้ เช่น แสดงเครื่องหมาย มีคำเตือนแจ้ง มี User Manual ถ้าเกิดเหตุการณ์แบบนี้ต้องทำอะไร

เช่น กลไกไม่เสถียร เกิดการล้ม หมุนตัว หรือตก ส่งผลทำให้เกิด แตก ร่วง ข้อที่เกี่ยวข้องก็คือ 5.10.2

แล้วเราจะจัดการมันได้อย่างไร?

สิ่งแรกที่ต้องทำคือ การออกแบบด้านความปลอดภัย รวมถึงมาตรการการป้องกัน และ Information Use

  • ถ้าการออกแบบมันไม่พอ ก็ต้องมีการใส่ software ด้านการป้องกันเพิ่ม เช่น หุ่นยนต์ดูดฝุ่น ให้มีองศารอบทิศ 50x50 เซนติเมตร แล้วก็ให้ detect ไปเรื่อยๆ
  • detect อย่างไร เช่น เรดาห์ เซ็นเซอร์
  • มีกำหนดความเร็ว ควบคุม Speed เช่น 1km/sec ปลอดภัยไหม
  • แรงที่ชน เป็นอย่างไร ปลอดภัยหรือไม่
  • ถ้าเราวิ่งช้า น้ำหนักเบาด้วย ก็จะชนไม่แรง
  • ท้ายที่สุดแล้วก็จะมีเอกสารที่บอกที่เตือนให้กับผู้ใช้งานรับทราบ Spec เป็นอย่างไร ถ้าเกิดเหตุการณ์แบบนี้ต้องทำยังไง
ตัวชี้วัดในการ Verified — C D F G
Emergency Stop VS Protective Stop
  • หุ่นยนต์จะต้องมีปุ่มที่เอาไว้หยุดมัน ถ้ามันมีปัญหาอะไร เรียก Emergecy Stop
  • หุ่นยนต์เจอเก้าอี้แล้วทำอะไรต่อ เช่น ชน หรือ หลบไปทางอื่น เรียก Protective Stop
Emergency Stop VS Protective Stop
กำหนด Space
  • บริษัทที่จะให้ Lab ดร.ฝน ทดสอบ ก็ต้องให้ REQs มาด้วย
  • การทดสอบของ ดร.ฝน เป็นอุปกรณ์จริง
  • สิ่งกีดขวาง มี ไม้ กำแพง ผ้า วิธีทำให้มันเคลื่อนที่เป็นยังไงบ้าง เพื่อดูการตอบสนอง ก็จะให้เดินตามองศาต่างๆ (ตามมาตรฐาน)
  • เราไม่ได้สนใจภาษาที่ Product เขียนมา เพราะเราสนใจว่า สุดท้ายแล้ว Product ทำออกมาได้ตอบตามมาตรฐานจริงไหม และบริษัทส่วนใหญ่ไม่ได้ส่ง Source Code มาให้
  • ถ้าย้อนไปวิชา Software Testing 101 ก็คือเรื่อง State Transition และ กรณีการทดสอบ

หน่วยงานที่สนับสนุนคือ depa จะมีทุนเรื่องการทดสอบ (แต่ไม่เต็มนะ) ถ้าผ่านเครื่องหมาย d sure ก็จะไปอยู่ในลิสต์กรมบัญชีกลางได้เหมือนกัน สนับสนุนให้หน่วยงานรัฐเลือกเข้าไปก่อน เวลาจัดซื้อจัดจ้าง

  • ดาวหนึ่ง IOT มีทั้ง Software และ Hardware แปลว่าเรื่อง Safety ต้องมา
  • ดาวสอง ก็ต้องมี Functionality หรือ Cyber Security แต่ยังไม่ถึง Pentest เป็นแค่ OWASP บางส่วน
  • ดาวสาม คือต้องมีครบทั้งสามส่วน

Software Testing Standard

  • ISO เป็น กระบวนการผลิต (มาจากทางยุโรป)
  • IEC เป็น Product
  • IEEE เป็น Telecommunication
  • CMMI เกิดมาจากทางอเมริกา

Software Engineering ตัวแม่คือ 12207

  • 29110 เป็นกระบวนการทดสอบ Software (small)
  • 29119 Testing
  • 25000 Series
  • 42010, 42030 Architecture
การมี / คือ ทำงานร่วมกัน เป็น Working Group
  • Evaluate = กระบวนการนี้มีคุณภาพ? ต้องใช้เทคนิค Review (ก่อนรันโค้ด) กับการ Test
  • Check = ซื้อของมาแล้วดูว่ามันทำงานได้ไหม
  • Test = ทดสอบในสภาวะที่ operation ทำงาน (ต้องรันโค้ด)
8 คุณลักษณะ
  • Cyber Security ใหญ่กว่า Security
  • Functional เราไม่ต้องทดสอบมันทั้งหมด จะรู้ได้ยังไงว่ามันสำคัญ ก็ประเมินความเสี่ยง หรือไม่ก็ต้องรู้ Business เรา เช่น App ธนาคาร ต้องไม่ล่ม ก็ต้องทดสอบ performance ข้อมูลไม่รั่ว ก็ต้อง Security ถ้าจะเน้นเรื่องคนพิการ ก็ต้องเน้น usability หรือเป็น software ที่ใช้งาน 24/7 ก็ต้องทดสอบ Reliability

สิ่งสำคัญที่สุดก็คือ เราต้องรู้เป้าหมายว่าเราจะต้องทำการทดสอบไปทำไม ทำไปเพื่ออะไร

กระบวนการ ให้มาดูที่ตัวนี้
ตอนเก็บ REQs ต้องเก็บพวก Rules and Regulation มาด้วย

ISO จะซื้อเลย หรือไป สำนักงานมาตรฐานผลิตภัณฑ์อุตสาหกรรม (สมอ.) แถว พระราม 6​ ก็ได้ มีเยอะมาก ขอมาสำเนาได้ ถ้าไม่มีตัวไหนก็แจ้งเค้า แล้วเค้าจะหามาให้ ช่วยลดค่าใช้จ่าย แต่ถ้าอยากใช้เชิงพาณิชย์ก็ซื้อทางออนไลน์ได้

ดูก่อนว่าจะทดสอบเรื่องไหน แล้วก็ค่อยคิดว่าจะใช้การทดสอบอะไร

กระบวนการทดสอบ
  • ดร.ฝน เวลาจะทดสอบ ต้องเข้าใจ Business Domain ก่อน เข้าใจ Architecture ว่าทำงานอย่างไร เชื่อมต่อกันอย่างไร

International Software Testing Qualifications Board — ISTQB

  • เป็น Cert. ระดับบุคคล
https://www.istqb.org/
  • ใช้คำว่า incident report ต้องมาคุยกับ business, dev, SA ก่อนว่าเป็น bugs จริงไหม หรือเป็น defects
  • เริ่มจาก ต้องมีการทำ Proposal ว่าทดสอบเรื่องอะไรบ้าง
  • สิ่งสำคัญคือ เราทดสอบสภาพแวดล้อมเป็นยังไง Hardware เป็นยังไง เราทดสอบเฉพาะหน้าที่ เป็นการทดสอบ Blackbox
  • Test Lab เป็นแบบ Product Final แล้ว ดังนั้นอยู่ระดับ System Test
  • คนจ้างงาน ต้องบอกว่า มี Feature อะไรบ้าง ต้องเขียนออกมา
  • จากนั้นก็เอา Feature มาดูว่าเป็น Function อะไร จากนั้นก็ทำเป็น Test Case มีทั้ง Success และ Alternatives
  • แล้วก็สร้าง Test Case Specification
  • หลังจากนั้นก็ทำการทดสอบ แล้วบอกว่ามัน Pass หรือ Fail
  • มีข้อกำหนดบอกว่า ต้องผ่านกี่ Test Cases ถึงจะเรียกว่า Pass
  • อันไหนมี Bugs ก็ Log ไว้
  • จากนั้นก็ออก Test Report (รายละเอียดยิบๆ) มีการระบุ กระบวนการ เวอร์ชัน สภาพแวดล้อม รายงานผลการทดสอบต่างๆ
  • ระหว่างการทดสอบ ถ้าเราไม่ได้ร้องขอ ไม่ต้องมา Interrupt
  • ทางผู้ขอใช้บริการ มีสิทธิที่จะขอดูรายละเอียดการทดสอบได้
  • เราจะมีการรักษาความลับกับลูกค้าอยู่แล้ว แต่อันนี้ขออนุญาตเอาออกมาเป็นวิทยาทานแล้ว (แต่ไม่ได้แคปมาเก็บไว้นะจ๊ะ)
  • ดร.ฝน บอกว่า เยี่ยมชมได้ แต่ต้องนัดล่วงหน้า
  • การเป็นพันธมิตร ก็น่าสนใจ แต่ตอนนี้ยังไม่มีแรงทำ คนไม่พอ 55TT55

ถ้าอยากย้ายสายมาทำงานฝั่งนี้ องค์ความรู้ที่ต้องมีติดมาก่อนคืออะไรบ้าง?

  • มีความเข้าใจการสร้าง Software มาบ้างก็ดี
  • Logical Thinking, System Thinking คิดเป็นระบบ
  • ช่างสังเกต ช่างสงสัย พวก เอ๊ะๆ
  • ถ้ามีโดเมนมาอยู่แล้ว ก็จะช่วยเรื่องนี้ได้
  • เป็นคนละเอียดหน่อย ทดสอบอะไร ก็ต้องจดด้วย มีหลักฐาน เล่าที่มาที่ไปได้
  • การสื่อสารอย่าตั้งป้อมว่า คุณผิด (ด่าลูกค้า) เรามาทำให้งานมีคุณภาพ เพราะคนสุดท้ายที่ได้ประโยชน์ก็คือลูกค้า

อยากติดต่อขอคำปรึกษาเพิ่มเติม หรือ สมัครงาน (ก็น่าจะได้นะ) ได้ที่อีเมลนี้เลยค่า squat@nectec.or.th

--

--

Parima Spd
Parima Spd

Written by Parima Spd

I enjoy reading and writing. Continue to learn and try new things to improve. Before you die, explore this world.

No responses yet