การทดสอบระบบ

Download Report

Transcript การทดสอบระบบ

LOGO
กระบวนการผลิตซอฟต์ แวร์
(Software Process)
13/04/58
Nerissa Onkhum
1
Outline
13/04/58
1
กระบวนการผลิตซอฟต์ แวร์
2
ความสั มพันธ์ ระหว่ างกระบวนการผลิตซอฟต์ แวร์
และกระบวนการวิศวกรรม
3
แบบจาลองกระบวนการผลิตซอฟต์ แวร์
4
การปรับปรุงกระบวนการด้ วย CMM และ CMMI
5
เครื่องมือและระเบียบวิธีที่ใช้ ในวิศวกรรมซอฟต์ แวร์
2
กระบวนการผลิตซอฟต์ แวร์
•
•
•
•
•
13/04/58
มีความท้ าทาย
มีการผลิตทีใ่ ช้ วตั ถุดบิ ทีเ่ ป็ นนามธรรม
ควบคุมการผลิตได้ ยาก
เป็ นเครื่องมือควบคุมการผลิต
แบบจาลองของกระบวนการผลิตซอฟต์ แวร์
(Software Process Model)
3
กระบวนการ (Process)
กระบวนการ (Process) คือ กลุ่มของขั้นตอนการทางาน
ที่ประกอบด้วยชุดกิจกรรม ข้อจากัด และทรัพยากรที่จะได้ผลิต
เป็ นผลลัพธ์บางชนิดตามต้องการ
กระบวนการ (Process) จะมีลาดับขั้นตอนในการผลิตจะ
ดาเนินการตามลาดับเหมือนเดิมทุกครั้ง
13/04/58
4
กระบวนการ (Process)
กระบวนการโดยทั่วไปจะมีลกั ษณะ ดังนี้
1. กระบวนการจะต้องระบุกิจกรรมทั้งหมดอย่างชัดเจน
2. กระบวนการจะใช้ทรัพยากรภายใต้ขอ้ จากัดต่างๆ เพื่อผลิตเป็ น
ผลิตภัณฑ์ที่แล้วเสร็ จ
3. กระบวนการหนึ่ง อาจประกอบขึ้นจากกระบวนการย่อยอื่นๆ ที่
มีความสัมพันธ์กนั
13/04/58
5
กระบวนการ (Process)
4. ทุกกิจกรรมของกระบวนการจะมีเงื่อนไขในการเริ่ มต้น
และสิ้ นสุ ดกิจกรรม
5. ทุกขั้นตอนและทุกกิจกรรมของกระบวนการจะต้องมีเป้ าหมาย
อย่างชัดเจน และต้องมีหลักการหรื อแนวทางในการปฏิบตั ิ
เพื่อให้บรรลุเป้ าหมายนั้น
6. ข้อจากัดหรื อเงื่อนไขสามารถนามาใช้ควบคุมการดาเนินกิจกรรม
การใช้ทรัพยากร หรื อแม้กระทัง่ ตัวผลิตภัณฑ์เองได้
13/04/58
6
กระบวนการผลิตซอฟต์ แวร์
• กระบวนการ คือ กรอบของการดาเนินงานเพือ่ ให้ บรรลุวตั ถุประสงค์ใด
• เพือ่ ให้ บรรลุวตั ถุประสงค์ ในการสร้ างซอฟต์ แวร์ จึงต้ องมีการกาหนด
กระบวนการสร้ างซอฟต์ แวร์
• สิ่ งทีไ่ ด้ จากกระบวนการสร้ างซอฟต์ แวร์ คือ ผลิตภัณฑ์ ซอฟต์ แวร์
(Software Product)
• วิศวกรรมซอฟต์ แวร์ จะเรียกกระบวนการสร้ างซอฟต์ แวร์ ว่า “Software
Process”
13/04/58
7
กระบวนการผลิตซอฟต์ แวร์
• กระบวนการซอฟต์ แวร์ คือ กรอบการดาเนินกิจกรรมในการสร้างซอฟต์แวร์
ที่มีคุณภาพ [Pressman, 2005]
• กระบวนการซอฟต์ แวร์ คือ กลุ่มของกิจกรรมและผลลัพธ์ของแต่ละกิจกรรม
เพื่อการผลิตเป็ นผลิตภัณฑ์ที่เรี ยกว่า “ซอฟต์แวร์” โดยมีกิจกรรมพื้นฐาน
ทั้งหมด 4 กิจกรรม
• การกาหนดคุณสมบัติของซอฟต์แวร์ (Software Specification)
• การออกแบบและสร้างซอฟต์แวร์ (Software Design and Implementation)
• การทวนสอบซอฟต์แวร์ (Software Validation)
• การวิวฒั นาการของซอฟต์แวร์ (Software Evolution)
[Sommerville, 2007]
13/04/58
8
กระบวนการผลิตซอฟต์ แวร์
1. software specification
นิยามหน้าที่ต่างๆที่ตอ้ งมีในซอฟต์แวร์ และระบุขอ้ จากัดต่างๆ ที่เกี่ยวข้องกับกระบวนพัฒนา
ซอฟต์แวร์
2. Software Design and Implementation
ทาการสร้าง / พัฒนาซอฟต์แวร์ให้ตรงกับข้อกาหนด (specification)
3. software validation
ทาการตรวจสอบความถูกต้องของซอฟต์แวร์ เพื่อให้เกิดความมัน่ ใจ ว่าซอฟต์แวร์ที่ผลิตขึ้นได้
ตรงกับความต้องการของลูกค้า
4. software evolution
ในทางปฏิบตั ิ เมื่อซอฟต์แวร์ใช้งานได้ระยะหนึ่งแล้ว ผูใ้ ช้หรื อลูกค้าอาจมีความต้องการเพิม่ เติม
หรื อเปลี่ยนแปลงความต้องการบางอย่าง ดังนั้นขั้นตอนการพัฒนาซอฟต์แวร์ ต้องมีการ
เตรี ยมการบางอย่างเพื่อจัดการกับเหตุการณ์ที่คาดหมายว่าจะเกิดขึ้นในอนาคต
13/04/58
9
กระบวนการผลิตซอฟต์ แวร์
กระบวนการซอฟต์ แวร์ (Software Process) หมายถึง กลุ่มของกิจกรรม
วิธีการ วิธีการปฏิบตั ิ และการเปลี่ยนแปลงที่ใช้ในการพัฒนาและบารุ งรักษา
ซอฟต์แวร์ ตลอดจนผลิตภัณฑ์ที่เกี่ยวเนื่อง
กระบวนการซอฟต์แวร์ประกอบด้วย คน วิธีการ และเครื่ องมือ
ในกระบวนการผลิตซอฟต์แวร์ อาจแตกต่างกันที่เครื่ องมือ เทคนิค และ
เทคโนโลยีที่เลือกใช้
ในกระบวนการผลิตซอฟต์แวร์ มีการดาเนินการตามลาดับขั้นตอนเหมือนกัน
กิจกรรมต่าง ๆ ในกระบวนการผลิตซอฟต์แวร์สามารถปรับเปลี่ยนให้เข้ากับ
ลักษณะงานได้
13/04/58
10
กระบวนการผลิตซอฟต์ แวร์
กระบวนการซอฟต์ แวร์ (Software Process) = กระบวนการพัฒนาซอฟต์ แวร์
(Software Development Process)
 กระบวนการทาหน้ าทีเ่ ป็ นกรอบในการสร้ างผลิตภัณฑ์ ใด หรือเรียก
