บทที่ 3 กระบวนการผลิตซอฟต์แวร์ (Software Process)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Application Development Overview Nithi Thanon Computer Science Prince of Songkla University.
Advertisements

Chapter 11 : System Implementation
วงจรพัฒนาระบบ (System Development Life Cycle)
การวิเคราะห์ระบบและวิธีปฏิบัติงาน
การวิเคราะห์และออกแบบระบบ
Chapter 12 : Maintaining Information Systems
เอกสารประกอบการบรรยาย วิชา การออกแบบและพัฒนาฐานข้อมูล
SCC : Suthida Chaichomchuen
Test Methodology.
บทที่ 2 การพัฒนาระบบ (System Development)
Language Evaluation Criteria
บทที่ 2 การพัฒนาระบบสารสนเทศ
แบบจำลองกระบวนการซอฟต์แวร์
Chapter 2 Software Process.
บทที่ 13 การทดสอบซอฟต์แวร์ ( Software Testing ).
Software Testing  - ช่วยกำจัด และลดข้อบกพร่องที่จะก่อให้เกิดปัญหาลงให้มากที่สุดที่จำทำได้ (ตามเวลาที่มี) - ช่วยลดความเสี่ยง เพิ่มความมั่นใจ และน่าเชื่อถือ.
chapter7 -Intro to Software Testing
school of Information communication Tecnology,
Verification & Validation K.Mathiang. Objective สามารถอธิบายผังขั้นตอนการออกแบบระบบ ดิจิทัลได้ สามารถอธิบายความเกี่ยวข้องของการทวนสอบ (Verification) กับการออกแบบระบบดิจิทัลได้
school of Information communication Tecnology,
Chapter 1 Introduction to Software Engineering – Software Engineering Chaichan Kusoljittakorn 1.
Programming & Algorithm
Homework 2 Present.
BC424 Information Technology 1 บทที่ 7 การพัฒนาระบบ สารสนเทศ (Information System Development)
Database Management System
1 คต ๔๔๑ สรุปการจัดการ โครงการซอฟต์แวร์ คต ๔๔๑ สรุปการจัดการ โครงการซอฟต์แวร์ Royal Thai Air Force Academy : RTAFA Royal Thai Air Force Academy : RTAFA.
อาจารย์ วิทูร ธรรมธัชอารี. เนื้อหาในการเรียน  เครื่องมือในการออกแบบและพัฒนาระบบ บัญชีด้วยคอมพิวเตอร์  ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล  การวางระบบบัญชีด้วยคอมพิวเตอร์
ลักษณะงานของวิศวกร ซอฟต์แวร์ ● วิเคราะห์และจัดทำความ ต้องการซอฟต์แวร์ ● ออกแบบซอฟต์แวร์ ● พัฒนาซอฟต์แวร์ ● ทดสอบซอฟต์แวร์ ● บำรุงรักษาซอฟต์แวร์ ● จัดการองค์ประกอบ.
ว่าที่ ร.ต.หญิงวรรณธิดา วรสุทธิพงษ์ ครูแผนกวิชาคอมพิวเตอร์ธุรกิจ
บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับระบบและการวิเคราะห์ระบบ
Information Systems Development
การทดสอบซอฟต์แวร์ Software Testing
Measuring Agility in Agile Software Development
Database Planning, Design, and Administration
Thai Quality Software (TQS)
กระบวนการพัฒนาซอฟต์แวร์
บทที่ 13 กลยุทธ์การทดสอบซอฟต์แวร์ (TESTING STRATEGIES)
บทที่ 5 แบบจำลองกระบวนการ
2 การพัฒนาระบบสารสนเทศ (Information System Development)
Information System Development
การสร้างเว็บไซด์อีคอมเมิร์ซ
บทที่ 10 การนำระบบไปใช้/การบำรุงรักษาระบบ
การจัดหาหรือจัดให้มีการพัฒนา และการบํารุงรักษาระบบเครือข่ายคอมพิวเตอร์ ระบบคอมพิวเตอร์ ระบบงานคอมพิวเตอร์ และระบบสารสนเทศ มาตรฐานการรักษาความมั่นคงปลอดภัยของระบบสารสนเทศตามวิธีการแบบปลอดภัย.
บทที่ 5 ความต้องการ วิศวกรรมความต้องการ แบบจําลองการวิเคราะห์
บทที่ 1 ความหมายขอบเขต และผลกระทบของเทคโนโลยีสารสนเทศ.
Software Evolution แบบจำลองกระบวนการพัฒนา/ผลิตซอฟต์แวร์ (Process Model) แบบจำลองใช้สำหรับชี้นำถึงกิจกรรมหลัก (key Activities) ในการพัฒนาซอฟต์แวร์ ด้วยการกำหนดรายละเอียดหรือข้อบัญญัติไว้ในแต่ละกิจกรรมในแต่ละขั้นตอนที่มีลำดับขั้นตอนการพัฒนาที่ชัดเจน.
สื่อการสอนรายวิชา ง30204 โปรแกรมภาษาชี ภาษาคอมพิวเตอร์และโปรแกรม
IT Project Management 05 IT Quality Management.
Generic View of Process
(Smart Strategy Praboromarajchanok Institute: SSPI)
Object-Oriented Programs Design and Construction
กระบวนการพัฒนาระบบงาน
บทที่ 9 การออกแบบระบบ และการออกแบบยูสเซอร์อินเตอร์เฟช
Development Strategies
การพัฒนาระบบสารสนเทศ
วิศวกรรมซอฟต์แวร์ (Software Engineering)
การออกแบบบทเรียนคอมพิวเตอร์
การพัฒนาและติดตั้งระบบ
5 แบบจำลองกระบวนการ Process Modeling
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
การพัฒนาระบบสารสนเทศ (Information System Development)
บทที่ 8 ผลิตภัณฑ์การบริหารการผลิต
ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์
(การนำเสนอข้อมูลด้วยตารางด้วยเทคนิค storytelling)
บทที่ 2 การพัฒนาระบบสารสนเทศ
วิศวกรรมซอฟต์แวร์ วิศวกรรมซอฟต์แวร์ (Software Engineering)
[ บทที่ 3 ] ระบบสารสนเทศ.
กรอบแนวคิดชุดวิจัย Cluster วัยเรียน
กลยุทธ์การทดสอบซอฟต์แวร์ วิศวกรรมซอฟต์แวร์ (Software Engineering)
Introduction to Structured System Analysis and Design
ใบสำเนางานนำเสนอ:

