สวัสดีเช้าวันจันทร์กลางเดือนกันยายน 2552 ครับ กลับมาจากลาพักร้อนยาวๆ พอเปิด mail ของ office ก้ได้รับ email แจ้ง Course อบรบจาก Software Park มาชื่อว่า Software Architectural Test Case Writing อ่านจากเนื้อหาก็น่าสนใจครับ ก็เลยหยิบรายละเอียดของ Course มาแจ้งให้ทราบครับ เื่ผื่อว่าเพื่อนพ้องน้องพี่ท่านใดสนใจครับ
Date / Time : 7 -8 October 2009
Venue : Training / Seminar Room, 3rd Floor, Software Park Building
Registration Fee : 9,630 Baht (Included VAT 7 %)
ทุกวันนี้การพัฒนาซอฟต์แวร์ส่วนมากยังคงยึดแนวคิดด้าน Functional Development ค่อนข้างมาก และอาจรวมถึงแนวคิดด้าน Structural และ Procedural Development ด้วย ทำให้เน้นพัฒนาส่วนฟังก์ชั่นเป็นหลัก ซึ่งจากแนวคิดนี้มักเน้นการเก็บความต้องการแบบ Functional Requirements เป็นหลัก ทำให้ส่งอิทธิพลต่อการเขียน Test Case และการทดสอบซอฟต์แวร์โดยมุ่งเน้นการทดสอบฟังก์ชั่น (Functional Testing) เป็นหลัก-จนมากเกินไป แม้แต่ UAT (User Acceptance Test) ก็เน้นหนักไปทางด้านดังกล่าวเช่นกัน และถึงแม้จะเน้น ด้านฟังก์ชั่นกันเป็นอย่างมาก แต่พบว่าการเขียน Functional Test Case นั้นก็ยังเขียนกันไม่ถูกต้องเสียทีเดียว เพราะมักเขียนจากมุมมองของ tester หลักสูตรนี้จึงสอดแทรกเทคนิคการอธิบายความต้องการแบบ Functional Requirements และแปลง (transform) ไปเป็น Functional Test Case ได้อย่างมีประสิทธิภาพครอบคลุมสอดคล้องกันและสามารถตรวจสอบย้อนกลับ (Traceability) ได้
ถึงแม้ว่าการทดสอบแบบ Performance Testing จะสามารถทดสอบสิ่งที่กล่าวข้างต้นได้ แต่ก็ยังเป็นการทดสอบโดยมุ่งเน้นไปที่
ประสิทธิภาพการใช้ทรัพยากรเสียมากกว่า ไม่ได้เจาะเข้าไปทดสอบถึงระดับการออกแบบและคุณภาพของสถาปัตยกรรมซอฟต์แวร์
คุณภาพของซอฟต์แวร์ไม่ได้อยู่แค่ว่ามีฟังก์ชั่นครบ ทำงานได้ตามความต้องการ (ด้านฟังก์ชั่น) เนื่องจากทุกวันนี้ซอฟต์แวร์หรือ
แอพพลิเคชั่นมีขนาดใหญ่ขึ้น ซับซ้อนขึ้น การพัฒนาซอฟต์แวร์ การทดสอบและตรวจรับงานที่มุ่งเน้นวัดกันที่ฟังก์ชั่นเป็นหลักจึงไม่เพียงพอ
สถาปัตยกรรมซอฟต์แวร์ (Software Architecture) มีความสำคัญและจำเป็นมากขึ้น เพราะสถาปัตยกรรมซอฟต์แวร์ประกอบไปด้วยกลไกต่าง ๆ มากมาย เช่น communication, distribution, legacy interface, encryption, exception handling, persistence / data access, object life-cycle management, personalization, service access channel, thread, concurrency and synchronization control, transaction management เป็นต้น คุณภาพการทำงานของกลไกเหล่านี้เป็นเครื่องบ่งชี้ถึงคุณภาพโดยรวมของซอฟต์แวร์ แต่กลไกเหล่านี้จะต้องมีอะไรบ้าง ต้องมีแค่ไหน ต้องมีความสามารถแค่ไหน และต้องทำงานอย่างไรนั้น ขึ้นกับการเก็บและจัดการความต้องการประเภท Non-Functional Requirements (NFR) หรือเรียกว่า Quality Attribute ซึ่ง NFR นั้นมีหลายประเภท เช่น availability, modifiability,usability, reliability, testability, security, performance, interoperability, scalability เป็นต้น เพราะต้องวิเคราะห์ NFR เหล่านี้เพื่อจะได้ output เป็นกลไกต่าง ๆ ผ่านการออกแบบสถาปัตยกรรมฯ ถึงแม้ว่าการพัฒนาสมัยใหม่นี้มีการใช้ Middleware มากมาย เช่น แอพพลิเคชั่นเซิร์ฟเวอร์ ทรานแซคชั่น เซิร์ฟเวอร์ เป็นต้น ซึ่ง middleware เหล่านี้ต่างมีกลไกฯ เหล่านี้ให้ใช้อยู่แล้ว โดยนักพัฒนาแทบไม่ต้องเขียนโปรแกรมเองเลย แต่ไม่ใช่ว่า middleware เหล่านี้จะทำงานได้ดังใจต้องการเสมอไป ความสำคัญอยู่ที่จะออกแบบและพัฒนาซอฟต์แวร์
และทดสอบได้อย่างไรต่างหาก
ดังนั้นการเขียน Test Case เพื่อทดสอบด้านสถาปัตยกรรมฯ (Architectural Testing) โดยเน้นทดสอบคุณภาพของกลไกลทาง
สถาปัตยกรรมฯ จึงมีความจำเป็นและมีผลต่อการเขียนและทำ UAT ต่อไป และยังส่งผลอย่างเป็นรูปธรรมต่อคุณภาพซอฟต์แวร์ ซึ่งเกี่ยวข้อง
กับกระบวนการมากมาย เช่น การร่างสัญญา การเขียน SLA (Service Level Agreement) การจัดซื้อ/จัดจ้าง การทดสอบร่วมกันระหว่างทีม
พัฒนาฯ กับลูกค้า การส่งมอบงาน การตรวจรับงาน และรับประกันผลงาน
การอบรมในหลักสูตรนี้ มุ่งเน้นทั้งภาคทฤษฏีและปฏิบัติ และการสร้างความเข้าใจในแนวคิดการออกแบบ พัฒนา และทดสอบ
ซอฟต์แวร์ใหม่ ๆ ที่ให้ความสำคัญกับความเสี่ยงและคุณภาพของซอฟต์แวร์เป็นหลัก มิใช่เน้นที่ฟังก์ชั่นของซอฟต์แวร์มากจนเกินไปอย่างที่
เป็นมา และเพื่อให้ผู้เรียนได้เข้าใจและสามารถเขียน Test Case ได้อย่างถูกวิธีและมีประสิทธิภาพที่สุดเพื่อการทำ Architectural Testing
ได้อย่างมีประสิทธิภาพ
หลักสูตรนี้มิได้สอนการทดสอบซอฟต์แวร์ (Software Testing) แต่เน้นสอนการเขียน Architectural Test Case หรือกรอบในการ
ทดสอบคุณภาพของกลไกทางสถาปัตยกรรมซอฟต์แวร์ (Software Architectural Mechanisms) ดังนั้นผู้เรียนจึงจำเป็นต้องนำความรู้ที่ได้ไปบูรณาการความรู้และทักษะด้านการทดสอบซอฟต์แวร์ที่มีอยู่หรือศึกษาเพิ่มเติมต่อไป เนื่องจากเนื้อหาด้านการทดสอบซอฟต์แวร์นั้นมีอยู่มากมีเทคนิคและเครื่องมือ (Test Tool) มากมาย ซึ่งหนักทั้งด้านทฤษฏี การใช้เครื่องมือ และปฏิบัติ ดังนั้นจึงไม่สามารถนำมารวมอยู่ในหลักสูตรนี้ได้ แต่รายละเอียดเหล่านี้สามารถปรึกษาพูดคุยกันระหว่างเรียนได้ เพื่อเป็นแนวทางให้กับผู้เรียนและเพื่อแลกเปลี่ยนความคิดเห็นกันระหว่างผู้เรียน
การอบรมนี้ออกแบบมาสำหรับ CEO / MD, IT Manager, Development Manager, Project Manager, System Analyst, Test Manager, Tester, Software Architect, System Architect, Enterprise/IT Architect, System Admin, System Engineer
ผู้เรียนควรมีความรู้ความเข้าใจพื้นฐานด้านการพัฒนาซอฟต์แวร์มาก่อน และหากมีความรู้ด้านสถาปัตยกรรมซอฟต์แวร์และการทดสอบ
ซอฟต์แวร์ด้วยจะยิ่งดี
ผู้เรียนจะได้เข้าใจถึงความสำคัญของการอธิบาย Functional Requirements ว่ามีผลต่อการทำ Functional Test และการเขียน Functional Test Case อย่างไร, จะได้เรียนเทคนิคการแปลงจาก Functional Requirements ไปเป็น Functional Test Case, จะได้เข้าใจความสำคัญของคุณภาพทาง Architecture ด้านต่าง ๆ และสามารถเขียน Test Case เพื่อทดสอบกลไกฯ ต่าง ๆ ได้อย่างถูกต้องครอบคลุม
และจะได้เข้าใจถึงความสัมพันธ์และผลกระทบระหว่าง Functional Requirements, Non-Functional Requirements และ กลไกทางสถาปัตยกรรม เพื่อจะได้เขียน Test Case ได้อย่างถูกต้องครอบคลุมและให้สอดคล้องกัน และยังจะได้เข้าใจถึงการ map ระหว่าง Test Case View Points กับ Architecture View Points เพราะหลักสูตรนี้จะสอนให้ผู้เรียนมองซอฟต์แวร์เป็น N มิติ และมองคุณภาพของซอฟต์แวร์เป็น N มิติ เพื่อให้มองเห็นแล้วเข้าใจเพื่อเขียน Test Case ให้ได้ครอบคลุมทุกมิติ โดยเฉพาะเขียน Test Case ในส่วนผลกระทบซึ่งกันและกันระหว่างคุณภาพแต่ละด้านของ Architecture
นอกจากนี้ผู้เรียนยังจะได้เข้าใจถึงหลักการออกแบบ พัฒนา และทดสอบซอฟต์แวร์ใหม่ ๆ ที่เน้นด้าน Testing เป็นอย่างมาก
โดยเฉพาะเน้นทางด้านการจัดการความเสี่ยง การสร้างความสอดคล้องและการตรวจสอบย้อนกลับ (Traceability) ระหว่าง Functional Requirements, Non-Functional Requirements, กลไกทางสถาปัตยกรรม จนถึงระดับซอร์สโค้ด
Juntima Klumchaun
Technology Transfer Department
Software Park Thailand
Tel: 02-583-9992 ext. 1424
Fax: 02-583-2884
E-mail: training@swpark.org
4 Responses to Training Program: Software Architectural Test Case Writing (7-8 October 2009)
khanom
September 20th, 2009 at 3:46 pm
หลักสูตรนี้เหมาะสำหรับการออกแบบ software และ system ใหม่ เท่านั้น หรือ ที่มีระบบ การใช้งานอยู่แล้ว แต่ต้องการพัฒนาเพิ่ม พอดีเพิ่งเริ่มงาน สนใจเรื่องพวกนี้อยู่อะค่ะ
Zyracuze
September 21st, 2009 at 1:04 pm
ความคิดเห้นส่วนตัวของผมเอง ใช้ได้ทั้งระบบใหม่ และระบบที่กำลังจะพัฒนาเพิ่มนะครับ
ส่งเรื่องให้ทางทีม software park ช่วยเข้ามาตอบให้ด้วยแล้วครับ
minimalist
September 23rd, 2009 at 5:41 pm
ทางซอฟต์แวร์พาร์คส่งอีเมล์มาแจ้งครับ ขอบคุณคุณ Zyracuze ด้วยครับ
หลักสูตรนี้ใช้ได้กับทั้งระบบเก่า / ปัจจุบัน และระบบใหม่ครับ
ขอเน้นนิดหนึ่งครับว่าหลักสูตรนี้ไม่ได้เน้นด้าน testing นะครับ แต่เน้นด้านการเขียน test case ในลักษณะ Architectural Test Case หรือ Non-Functional Test Case
หากมีคำถามเพิ่มเติมโพสต์ในนี้ได้ครับ เดี๋ยวผมเข้ามาตอบให้ครับ
ขอบคุณครับ
leeyongson
September 28th, 2009 at 2:38 pm
ลงทะเบียนเรียบร้อยแล้ว กำลังจะไปอาทิตย์หน้า 7-8 ตุลานี้ และคอสนี้ถ้าเป็นไปตามที่คาดหวัง จะเป็น road map training course ต่อไปสำหรับ team ค่ะ