กระบวนการ ได้ อกี อย่ างว่ า “วงจรชีวติ หรือวัฏจักรชีวติ (Life Cycle)” ของ
ผลิตภัณฑ์
กระบวนการซอฟต์ แวร์ หรือ กระบวนการพัฒนาซอฟต์ แวร์ เรียกอีกอย่ างหนึ่ง
ว่ า “วัฏจักรชีวติ ของซอฟต์ แวร์ (Software Life Cycle)
13/04/58
11
กระบวนการทั่วไปในการพัฒนาซอฟต์ แวร์
• วิเคราะห์
• ออกแบบ
• เขียนโปรแกรม
• ทดสอบ
13/04/58
12
Software Life Cycle
• Requirement Analysis
• Design
• Implement : Code
• Test
• Maintenance
13/04/58
13
Requirement Analysis
• Definition
• Function
• Trend
• Response Time
• Performance
• Feasibility Study
“Requirement Definition”
13/04/58
14
Design
• Data Structure
• S/W Architecture
• Module / Function
• Relation between modules
“ Technical Specification ”
13/04/58
15
Implement
• By Chosen Language
• Accurate
• Efficient
• Reliable
• Flexible
• Well-Documented
• Readable
“ Executable Program ”
13/04/58
16
Testing
• Internal
• External
“ Program ”
13/04/58
17
Maintenance
• Corrective Maintenance
แก้ไขข้อผิดพลาดในโปรแกรม
• Adaptive Maintenance
แก้ไข S/W เมื่อ H/W เปลี่ยนแปลง
• Perfective Maintenance
เปลี่ยนแปลงตามความต้องการของผูใ้ ช้
• Perventive Maintenance
เอื้อให้การบารุ งรักษาในอนาคตง่ายขึ้น
13/04/58
18
System Development Life Cycle : SDLC
วงจรการพัฒนาระบบงาน
สาหรับระบบทัว่ ไปที่ได้มีการคิดค้นขึ้นมา สามารถแบ่งออกเป็ นลาดับขั้นได้ 4
ขั้นตอน คือ
1. การวิเคราะห์ระบบงาน
2. การออกแบบและวางระบบงาน
3. การนาระบบเข้าสู่ ธุรกิจหรื อผูใ้ ช้
4. การดาเนินการสนับสนุนภายหลังการติดตั้งระบบงาน
13/04/58
19
System Development Life Cycle : SDLC
วงจรการพัฒนาระบบงาน
เมื่อความต้องการเปลี่ยนแปลงไป และระบบงานที่กาลังปฏิบตั ิอยูเ่ ป็ นประจา
จาเป็ นต้องปรับปรุ งใหม่ นักวิเคราะห์ระบบจะต้องกลับไปเริ่ มต้นที่ข้ นั ที่ 1 ใหม่
และจะเป็ นเช่นนี้เรื่ อย ๆ ไป ถ้าเกิดความเปลี่ยนแปลงของระบบ
วงจรการพัฒนาระบบงาน (System Development Life Cycle : SDLC) ของ
ระบบสารสนเทศ ได้มีการคิดค้นขึ้นมาโดยมีข้ ึนตอนที่แตกต่างไปจากวงจรการ
พัฒนาระบบงานสาหรับระบบงานทัว่ ไป ตรงที่มีข้ นั ตอนในการพัฒนาระบบงานที่
ละเอียดว่าถึง 7 ขั้นตอน ซึ่ งนักวิเคราะห์ระบบต้องทาความเข้าใจว่าในแต่ละ
ขั้นตอนว่าทาอะไรและทาอย่างไร สามารถแบ่งออกเป็ นลาดับขั้นตอนดังนี้ คือ
13/04/58
20
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
13/04/58
21
System Development Life Cycle : SDLC 7 ขั้นตอน
1. ค้ นหาปัญหา โอกาสและเป้ าหมาย
(Identifying Problems, Opportunity and Objective)
ระบบสารสนเทศจะเกิดขึ้นได้กต็ ่อเมื่อผูบ้ ริ หารหรื อผูใ้ ช้ตระหนักว่าต้องการ
ระบบสารสนเทศ หรื อต้องแก้ไขระบบเดิม โดยมีข้ นั ตอนดังนี้
1.1 นักวิเคราะห์และออกแบบระบบ ต้องศึกษาระบบโดยละเอียด เพื่อให้
เข้าใจถึงปั ญหาที่เกิดขึ้นในองค์กร ตัวอย่างปั ญหา
1.2 พยายามหาโอกาสในการปรับปรุ งวิธีการทางานโดยการใช้ระบบ
คอมพิวเตอร์
1.3 นักวิเคราะห์และออกแบบระบบ ต้องมองเป้ าหมายให้ชดั เจน
13/04/58
22
System Development Life Cycle : SDLC 7 ขั้นตอน
2. ศึกษาความเป็ นไปได้ (Feasibility Study)
2.1 กาหนดว่าปั ญหาคืออะไร และตัดสิ นใจว่าจะพัฒนาสร้างระบบ
สารสนเทศใหม่หรื อการแก้ไขระบบสารสนเทศเดิมมีความเป็ นไปได้หรื อไม่ โดยเสี ย
ค่าใช้จ่ายและเวลาน้อยที่สุด
2.2 นักวิเคราะห์และออกแบบระบบ ต้องกาหนดให้ได้วา่ การแก้ปัญหานั้น
2.2.1 มีความเป็ นไปได้ทางเทคนิคหรื อไม่
2.2.2 มีความเป็ นไปได้ทางบุคลากรหรื อไม่
2.2.3 มีความเป็ นไปได้ทางเศรษฐศาสตร์ หรื อไม่
13/04/58
23
ดังนั้นในการศึกษาความเป็ นไปได้ น้ันสามารถสรุ ปได้ ดงั ต่ อไปนี้ คือ
• หน้าที่ : กาหนดปั ญหาและศึกษาว่าเป็ นไปได้หรื อไม่ที่จะเปลี่ยนแปลงระบบ
• ผลลัพธ์ : รายงานความเป็ นไปได้
• เครื่ องมือ : เก็บรวบรวมข้อมูลของระบบและคาดคะเนความต้องการของระบบ
• บุคลากรและหน้าที่รับผิดชอบ :
• นักวิเคราะห์และออกแบบระบบ
- ต้องเก็บรวบรวมข้อมูลทั้งหมดที่จาเป็ น
- ต้องคาดคะเนความต้องการของระบบและแนวทางแก้ไขปั ญหา
- กาหนดความต้องการที่แน่ชดั เพื่อใช้ในการวิเคราะห์ระบบ โดยที่ผบู ้ ริ หารจะ
ตัดสิ นใจว่าจะดาเนินโครงการต่อไปหรื อไม่หรื อยกเลิกโครงการ
13/04/58
24
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 ขึ้นมาก่อน
13/04/58
25
System Development Life Cycle : SDLC 7 ขั้นตอน
4. การออกแบบระบบ (Designing the Recommended System)
4.1 ออกแบบระบบใหม่เพื่อให้สอดคล้องกับความต้องการของผูใ้ ช้และผูบ้ ริ หาร
4.2 บุคลากรหน้าที่ :
4.2.1 นักวิเคราะห์และออกแบบระบบตัดสิ นใจเลือกฮาร์ดแวร์และซอฟต์แวร์
4.2.2 นักวิเคราะห์และออกแบบระบบออกแบบข้อมูล เข้ารายงานการ
แสดงผลบนหน้าจอ ออกแบบฐานข้อมูล
4.2.3 นักวิเคราะห์และออกแบบระบบกาหนดจานวนบุคลากรในระบบ
13/04/58
26
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 นักวิเคราะห์และออกแบบระบบดูแลการเขียนคู่มือการใช้โปรแกรม
และการฝึ กอบรม
13/04/58
27
System Development Life Cycle : SDLC 7 ขั้นตอน
6. ทดสอบและบารุ งรักษาระบบ (Testing and Maintaining the System)
6.1 นักวิเคราะห์และออกแบบระบบและทีมงานทดสอบโปรแกรม
6.2 ผูใ้ ช้ตรวจสอบว่าโปรแกรมทางานตามที่ตอ้ งการ
6.3 ถ้าเกิดข้อผิดพลาดของโปรแกรม ให้ปรับปรุ งแก้ไข
6.4 เมื่อทดสอบโปรแกรมแล้ว โปรแกรมไม่เป็ นไปตามความต้องการ อาจต้อง
แก้ไขปรับปรุ งใหม่
6.5 การบารุ งรักษา ส่ วนใหญ่เป็ นการแก้ไขโปรแกรมหลังจากใช้งานแล้ว
13/04/58
28
System Development Life Cycle : SDLC 7 ขั้นตอน
7. ดาเนินงานและประเมินผล (Implementing and evaluating the System)
7.1 ติดตั้งระบบให้พร้อม
7.2 นาระบบใหม่มาใช้แทนระบบเดิม
7.3 ใช้ระบบใหม่ควบคู่กบั ระบบเดิมสักระยะหนึ่ ง แล้วดูผลลัพธ์วา่ ตรงกัน
หรื อไม่ถา้ ใช้งานดี ก็เลิกใช้ระบบเดิม และใช้ระบบใหม่
7.4 นักวิเคราะห์และออกแบบระบบทาการประเมินผล เพื่อให้ทราบถึงความ
พอใจของผูใ้ ช้ระบบ หรื อสิ่ งที่ตอ้ งแก้ไขปรับปรุ ง หรื อปั ญหาที่พบ
13/04/58
29
SDLC แบบอืน่
13/04/58
30
SDLC แบบอืน่
13/04/58
31
ความเป็ นมาของ SDLC ในปัจจุบัน
13/04/58
32
WHAT ?????
V&V
13/04/58
33
Verification
การตรวจสอบว่า ระบบทางานตามที่กาหนดไว้หรื อไม่ ?
Are we building the system right ?
Boehm
13/04/58
34
Validation
การตรวจสอบว่า ระบบสามารถทางานตามความต้องการของ
ผูใ้ ช้หรื อไม่ ?
Are we building the right system ?
Boehm
13/04/58
35
Verification & Validation
คือ กระบวนการตรวจสอบและยืนยันความถูกต้องของ
ระบบงาน
เป็ นกระบวนการที่ช่วยให้ผพู้ ฒั นาระบบมีความแน่ใจว่าระบบที่
พัฒนานั้น ตรงตามข้อกาหนดตกลงไว้กบั ผูใ้ ช้หรื อผูจ้ ดั การ
ระบบ และตรงกับความต้องการของผูใ้ ช้ระบบนั้นอยูเ่ สมอ
13/04/58
36
จุดมุ่งหมายของกระบวนการ V & V
เพื่อค้นพบข้อบกพร่ องผิดพลาดของระบบ
เพื่อประเมินว่าระบบนั้นสามารถใช้งานได้จริ ง ในสภาพการทางานจริ ง
หรื อไม่
13/04/58
37
ข้ อแตกต่ างของ V & V
Validation
 การตรวจสอบว่าระบบที่พฒั นาขึ้นมานั้นถูกต้องหรื อไม่