บทที่ 3 กระบวนการผลิตซอฟต์แวร์ (Software Process) 30/07/62

Outline กระบวนการผลิตซอฟต์แวร์ 1 ความสัมพันธ์ระหว่างกระบวนการผลิตซอฟต์แวร์และกระบวนการวิศวกรรม 2 แบบจำลองกระบวนการผลิตซอฟต์แวร์ 3 การปรับปรุงกระบวนการด้วย CMM และ CMMI 4 เครื่องมือและระเบียบวิธีที่ใช้ในวิศวกรรมซอฟต์แวร์ 5 30/07/62

กระบวนการผลิตซอฟต์แวร์ มีความท้าทาย มีการผลิตที่ใช้วัตถุดิบที่เป็นนามธรรม ควบคุมการผลิตได้ยาก เป็นเครื่องมือควบคุมการผลิต แบบจำลองของกระบวนการผลิตซอฟต์แวร์ (Software Process Model) 30/07/62

กระบวนการ (Process) กระบวนการ (Process) คือ กลุ่มของขั้นตอนการทำงาน ที่ประกอบด้วยชุดกิจกรรม ข้อจำกัด และทรัพยากรที่จะได้ผลิตเป็นผลลัพธ์บางชนิดตามต้องการ กระบวนการ (Process) จะมีลำดับขั้นตอนในการผลิตจะดำเนินการตามลำดับเหมือนเดิมทุกครั้ง 30/07/62

กระบวนการ (Process) กระบวนการโดยทั่วไปจะมีลักษณะ ดังนี้ 1. กระบวนการจะต้องระบุกิจกรรมทั้งหมดอย่างชัดเจน 2. กระบวนการจะใช้ทรัพยากรภายใต้ข้อจำกัดต่างๆ เพื่อผลิตเป็น ผลิตภัณฑ์ที่แล้วเสร็จ 3. กระบวนการหนึ่ง อาจประกอบขึ้นจากกระบวนการย่อยอื่นๆ ที่ มีความสัมพันธ์กัน 30/07/62

กระบวนการ (Process) 4. ทุกกิจกรรมของกระบวนการจะมีเงื่อนไขในการเริ่มต้น 4. ทุกกิจกรรมของกระบวนการจะมีเงื่อนไขในการเริ่มต้น และสิ้นสุดกิจกรรม 5. ทุกขั้นตอนและทุกกิจกรรมของกระบวนการจะต้องมีเป้าหมาย อย่างชัดเจน และต้องมีหลักการหรือแนวทางในการปฏิบัติ เพื่อให้บรรลุเป้าหมายนั้น 6. ข้อจำกัดหรือเงื่อนไขสามารถนำมาใช้ควบคุมการดำเนินกิจกรรม การใช้ทรัพยากร หรือแม้กระทั่งตัวผลิตภัณฑ์เองได้ 30/07/62

