กรุงเทพฯ--25 มิ.ย.--Software Park Thailand
Training Program ::Software Architectural Test Case Writing New!!! (30-31 July 2009) ::
Date / Time : 30 - 31 July 2009
Venue : Training / Seminar Room, 3rd Floor, Software Park Building
Registration Fee : 9,630 Baht (Included VAT 7 %)
Course Overview:
ทุกวันนี้การพัฒนาซอฟต์แวร์ส่วนมากยังคงยึดแนวคิดด้าน 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
พื้นฐานของผู้เข้ารับการอบรม (Prerequisities) ผู้เรียนควรมีความรู้ความเข้าใจพื้นฐานด้านการพัฒนาซอฟต์แวร์มาก่อน และหากมีความรู้ด้านสถาปัตยกรรมซอฟต์แวร์และการทดสอบ ซอฟต์แวร์ด้วยจะยิ่งดี
Course Contents:
มองซอฟต์แวร์และคุณภาพให้เป็น N มิติ
ทำความเข้าใจกับ Software Testing เบื้องต้น
องค์ประกอบสำคัญของ Test Plan
การเขียน Test Cases เบื้องต้น
การทำ Traceability ระหว่าง Requirements กับ Test Cases
หลักการ Test-Driven Development / Test First (การออกแบบและเขียน Test Cases ก่อนออกแบบและพัฒนาระบบฯ)
ทำความเข้าใจกับ Functionality และ Non-Functionality และการมีผลกระทบต่อกัน
การเขียนอธิบาย Functional Requirements (Use Cases)
การเขียน Functional Test Cases โดยการแปลงจาก Functional Requirements
การเขียน functional test cases สำหรับ basic flow
การเขียน functional test cases สำหรับ alternative flows ที่เกิดจาก business rules / condition
การเขียน functional test cases สำหรับ alternative flows ที่เกิดจาก error / exception
ทำความเข้าใจกับ Software Architecture เบื้องต้น
เพิ่มเติมรายละเอียด (Refine) ของ SLA (Service Level Agreement) อีกครั้งหลังออกแบบ Architecture
ความสัมพันธ์ระหว่างคุณภาพของ Architecture กับคุณภาพของซอฟต์แวร์
ทำความเข้าใจกับ Non-Functional Requirements (Quality Attributes) เบื้องต้น เช่น:
Availability
Performance
Modifiability
Usability
Security
Testability
Reliability
Scalability
Interoperability
Extensibility
Portability
ภาวะขาดภูมิต้านทานของซอฟต์แวร์ และ ความล้มเหลวของโครงการจากการไม่ให้ความสำคัญกับ Architectural Design and Testing
การเขียนอธิบาย Non-Functional Requirements (Quality Attributes) ด้วยการจำลองเหตุการณ์ (Scenario)
การกำหนดค่า Response Measure และการ map กับ KPI (Key Performance Indicator) เพื่อการจัดการและการวัดผล
ทำความเข้าใจกับ Risk-Driven Testing และ Quality Attribute Driven Design and Testing
จาก Non-Functional Requirements (Quality Attributes) สู่กลไกทางสถาปัตยกรรม (Architectural Mechanisms)
การเขียน Test Cases เพื่อทดสอบคุณภาพด้านต่าง ๆ ของ Architecture โดยเน้นการทดสอบกลไกฯ
การเขียน Test Cases เพื่อทดสอบผลกระทบระหว่างกลไกฯ กับ Function ของซอฟต์แวร์
การเขียน Test Cases เพื่อทดสอบผลกระทบระหว่างแต่ละกลไกฯ
ทำความเข้าใจกับ Concurrent Design, Development and Testing และแนวคิดเพื่อทำ Architectural Simulation Testing
เทคนิคการทำงานร่วมกับ Analyst, Architect, Project Manager และ Software Quality Assurance
ความสอดคล้องระหว่างสัญญาว่าจ้าง, SLA (Service Level Agreement), Architectural Test Cases และ UAT
(User Acceptance Test)
คุณภาพของซอฟต์แวร์ขึ้นกับ Architecture, คุณภาพของ Architecture ขึ้นกับการทำ Architectural Test
ผู้เรียนจะได้เข้าใจถึงความสำคัญของการอธิบาย 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