Verification
 การตรวจสอบว่าการพัฒนาสร้างระบบทาอย่างถูกต้อง
หรื อไม่
13/04/58
38
กระบวนการทดสอบ
แบ่งออกเป็ น 2 ส่ วนคือ
Software Testing
 การทดสอบโปรแกรม
System Testing
 การทดสอบระบบ
13/04/58
39
กลยุทธ์ การทดสอบโปรแกรม
มีใช้ 2 แบบคือ
Black Box Testing
White Box Testing
13/04/58
40
Black Box Testing
เป็ นการทดสอบโดยไม่คานึงถึงคาสัง่ ภายในโปรแกรม
เป็ นการทดสอบ Function ต่าง ๆ ของโปรแกรมตาม
Requirements ที่มี
เป็ นการทดสอบโดยดูค่า Output จาก Input ที่ให้กบั โปรแกรม
ต้องมีความสอดคล้องกัน
13/04/58
41
Black Box Testing
Input test data
I
Inputs causing
anomalous
behaviour
e
System
Output test results
13/04/58
Oe
Outputs which reveal
the presence of
defects
42
Black Box Testing
Invalid inputs
Valid inputs
System
Outputs
13/04/58
43
Black Box Testing
3
4
Less than 4
7
11
10
Between 4 and 10
More than 10
Number of input values
9999
10000
Less than 10000
Input values
13/04/58
50000
100000
99999
Between 10000 and 99999
More than 99999
44
การกาหนดข้ อมูลในการทดสอบ
ค่าตัวแทนของกลุ่ม
ค่าสู งสุ ด
ค่าต่าสุ ด
ค่าเกินพิกดั
ค่าที่ผดิ วิสยั
13/04/58
45
ตัวอย่ าง
โปรแกรมหนึ่งรับข้อมูลเป็ นค่าจานวนกล่องที่ส่งออก
ในแต่ละเที่ยว โดยจากัดว่าไม่เกิน 200,000 กล่อง
และไม่ต่ากว่า 100 กล่อง
13/04/58
46
ข้ อมูลทีใ่ ช้ ทดสอบ
ค่าตัวแทนของกลุ่ม
 120 กล่อง