กระบวนการผลิตซอฟต์แวร์ กระบวนการ คือ กรอบของการดำเนินงานเพื่อให้บรรลุวัตถุประสงค์ใด ๆ เพื่อให้บรรลุวัตถุประสงค์ในการสร้างซอฟต์แวร์จึงต้องมีการกำหนดกระบวนการสร้างซอฟต์แวร์ สิ่งที่ได้จากกระบวนการสร้างซอฟต์แวร์ คือ ผลิตภัณฑ์ซอฟต์แวร์ (Software Product) วิศวกรรมซอฟต์แวร์ จะเรียกกระบวนการสร้างซอฟต์แวร์ว่า “Software Process” 30/07/62

กระบวนการผลิตซอฟต์แวร์ กระบวนการซอฟต์แวร์ คือ กรอบการดำเนินกิจกรรมในการสร้างซอฟต์แวร์ที่มีคุณภาพ [Pressman, 2005] กระบวนการซอฟต์แวร์ คือ กลุ่มของกิจกรรมและผลลัพธ์ของแต่ละกิจกรรมเพื่อการผลิตเป็นผลิตภัณฑ์ที่เรียกว่า “ซอฟต์แวร์” โดยมีกิจกรรมพื้นฐานทั้งหมด 4 กิจกรรม การกำหนดคุณสมบัติของซอฟต์แวร์ (Software Specification) การออกแบบและสร้างซอฟต์แวร์ (Software Design and Implementation) การทวนสอบซอฟต์แวร์ (Software Validation) การวิวัฒนาการของซอฟต์แวร์ (Software Evolution) [Sommerville, 2007] 30/07/62

กระบวนการผลิตซอฟต์แวร์ 1. software specification นิยามหน้าที่ต่างๆที่ต้องมีในซอฟต์แวร์ และระบุข้อจำกัดต่างๆ ที่เกี่ยวข้องกับกระบวนพัฒนาซอฟต์แวร์ 2. Software Design and Implementation ทำการสร้าง / พัฒนาซอฟต์แวร์ให้ตรงกับข้อกำหนด (specification) 3. software validation ทำการตรวจสอบความถูกต้องของซอฟต์แวร์ เพื่อให้เกิดความมั่นใจ ว่าซอฟต์แวร์ที่ผลิตขึ้นได้ตรงกับความต้องการของลูกค้า 4. software evolution ในทางปฏิบัติ เมื่อซอฟต์แวร์ใช้งานได้ระยะหนึ่งแล้ว ผู้ใช้หรือลูกค้าอาจมีความต้องการเพิ่มเติมหรือเปลี่ยนแปลงความต้องการบางอย่าง ดังนั้นขั้นตอนการพัฒนาซอฟต์แวร์ ต้องมีการเตรียมการบางอย่างเพื่อจัดการกับเหตุการณ์ที่คาดหมายว่าจะเกิดขึ้นในอนาคต 30/07/62

กระบวนการผลิตซอฟต์แวร์ กระบวนการซอฟต์แวร์ (Software Process) หมายถึง กลุ่มของกิจกรรม วิธีการ วิธีการปฏิบัติ และการเปลี่ยนแปลงที่ใช้ในการพัฒนาและบำรุงรักษา ซอฟต์แวร์ ตลอดจนผลิตภัณฑ์ที่เกี่ยวเนื่อง กระบวนการซอฟต์แวร์ประกอบด้วย คน วิธีการ และเครื่องมือ ในกระบวนการผลิตซอฟต์แวร์ อาจแตกต่างกันที่เครื่องมือ เทคนิค และเทคโนโลยีที่เลือกใช้ ในกระบวนการผลิตซอฟต์แวร์ มีการดำเนินการตามลำดับขั้นตอนเหมือนกัน กิจกรรมต่าง ๆ ในกระบวนการผลิตซอฟต์แวร์สามารถปรับเปลี่ยนให้เข้ากับลักษณะงานได้ 30/07/62

กระบวนการผลิตซอฟต์แวร์ กระบวนการซอฟต์แวร์ (Software Process) = กระบวนการพัฒนาซอฟต์แวร์ (Software Development Process) กระบวนการทำหน้าที่เป็นกรอบในการสร้างผลิตภัณฑ์ใด ๆ หรือเรียกกระบวนการ ได้อีกอย่างว่า “วงจรชีวิตหรือวัฏจักรชีวิต (Life Cycle)” ของผลิตภัณฑ์ กระบวนการซอฟต์แวร์ หรือ กระบวนการพัฒนาซอฟต์แวร์ เรียกอีกอย่างหนึ่งว่า “วัฏจักรชีวิตของซอฟต์แวร์ (Software Life Cycle) 30/07/62

กระบวนการทั่วไปในการพัฒนาซอฟต์แวร์ วิเคราะห์ ออกแบบ เขียนโปรแกรม ทดสอบ 30/07/62

Software Life Cycle Requirement Analysis Design Implement : Code Test Maintenance 30/07/62

“Requirement Definition” Requirement Analysis Definition Function Trend Response Time Performance Feasibility Study “Requirement Definition” 30/07/62

“ Technical Specification ” Design Data Structure S/W Architecture Module / Function Relation between modules “ Technical Specification ” 30/07/62

Implement “ Executable Program ” By Chosen Language Accurate Efficient Reliable Flexible Well-Documented Readable “ Executable Program ” 30/07/62

Testing Internal External “ Program ” 30/07/62

Maintenance Corrective Maintenance แก้ไขข้อผิดพลาดในโปรแกรม Adaptive Maintenance แก้ไข S/W เมื่อ H/W เปลี่ยนแปลง Perfective Maintenance เปลี่ยนแปลงตามความต้องการของผู้ใช้ Perventive Maintenance เอื้อให้การบำรุงรักษาในอนาคตง่ายขึ้น 30/07/62

System Development Life Cycle : SDLC วงจรการพัฒนาระบบงาน สำหรับระบบทั่วไปที่ได้มีการคิดค้นขึ้นมา สามารถแบ่งออกเป็นลำดับขั้นได้ 4 ขั้นตอน คือ 1. การวิเคราะห์ระบบงาน 2. การออกแบบและวางระบบงาน 3. การนำระบบเข้าสู่ธุรกิจหรือผู้ใช้ 4. การดำเนินการสนับสนุนภายหลังการติดตั้งระบบงาน 30/07/62

System Development Life Cycle : SDLC วงจรการพัฒนาระบบงาน 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน แสดงวงจรกิจกรรมต่าง ๆ ในแต่ละขั้นตอน ตั้งแต่ต้นจนเสร็จเป็นระบบงานที่ใช้ได้ Identifying Problems, Opportunity and Objective Feasibility Study Analyzing System Needs Designing the Recommended System Developing and Documenting Software Testing and Maintaining the System Implementing and evaluating the System 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน 1. ค้นหาปัญหา โอกาสและเป้าหมาย (Identifying Problems, Opportunity and Objective) ระบบสารสนเทศจะเกิดขึ้นได้ก็ต่อเมื่อผู้บริหารหรือผู้ใช้ตระหนักว่าต้องการระบบสารสนเทศ หรือต้องแก้ไขระบบเดิม โดยมีขั้นตอนดังนี้ 1.1 นักวิเคราะห์และออกแบบระบบ ต้องศึกษาระบบโดยละเอียด เพื่อให้เข้าใจถึงปัญหาที่เกิดขึ้นในองค์กร ตัวอย่างปัญหา 1.2 พยายามหาโอกาสในการปรับปรุงวิธีการทำงานโดยการใช้ระบบคอมพิวเตอร์ 1.3 นักวิเคราะห์และออกแบบระบบ ต้องมองเป้าหมายให้ชัดเจน 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน 2. ศึกษาความเป็นไปได้ (Feasibility Study) 2.1 กำหนดว่าปัญหาคืออะไร และตัดสินใจว่าจะพัฒนาสร้างระบบสารสนเทศใหม่หรือการแก้ไขระบบสารสนเทศเดิมมีความเป็นไปได้หรือไม่ โดยเสียค่าใช้จ่ายและเวลาน้อยที่สุด 2.2 นักวิเคราะห์และออกแบบระบบ ต้องกำหนดให้ได้ว่าการแก้ปัญหานั้น 2.2.1 มีความเป็นไปได้ทางเทคนิคหรือไม่ 2.2.2 มีความเป็นไปได้ทางบุคลากรหรือไม่ 2.2.3 มีความเป็นไปได้ทางเศรษฐศาสตร์หรือไม่ 30/07/62