ค่าสู งสุ ด
 200,000 กล่อง
ค่าต่าสุ ด
 100 กล่อง
13/04/58
47
ข้ อมูลทีใ่ ช้ ทดสอบ
ค่าเกินพิกดั ทางต่า
 0, 99 กล่อง
ค่าเกินพิกดั ทางสู ง
 200,001 / 500,000 / 1,000,000 กล่อง
ค่าที่ผดิ วิสยั
 -200, 100.8, 100.5, 100.3, 1a กล่อง
13/04/58
48
White Box Testing
เป็ นการทดสอบเพื่อดูโครงสร้างของโปรแกรม หรื อ
ทางเดินในโปรแกรม
ต้องสร้างชุดทดสอบเฉพาะสาหรับการทดสอบ
ในเงื่อนไขต่าง ๆ
ชุดทดสอบจะต้องประกอบด้วยชุดที่สามารถประมวลผล
อย่างปกติและไม่ปกติ
13/04/58
49
White Box Testing
Test data
Tests
Derives
Component
code
13/04/58
Test
outputs
50
เทคนิคอืน่ ในการทดสอบโปรแกรม
แบ่ งออกเป็ น 2 กลุ่มใหญ่ คอื
Manual Testing
 การทดสอบโดยไม่ ใช้ เครื่องคอมพิวเตอร์