ดังนั้นในการศึกษาความเป็นไปได้นั้นสามารถสรุปได้ดังต่อไปนี้ คือ • หน้าที่ : กำหนดปัญหาและศึกษาว่าเป็นไปได้หรือไม่ที่จะเปลี่ยนแปลงระบบ • ผลลัพธ์ : รายงานความเป็นไปได้ • เครื่องมือ : เก็บรวบรวมข้อมูลของระบบและคาดคะเนความต้องการของระบบ • บุคลากรและหน้าที่รับผิดชอบ : • นักวิเคราะห์และออกแบบระบบ - ต้องเก็บรวบรวมข้อมูลทั้งหมดที่จำเป็น - ต้องคาดคะเนความต้องการของระบบและแนวทางแก้ไขปัญหา - กำหนดความต้องการที่แน่ชัด เพื่อใช้ในการวิเคราะห์ระบบ โดยที่ผู้บริหารจะ ตัดสินใจว่าจะดำเนินโครงการต่อไปหรือไม่หรือยกเลิกโครงการ 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน 3. วิเคราะห์ความต้องการของระบบ (Analyzing System Needs) 3.1 เริ่มตั้งแต่ศึกษาการทำงานของธุรกิจเดิม ว่าทำงานอย่างไร 3.2 กำหนดความต้องการของระบบใหม่ 3.3 เครื่องมือ : Data Dictionary, DFD, Process Specification, Data Model, Prototype 3.4 บุคลากรและหน้าที่ : ผู้ใช้ต้องให้ความร่วมมือ 3.5 นักวิเคราะห์และออกแบบระบบศึกษาเอกสารที่มีอยู่ และศึกษาระบบเดิมเพื่อให้เข้าใจขั้นตอนการทำงานของระบบ 3.6 นักวิเคราะห์และออกแบบระบบเตรียมรายงานความต้องการของระบบใหม่ 3.7 นักวิเคราะห์และออกแบบระบบเขียนแผนภาพการทำงาน (DFD) ของระบบเดิมและระบบใหม่ 3.8 นักวิเคราะห์และออกแบบระบบสร้าง Prototype ขึ้นมาก่อน 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน 4. การออกแบบระบบ (Designing the Recommended System) 4.1 ออกแบบระบบใหม่เพื่อให้สอดคล้องกับความต้องการของผู้ใช้และผู้บริหาร 4.2 บุคลากรหน้าที่ : 4.2.1 นักวิเคราะห์และออกแบบระบบตัดสินใจเลือกฮาร์ดแวร์และซอฟต์แวร์ 4.2.2 นักวิเคราะห์และออกแบบระบบออกแบบข้อมูล เข้ารายงานการแสดงผลบนหน้าจอ ออกแบบฐานข้อมูล 4.2.3 นักวิเคราะห์และออกแบบระบบกำหนดจำนวนบุคลากรในระบบ 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน 5. พัฒนาซอฟต์แวร์และจัดทำเอกสาร (Developing and Documenting Software) 5.1 เขียนโปรแกรม จัดทำคู่มือการใช้โปรแกรม และฝึกอบรมผู้ใช้ที่เกี่ยวข้องในระบบ 5.2 บุคลากรและหน้าที่ : 5.2.1 นักวิเคราะห์และออกแบบระบบเตรียมสถานที่และการติดตั้งเครื่องคอมพิวเตอร์ 5.2.2 นักวิเคราะห์และออกแบบระบบวางแผนและดูแลการเขียนโปรแกรม 5.2.3 โปรแกรมเมอร์เขียนโปรแกรม 5.2.4 นักวิเคราะห์และออกแบบระบบดูแลการเขียนคู่มือการใช้โปรแกรมและการฝึกอบรม 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน 6. ทดสอบและบำรุงรักษาระบบ (Testing and Maintaining the System) 6.1 นักวิเคราะห์และออกแบบระบบและทีมงานทดสอบโปรแกรม 6.2 ผู้ใช้ตรวจสอบว่าโปรแกรมทำงานตามที่ต้องการ 6.3 ถ้าเกิดข้อผิดพลาดของโปรแกรม ให้ปรับปรุงแก้ไข 6.4 เมื่อทดสอบโปรแกรมแล้ว โปรแกรมไม่เป็นไปตามความต้องการ อาจต้องแก้ไขปรับปรุงใหม่ 6.5 การบำรุงรักษา ส่วนใหญ่เป็นการแก้ไขโปรแกรมหลังจากใช้งานแล้ว 30/07/62

System Development Life Cycle : SDLC 7 ขั้นตอน 7. ดำเนินงานและประเมินผล (Implementing and evaluating the System) 7.1 ติดตั้งระบบให้พร้อม 7.2 นำระบบใหม่มาใช้แทนระบบเดิม 7.3 ใช้ระบบใหม่ควบคู่กับระบบเดิมสักระยะหนึ่ง แล้วดูผลลัพธ์ว่าตรงกันหรือไม่ถ้าใช้งานดี ก็เลิกใช้ระบบเดิม และใช้ระบบใหม่ 7.4 นักวิเคราะห์และออกแบบระบบทำการประเมินผล เพื่อให้ทราบถึงความพอใจของผู้ใช้ระบบ หรือสิ่งที่ต้องแก้ไขปรับปรุง หรือปัญหาที่พบ 30/07/62

SDLC แบบอื่นๆ 30/07/62

SDLC แบบอื่นๆ 30/07/62

ความเป็นมาของ SDLC ในปัจจุบัน 30/07/62

WHAT ????? V & V 30/07/62

Verification การตรวจสอบว่า ระบบทำงานตามที่กำหนดไว้หรือไม่ ? Are we building the system right ? Boehm 30/07/62

Validation การตรวจสอบว่า ระบบสามารถทำงานตามความต้องการของผู้ใช้หรือไม่ ? Are we building the right system ? Boehm 30/07/62

Verification & Validation คือ กระบวนการตรวจสอบและยืนยันความถูกต้องของระบบงาน เป็นกระบวนการที่ช่วยให้ผู้พัฒนาระบบมีความแน่ใจว่าระบบที่พัฒนานั้น ตรงตามข้อกำหนดตกลงไว้กับผู้ใช้หรือผู้จัดการระบบ และตรงกับความต้องการของผู้ใช้ระบบนั้นอยู่เสมอ 30/07/62

จุดมุ่งหมายของกระบวนการ V & V เพื่อค้นพบข้อบกพร่องผิดพลาดของระบบ เพื่อประเมินว่าระบบนั้นสามารถใช้งานได้จริง ในสภาพการทำงานจริงหรือไม่ 30/07/62

ข้อแตกต่างของ V & V Validation Verification การตรวจสอบว่าระบบที่พัฒนาขึ้นมานั้นถูกต้องหรือไม่ Verification การตรวจสอบว่าการพัฒนาสร้างระบบทำอย่างถูกต้องหรือไม่ 30/07/62

กระบวนการทดสอบ แบ่งออกเป็น 2 ส่วนคือ Software Testing System Testing การทดสอบโปรแกรม System Testing การทดสอบระบบ 30/07/62

กลยุทธ์การทดสอบโปรแกรม มีใช้ 2 แบบคือ Black Box Testing White Box Testing 30/07/62

Black Box Testing เป็นการทดสอบโดยไม่คำนึงถึงคำสั่งภายในโปรแกรม เป็นการทดสอบ Function ต่าง ๆ ของโปรแกรมตาม Requirements ที่มี เป็นการทดสอบโดยดูค่า Output จาก Input ที่ให้กับโปรแกรมต้องมีความสอดคล้องกัน 30/07/62

Black Box Testing 30/07/62

Black Box Testing 30/07/62

Black Box Testing 30/07/62

การกำหนดข้อมูลในการทดสอบ ค่าตัวแทนของกลุ่ม ค่าสูงสุด ค่าต่ำสุด ค่าเกินพิกัด ค่าที่ผิดวิสัย 30/07/62

ตัวอย่าง โปรแกรมหนึ่งรับข้อมูลเป็นค่าจำนวนกล่องที่ส่งออก ในแต่ละเที่ยว โดยจำกัดว่าไม่เกิน 200,000 กล่อง และไม่ต่ำกว่า 100 กล่อง 30/07/62

ข้อมูลที่ใช้ทดสอบ ค่าตัวแทนของกลุ่ม ค่าสูงสุด ค่าต่ำสุด 120 กล่อง 200,000 กล่อง ค่าต่ำสุด 100 กล่อง 30/07/62

ข้อมูลที่ใช้ทดสอบ ค่าเกินพิกัดทางต่ำ ค่าเกินพิกัดทางสูง ค่าที่ผิดวิสัย 0, 99 กล่อง ค่าเกินพิกัดทางสูง 200,001 / 500,000 / 1,000,000 กล่อง ค่าที่ผิดวิสัย -200, 100.8, 100.5, 100.3, 1a กล่อง 30/07/62

White Box Testing เป็นการทดสอบเพื่อดูโครงสร้างของโปรแกรม หรือทางเดินในโปรแกรม ต้องสร้างชุดทดสอบเฉพาะสำหรับการทดสอบ ในเงื่อนไขต่าง ๆ ชุดทดสอบจะต้องประกอบด้วยชุดที่สามารถประมวลผลอย่างปกติและไม่ปกติ 30/07/62