Automated Testing
 การทดสอบด้ วยเครื่องคอมพิวเตอร์
13/04/58
51
Manual Testing
แบ่ งได้ เป็ น 2 ชนิดคือ
Inspection
 การทดสอบแบบตรวจไวยากรณ์
Desk Checking
 การทดสอบตามลาดับคาสั่ งในโปรแกรม
13/04/58
52
Automated Testing
แบ่งได้เป็ น 5 ชนิดคือ
Syntax checking
 การทดสอบด้วยการตรวจสอบไวยากรณ์ที่เขียนขึ้น
Unit testing/Module Testing
 เป็ นการทดสอบโปรแกรมทีละโมดูลเพื่อหาข้อผิดพลาดที่
เกิดขึ้นภายในโมดูล
13/04/58
53
Automated
Integration testing
 เป็ นการทดสอบโปรแกรมโดยการเพิ่มจานวนโมดูลแบ่งเป็ น
2 ลักษณะคือ
• Top-Down Approach
• Bottom-Up Approach
13/04/58
54
Top-Down Approach
Level 1
Testing
sequence
Level 2
Level 1
Level 2
Level 2
. ..
Level 2
Level 2
stubs
Level 3
stubs
13/04/58
55
Bottom-Up Approach
Test
drivers
Level N
Test
drivers
13/04/58
Level N
Level N–1
Le vel N
Level N–1
Level N
Level N
Testing
sequence
Level N–1
56
Automated
Stub testing
 คือ กลุ่มคาสัง่ สั้น ๆ ที่เขียนขึ้นมาเพื่อเป็ นโมดูลตัวแทน