White Box Testing 30/07/62

เทคนิคอื่น ๆ ในการทดสอบโปรแกรม แบ่งออกเป็น 2 กลุ่มใหญ่คือ Manual Testing การทดสอบโดยไม่ใช้เครื่องคอมพิวเตอร์ Automated Testing การทดสอบด้วยเครื่องคอมพิวเตอร์ 30/07/62

Manual Testing แบ่งได้เป็น 2 ชนิดคือ Inspection การทดสอบแบบตรวจไวยากรณ์ Desk Checking การทดสอบตามลำดับคำสั่งในโปรแกรม 30/07/62

Automated Testing แบ่งได้เป็น 5 ชนิดคือ Syntax checking การทดสอบด้วยการตรวจสอบไวยากรณ์ที่เขียนขึ้น Unit testing/Module Testing เป็นการทดสอบโปรแกรมทีละโมดูลเพื่อหาข้อผิดพลาดที่เกิดขึ้นภายในโมดูล 30/07/62

Automated Integration testing เป็นการทดสอบโปรแกรมโดยการเพิ่มจำนวนโมดูลแบ่งเป็น 2 ลักษณะคือ Top-Down Approach Bottom-Up Approach 30/07/62

Top-Down Approach 30/07/62

Bottom-Up Approach 30/07/62

Automated Stub testing System testing คือ กลุ่มคำสั่งสั้น ๆ ที่เขียนขึ้นมาเพื่อเป็นโมดูลตัวแทน ในการทดสอบโปรแกรม System testing เป็นการทดสอบโปรแกรมทุกโปรแกรมร่วมกันว่าได้ผลลัพธ์ที่ถูกต้องหรือไม่ 30/07/62

การทดสอบระบบ ทำ 2 ประการคือ การทดสอบเชิงสถิติ (Statistical Testing) เพื่อประเมินผลความถี่ของการใช้งานส่วนต่าง ๆ ของระบบ การทดสอบข้อบกพร่อง (Defect Testing) เป็นการทดสอบเพื่อตรวจสอบว่าระบบมีข้อบกพร่องผิดพลาดที่จุดใดบ้าง 30/07/62

Defect Testing 30/07/62

กลยุทธ์ในการทดสอบประสิทธิภาพของระบบ จำแนกได้เป็น 6 ด้านคือ Peak load testing การทดสอบการทำงานสูงสุด เป็นการทดสอบประสิทธิภาพในการประมวลผลของระบบ เมื่อมีการทำรายการมากที่สุด ณ เวลาใดเวลาหนึ่ง 30/07/62

กลยุทธ์ในการทดสอบประสิทธิภาพของระบบ Performance testing การทดสอบประสิทธิภาพของเวลา เป็นการทดสอบ เพื่อพิจารณาถึงช่วงเวลาที่ใช้ในการประมวลผลรายการ ว่าใช้ระยะเวลานานเพียงใดในการทำรายการ Recovery testing การทดสอบการกู้ระบบ เป็นการทดสอบความสามารถ ในการกู้ระบบกรณีที่ระบบล้ม 30/07/62

กลยุทธ์ในการทดสอบประสิทธิภาพของระบบ Storage testing การทดสอบการเก็บข้อมูล เป็นการทดสอบความสามารถของระบบในการเก็บข้อมูล ว่าสามารถเก็บข้อมูลได้สูงสุดเป็นจำนวนเท่าใด 30/07/62

กลยุทธ์ในการทดสอบประสิทธิภาพของระบบ Procedure testing การทดสอบกระบวนการ เป็นการทดสอบการจัดทำเอกสารคู่มือการดำเนินของระบบ และคู่มือการใช้งานสำหรับผู้ใช้ ว่าสามารถสร้างความเข้าใจให้กับผู้ใช้ได้มากน้อยเพียงใด 30/07/62

กลยุทธ์ในการทดสอบประสิทธิภาพของระบบ User testing การทดสอบผู้ใช้ เป็นการทดสอบการใช้งานจริงของระบบ เพื่อต้องการทราบว่าผู้ใช้จะทำอย่างไรเพื่อพบปัญหาที่เกิดขึ้น 30/07/62

กระบวนการทดสอบระบบ แบ่งออกเป็น 5 ขั้นตอนคือ Unit Testing การทดสอบส่วนย่อยของโปรแกรม Module Testing การทดสอบการทำงานร่วมกันของส่วนย่อยในระดับล่าง 30/07/62