ในการทดสอบโปรแกรม
System testing
 เป็ นการทดสอบโปรแกรมทุกโปรแกรมร่ วมกันว่าได้ผลลัพธ์
ที่ถูกต้องหรื อไม่
13/04/58
57
การทดสอบระบบ
ทา 2 ประการคือ
การทดสอบเชิงสถิติ (Statistical Testing)
 เพื่อประเมินผลความถี่ของการใช้งานส่ วนต่าง ๆ ของระบบ
การทดสอบข้ อบกพร่ อง (Defect Testing)
 เป็ นการทดสอบเพื่อตรวจสอบว่าระบบมีขอ้ บกพร่ อง
ผิดพลาดที่จุดใดบ้าง
13/04/58
58
Defect Testing
Test
cases
Design test
cases
13/04/58
Test
data
Prepare test
data
Test
results
Run program
with test data
Test
reports
Compare results
to test cases
59
กลยุทธ์ ในการทดสอบประสิ ทธิภาพของระบบ
จาแนกได้เป็ น 6 ด้านคือ
Peak load testing
 การทดสอบการทางานสูงสุ ด เป็ นการทดสอบ
ประสิ ทธิภาพในการประมวลผลของระบบ เมื่อมีการ
ทารายการมากที่สุด ณ เวลาใดเวลาหนึ่ง
13/04/58
60
กลยุทธ์ ในการทดสอบประสิ ทธิภาพของระบบ
Performance testing
 การทดสอบประสิ ทธิภาพของเวลา เป็ นการทดสอบ