กระบวนการทดสอบระบบ Subsystem Testing การทดสอบปัญหาของการไม่สอดประสานกันของหน่วยย่อยต่าง ๆ System Testing ตรวจสอบว่าระบบทั้งหมดทำงานได้ตรงตามข้อกำหนดหรือความต้องการของผู้ใช้อย่างแท้จริงหรือไม่ 30/07/62

กระบวนการทดสอบระบบ Acceptance Testing การทดสอบขั้นสุดท้ายก่อนที่ระบบจะถูกยอมรับได้ว่าสามารถทำงานได้จริง เป็นการทดสอบร่วมกันระหว่างผู้ใช้ระบบและผู้ออกแบบพัฒนาระบบ แบ่งได้เป็น 2 ประเภทคือ Alpha testing Beta testing 30/07/62

Acceptance Testing Alpha testing คือ การทดสอบความสมบูรณ์ของระบบโดยผู้ใช้ และใช้ข้อมูลสมมติในการทดสอบ จะสมมติให้ระบบ อยู่ในสถานการณ์ที่อาจจะเกิดขึ้นได้ 30/07/62

Acceptance Testing Alpha testing มีการทดสอบ 4 ประการคือ Recovery testing เป็นการทดสอบการกู้ระบบ Security testing เป็นการทดสอบความปลอดภัยของระบบ 30/07/62

Acceptance Testing Stress testing Performance testing เป็นการทดสอบประสิทธิภาพการทำงานของระบบภายใต้ความกดดัน Performance testing เป็นการทดสอบประสิทธิภาพการทำงานของระบบภายใต้สภาพแวดล้อมของคอมพิวเตอร์ 30/07/62

Acceptance Testing Beta testing คือ การทดสอบความสมบูรณ์ของระบบโดยผู้ใช้ และใช้ข้อมูลจริงในการทดสอบ และภายใต้สถานการณ์ที่เกิดขึ้นจริง 30/07/62

เกณฑ์การยอมรับงานของมนุษย์ แบ่งได้เป็นประเด็นต่าง ๆ ดังนี้ Time to learn ระยะเวลาที่ผู้ใช้ต้องเรียนรู้การใช้ส่วนต่าง ๆ ของระบบงาน Task Performance ความเร็วของการดำเนินงานแต่ละส่วน Error Rate อัตราความผิดพลาดที่เกิดขึ้น 30/07/62

เกณฑ์การยอมรับงานของมนุษย์ Subjective user satisfaction ระดับความพึงพอใจของผู้ใช้โดยส่วนรวม Human retention ความสามารถจดจำคำสั่งและการใช้งานได้ 30/07/62

การวางแผนการทดสอบระบบ กำหนดข้อตกลงเบื้องต้นและรายละเอียดของระบบ เตรียมแผนงานการทดสอบเพื่อการยอมรับระบบ นำข้อมูลการออกแบบมาใช้ในการวางแผนการทดสอบความสัมพันธ์ของระบบรวม กำหนดแผนการทดสอบความสัมพันธ์ของระบบย่อย 30/07/62

วิธีการประเมินผลการทำงานของระบบ การใช้แบบสอบถาม การบันทึกเทปการทำงานของผู้ใช้ การสร้างส่วนพิเศษภายในระบบ ให้สามารถบันทึกข้อมูลเกี่ยวกับการทำงานของผู้ใช้ การสร้างระบบให้ผู้ใช้สามารถบันทึกความคิดเห็นของตน ขณะกำลังใช้งานระบบนั้น ๆ 30/07/62

แบบทดสอบ ให้นักศึกษาตอบคำถามต่อไปนี้ 1. จงอธิบายความหมายของกระบวนการ 1. จงอธิบายความหมายของกระบวนการ 2. จงอธิบายความหมายของกระบวนการซอฟต์แวร์ 3. SDLC คืออะไร 4. Verification และ Validation แตกต่างกันอย่างไร 5. White Box Testing และ Black Box Testing แตกต่างกันอย่างไร 6. กระบวนการทดสอบประกอบด้วยกี่ส่วน อะไรบ้าง 7. จงอธิบายกลยุทธ์และเทคนิคในการทดสอบโปรแกรมมีอะไรบ้าง 8. จงอธิบายกลยุทธ์ในการทดสอบประสิทธิภาพของระบบมีอะไรบ้าง 9. กระบวนการทดสอบระบบมีกี่ขั้นตอน อะไรบ้าง 10. เกณฑ์การยอมรับงานของมนุษย์มีอะไรบ้าง 30/07/62

งาน Present CMM Agile Process Extreme Programming Adaptive Software Development Dynamic Systems Development Scrum Crystal Feature Driven Development Agile Modeling – AM 30/07/62

The End 30/07/62