เพื่อพิจารณาถึงช่วงเวลาที่ใช้ในการประมวลผลรายการ
ว่าใช้ระยะเวลานานเพียงใดในการทารายการ
Recovery testing
 การทดสอบการกูร้ ะบบ เป็ นการทดสอบความสามารถ
ในการกูร้ ะบบกรณี ที่ระบบล้ม
13/04/58
61
กลยุทธ์ ในการทดสอบประสิ ทธิภาพของระบบ
Storage testing
 การทดสอบการเก็บข้อมูล เป็ นการทดสอบความสามารถของ
ระบบในการเก็บข้อมูล ว่าสามารถเก็บข้อมูลได้สูงสุ ดเป็ น
จานวนเท่าใด
13/04/58
62
กลยุทธ์ ในการทดสอบประสิ ทธิภาพของระบบ
Procedure testing
 การทดสอบกระบวนการ เป็ นการทดสอบการจัดทาเอกสาร
คู่มือการดาเนินของระบบ และคู่มือการใช้งานสาหรับผูใ้ ช้ ว่า
สามารถสร้างความเข้าใจให้กบั ผูใ้ ช้ได้มากน้อยเพียงใด
13/04/58
63
กลยุทธ์ ในการทดสอบประสิ ทธิภาพของระบบ
User testing
 การทดสอบผูใ้ ช้ เป็ นการทดสอบการใช้งานจริ งของระบบ
เพื่อต้องการทราบว่าผูใ้ ช้จะทาอย่างไรเพื่อพบปั ญหาที่เกิดขึ้น
13/04/58
64
กระบวนการทดสอบระบบ
แบ่งออกเป็ น 5 ขั้นตอนคือ
Unit Testing
 การทดสอบส่ วนย่อยของโปรแกรม
Module Testing
 การทดสอบการทางานร่ วมกันของส่ วนย่อยในระดับล่าง
13/04/58
65
กระบวนการทดสอบระบบ
Subsystem Testing
 การทดสอบปั ญหาของการไม่สอดประสานกันของหน่วย
ย่อยต่าง ๆ
System Testing
 ตรวจสอบว่าระบบทั้งหมดทางานได้ตรงตามข้อกาหนดหรื อ
ความต้องการของผูใ้ ช้อย่างแท้จริ งหรื อไม่
13/04/58
66
กระบวนการทดสอบระบบ
Acceptance Testing
 การทดสอบขั้นสุ ดท้ายก่อนที่ระบบจะถูกยอมรับได้วา่
สามารถทางานได้จริ ง
 เป็ นการทดสอบร่ วมกันระหว่างผูใ้ ช้ระบบและ
ผูอ้ อกแบบพัฒนาระบบ
 แบ่งได้เป็ น 2 ประเภทคือ
• Alpha testing
• Beta testing
13/04/58
67
Acceptance Testing
Alpha testing
 คือ การทดสอบความสมบูรณ์ของระบบโดยผูใ้ ช้
และใช้ขอ้ มูลสมมติในการทดสอบ จะสมมติให้ระบบ
อยูใ่ นสถานการณ์ที่อาจจะเกิดขึ้นได้
13/04/58
68
Acceptance Testing
Alpha testing มีการทดสอบ 4 ประการคือ
 Recovery testing
• เป็ นการทดสอบการกูร้ ะบบ
 Security testing
• เป็ นการทดสอบความปลอดภัยของระบบ
13/04/58
69
Acceptance Testing
 Stress testing
• เป็ นการทดสอบประสิ ทธิภาพการทางานของระบบ
ภายใต้ความกดดัน
 Performance testing
• เป็ นการทดสอบประสิ ทธิภาพการทางานของระบบ
ภายใต้สภาพแวดล้อมของคอมพิวเตอร์
13/04/58
70
Acceptance Testing
Beta testing
 คือ การทดสอบความสมบูรณ์ของระบบโดยผูใ้ ช้
และใช้ขอ้ มูลจริ งในการทดสอบ และภายใต้สถานการณ์
ที่เกิดขึ้นจริ ง
13/04/58
71
เกณฑ์ การยอมรับงานของมนุษย์
แบ่ งได้ เป็ นประเด็นต่ าง ดังนี้
Time to learn
 ระยะเวลาทีผ่ ู้ใช้ ต้องเรียนรู้ การใช้ ส่วนต่ าง ของ
ระบบงาน
Task Performance
 ความเร็วของการดาเนินงานแต่ ละส่ วน
Error Rate
 อัตราความผิดพลาดที่เกิดขึน้
13/04/58
72
เกณฑ์ การยอมรับงานของมนุษย์
Subjective user satisfaction
 ระดับความพึงพอใจของผู้ใช้ โดยส่ วนรวม
Human retention
 ความสามารถจดจาคาสั่ งและการใช้ งานได้
13/04/58
73
การวางแผนการทดสอบระบบ
กาหนดข้อตกลงเบื้องต้นและรายละเอียดของระบบ
เตรี ยมแผนงานการทดสอบเพื่อการยอมรับระบบ
นาข้อมูลการออกแบบมาใช้ในการวางแผนการทดสอบ
ความสัมพันธ์ของระบบรวม
กาหนดแผนการทดสอบความสัมพันธ์ของระบบย่อย
13/04/58
74
วิธีการประเมินผลการทางานของระบบ
การใช้แบบสอบถาม
การบันทึกเทปการทางานของผูใ้ ช้
การสร้างส่ วนพิเศษภายในระบบ ให้สามารถบันทึกข้อมูล
เกี่ยวกับการทางานของผูใ้ ช้
การสร้างระบบให้ผใู้ ช้สามารถบันทึกความคิดเห็นของตน
ขณะกาลังใช้งานระบบนั้น ๆ
13/04/58
75
แบบทดสอบ
ให้ นักศึกษาตอบคาถามต่ อไปนี้
1. จงอธิบายความหมายของกระบวนการ
2. จงอธิบายความหมายของกระบวนการซอฟต์ แวร์
3. SDLC คืออะไร
4. Verification และ Validation แตกต่ างกันอย่ างไร
5. White Box Testing และ Black Box Testing แตกต่ างกันอย่ างไร
6. กระบวนการทดสอบประกอบด้ วยกีส่ ่ วน อะไรบ้ าง
7. จงอธิบายกลยุทธ์ และเทคนิคในการทดสอบโปรแกรมมีอะไรบ้ าง
8. จงอธิบายกลยุทธ์ ในการทดสอบประสิ ทธิภาพของระบบมีอะไรบ้ าง
9. กระบวนการทดสอบระบบมีกขี่ ้นั ตอน อะไรบ้ าง
10. เกณฑ์ การยอมรับงานของมนุษย์ มอี ะไรบ้ าง
13/04/58
76
งาน
Present
1.
2.
3.
4.
5.
6.
7.
8.
13/04/589.
CMM
Agile Process
Extreme Programming
Adaptive Software Development
Dynamic Systems Development
Scrum
Crytal
Feature Driven Development
Agile Modeling – AM
77
LOGO
13/04/58
78