บทที่ 9 การทดสอบซอฟต์แวร์ (software testing) ·...
TRANSCRIPT
บทท 9 การทดสอบซอฟตแวร (Software testing)
วชา วศวกรรมซอฟตแวร (04-06-306)
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306) 1
วตถประสงคการเรยนร
• เพอใหผเรยนมความรความเขาใจเกยวกบกระบวนการในการทดสอบซอฟตแวร
• เพอใหผเรยนสามารถน าเครองมอส าหรบการทดสอบซอฟตแวร ในการทดสอบซอฟตแวรเบองตนได
2 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
หวขอ
• บทน า (Overview)
• การทดสอบซอฟตแวร
– ระดบการทดสอบ
– แนวทางทดสอบ
– วธการทดสอบ
• เครองมอการทดสอบซอฟตแวร
• สรป (Summary)
3 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
บทน า (Overview)
เขยนโปรแกรม
• Unit • Migrate • System
ระดบทดสอบ • คนหาขอผดพลาด
ปองกน และแกไข • ประเมนผลการท างาน
ของซอฟตแวร
วตถประสงค
4 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การทดสอบซอฟตแวร (Software Testing)
• กจกรรมทจดท าขนเพอประเมนและปรบปรงคณภาพของซอฟตแวร
– ตรวจหาขอผดพลาดและปญหา
– แกไขขอผดพลาดหรอปญหาดงกลาวใหถกตอง
• วตถประสงคของการทดสอบซอฟตแวร
– เพอพสจนวาซอฟตแวรท างานไดครบทกฟงกชนตามขอก าหนดความตองการ
– เพอตรวจสอบในแตละฟงกชนสามารถประมวลผลไดถกตอง
5 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
V & V Technique
• การทดสอบซอฟตแวร เปนหนงในหลายกจกรรมของการประกนคณภาพของซอฟตแวร (Quality Assurance)
• V & V Technique – การทวนสอบ (Verification)
• การตรวจสอบวา ระบบท างานตามขอก าหนดทกฟงกชนหรอไม
– การตรวจรบ (Validation) • การตรวจสอบวา ระบบสามารถท างานตรงตามความตองการของผใช
หรอไม • การตรวจสอบวาระบบทพฒนาขนมานนถกตองหรอไม
6 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
V-Model
7
ทมา: Rod Stephens, Beginning Software Engineering, 2015. เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
ค าศพททควรทราบ
• Test Case / กรณทดสอบ, Test Plan / แผนการทดสอบ
• Error, Fault และ Failure คณลกษณะทไมพงประสงคของซอฟตแวร โดยมลกษณะดงน
– Error / การกระท าผด
– Fault / Defect / ความผดพลาดหรอขอบกพรอง • Bug
• Debugging
– Failure / ลมเหลว
8 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
ขอผดพลาด (Error)
• ขอผดพลาดทเกดขนในการพฒนาโปรแกรม – Syntax error
• Compile • Syntax Error
– Logical error • Execute • Logical Error
– Runtime error • Execute, no syntax error • Logical error เชน เกดจากตวหารเปนศนย เปนตน
9 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การแกไขขอบกพรอง (Debugging)
• กระบวนการแกไขขอบกพรองทปรากฏขนภายหลงการทดสอบโปรแกรม เรมตนดวยการน ากรณทดสอบมาทดลองประมวลผล เพอคนหาสาเหตของขอบกพรองทปรากฏในโปรแกรม โดยการเปรยบเทยบผลลพธจากการทดลองกบผลลพธทคาดหวง
• ถาผลลพธไมตรงกนแสดงวาพบสาเหตของขอบกพรอง จากนนผทดสอบจะคนหาจดทท าใหเกดขอบกพรอง และท าการแกไขเพอขจดขอบกพรองนนทง
• กรณทผลลพธของการเปรยบเทยบตรงกน ผทดสอบจะออกแบบกรณทดสอบใหม จนกระทงพบขอบกพรองในโปรแกรม
10 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การแกไขขอบกพรอง (Debugging) (ตอ)
• สามารถจ าแนกแนวทางการ Debugging เปน 3 กลม ดงน – Brute force เปนวธธรรมดาไมมประสทธภาพในการแยกเหตการณ
ของการเกดขอผดพลาดในโปรแกรม – Backtracking เหมาะส าหรบโปรแกรมขนาดเลก โดยเรมแกะรอยการ
ประมวลผลของโปรแกรม ตงแตต าแหนงทไมเกดอาการ จนพบจดของการเกดขอผดพลาดในโปรแกรม
– Cause elimination น าขอมลทท าใหเกดขอผดพลาดมาแบงเปนสวนๆ เพอท าการทดสอบ โดยตงสมมตฐานจากเหตการณทท าใหเกดขอผดพลาด และน าตวอยางขอมลมาทดสอบ เพอตดเสนทางทไมเกยวของทง
11 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
แนวทางการทดสอบซอฟตแวร
• ทดสอบตามรอบการสรางซอฟตแวร
– Single Module > Incremental Test Approach
• ขนตอนการทดสอบซอฟตแวรในแตละระดบ มดงน
12
Test Case Design
Prepare Test Data
Software Testing
Comparison Test Result
Test Report
A
B
C
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
กลวธการทดสอบซอฟตแวร
• วธการออกแบบกรณทดสอบ (Test case) และการวางแผนทดสอบ (Test Plan) • เพอใหไดชดของขนตอนตามทปฏบต เปนการยนยนวาการสรางซอฟตแวร
ประสบผลส าเรจ
• กลยทธใด ๆ ตองม • แผนการทดสอบ การออกแบบกรณทดสอบ การลงมอทดสอบ และการ
รวบรวมและประเมนผลขอมลผลลพธ
13
การหาความผดพลาดใหพบ กรณทดสอบทดควรมความเปนไดสงทจะหาขอผดพลาดพบ
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
กรณทดสอบ (Test Case)
• สถานการณตาง ๆ ทระบบ/โปรแกรมตองตอบสนอง
– ครอบคลมตงแตสถานการณเรมตน สถานการณตาง ๆ ทมผลตอการด าเนนการของโปรแกรม และผลลพธทคาดหวง
• การออกแบบกรณทดสอบ (Test Case Design)
– การออกแบบกรณทดสอบตาง ๆ ส าหรบการทดสอบโปรแกรม
– มความส าคญเชนเดยวกบการออกแบบโปรแกรม
– ตองจดท าขนเพอใหไดขอผดพลาดมากทสด/เลวรายทสด
14
การออกแบบกรณทดสอบตาง ๆ ตองครอบคลมทกลกษณะ ของโปรแกรม
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
ระดบการทดสอบซอฟตแวร
• การทดสอบสามารถจ าแนกออกเปน 3 ระดบ ดงน
– การทดสอบระดบหนวย (Unit Testing) • Module Testing หรอ Component Testing
– การทดสอบระดบรวมหนวย (Integration Testing)
– การทดสอบระบบ (System Testing) • Devices, People และ Data
15 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
ระดบการทดสอบซอฟตแวร (ตอ)
Unit Testing
• Black box
• White box
Integration Testing
• Top Down
• Bottom Up
• Regression
• Validation
System Testing
• Alpha
• Beta
• Performance
• Recovery
• Stress
• Security
16
A B C
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การออกแบบกรณทดสอบทด
17
• มความนาจะเปนสงในการหาความผดพลาดพบ A good test has a high
probability of finding an error
• ไมซ าซอน A good test is not redundant.
• ควรเปนตวทคดมาดทสด A good test should be “best of breed”
• ไมธรรมดาเกนไปหรอซบซอนเกนไป A good test should be neither too simple nor
too complex
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
เทคนคการทดสอบโปรแกรม
• การทดสอบโปรแกรมแบงออกเปน 2 กลม ดงน
– Manual Testing • การทดสอบโดยไมใชเครองคอมพวเตอร
– Automated Testing • การทดสอบดวยเครองคอมพวเตอร
18 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Manual Testing
• การทดสอบโปรแกรมโดยการตรวจสอบของโปรแกรมเมอรเอง ไมมการใชเครองคอมพวเตอร แบงไดเปน 2 ชนด คอ – Inspection
• โปรแกรมเมอรตรวจสอบเอง • เปรยบเทยบ Code ของโปรแกรมทเขยนขนกบรายการ Error ท
ทราบแลว • ทดสอบความผดพลาดของ Code เทานน • ปองกนขอผดพลาดรปแบบเดมไมใหเกดซ าอก • ไมท าใหทราบวามผลลพธถกตองหรอไม
19 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Manual Testing (ตอ)
– Desk Checking
• การตรวจสอบโคดของโปรแกรมตามล าดบค าสง ตรรกะผดพลาดหรอไม ด าเนนการโดยผทไดรบการแตงตงใหเปนผทดสอบ
• วธการนไมเหมาะส าหรบงานทความซบซอนสง / เสยเวลามากในการทดสอบ
20 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Automated Testing
• การทดสอบแบบอตโนมตแบงไดเปน 5 ชนด ดงน
– Syntax checking
– Unit testing / Module Testing
– Integration testing
– Stub testing
– System testing
21 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Syntax Checking
• ตรวจสอบไวยากรณทเขยนขนโดยใช Compiler
• ใชเวลาไมนาน
• ไมสามารถตรวจสอบผลลพธได
22 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing
• การทดสอบระดบหนวย หรอเรยกวา Module Testing
• โปรแกรมเมอรทดสอบ Module ทตนเองรบผดชอบ
• คนหาขอผดพลาดในการท างานแตละโมดลม 2 รปแบบ ดงน
– Black Box Testing
– White Box Testing
23 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: Black Box Testing
• เปนการทดสอบโดยไมค านงถงค าสงภายในโปรแกรม
• เปนการทดสอบ Function ของโปรแกรมตาม Requirements
• เปนการทดสอบโดยพจารณาคา Output จาก Input ทใหกบโปรแกรมตองมความสอดคลองกน
• สนใจเฉพาะระบบม Function การท างานอยางไร และ Output ไดอะไร
24 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: Black Box Testing (ตอ)
• การก าหนดขอมลในการทดสอบ ไดแก
– คาตวแทนของกลม
– คาสงสด
– คาต าสด
– คาเกนพกด
– คาทผดวสย
25 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: Black Box Testing (ตอ)
• ส าหรบ Technique ตาง ๆ ทใชในการทดสอบแบบ Black box testing นนมหลายวธ ยกตวอยางทนยม ดงน
– Equivalence partitioning • ก าหนดคาตวแทน ของกลมขอมลขนมา 1 คา
• น าคาทก าหนดมาใชในการทดสอบ
26 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: Black Box Testing (ตอ)
• ตวอยาง ระบบธนาคารสามารถใหโอนเงนผาน ATM ขนต าคอ 100 และสงสดคอ 500 บาท
– การทดสอบจะตองก าหนดตวแทนของกลมของขอมลทจะตองน ามาทดสอบ ดงน
• กรณโอนเงน (A) บาท (เปนตวแทนของกลมท < 100 )
• กรณโอนเงน (B) บาท (เปนตวแทนของกลมทอยระหวาง 100 - 500 )
• กรณโอนเงน (C) บาท (เปนตวแทนของกลมท > 500 )
27
** เพราะฉะนนจะไดชดของขอมลมาสามชด และได data มาทดสอบ 3 คาเทานน **
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: Black Box Testing (ตอ)
– Boundary value analysis • เปนวธการทดสอบโดยก าหนดขอบเขตของขอมลขนมา เพอจะได
คา input data ทครอบคลม
• การทดสอบจะตองก าหนดขอบเขตของขอมลทจะตองน ามาทดสอบ
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
28
ตวอยาง กรณโอนเงน 99 บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท
Unit Testing: Black Box Testing (ตอ)
• ตวอยาง หนาจอการรบคาขอมล User และ Password โดยลกคาระบความตองการโดย User ตองเปนชอภาษาองกฤษไมต ากวา 5 แตไมเกน 8 ตวอกษร และ Password เชนเดยวกน ควรจะมการทดสอบอยางไรเพอท าใหไมเกดขอผดพลาดกบระบบ
29
Log in
User:
Password:
Submit Clear
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: Black Box Testing (ตอ)
• การออกแบบกรณทดสอบ (Test Case)
• Input: –User และ Password
• Condition: – 5<= ความยาวขอมล User <=8 – 5<= ความยาวขอมล Password
<=8 • Output:
– Pass, Fail
30 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: Black Box Testing (ตอ)
31
Test ID User Password Expected
Result Actual Results
Accepted Results
1 admin nimda Pass Pass Pass
2 guest gpass
3 sutharat paa
4 nattaphon oatchad
5 aumaum apass
6 chinathip mmuay
Test case
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing
• การทดสอบเพอดโครงสรางของโปรแกรม หรอทางเดนในโปรแกรม
• สรางชดทดสอบเฉพาะส าหรบทดสอบในเงอนไขตาง ๆ โดยชดทดสอบจะตองประกอบดวยชดทสามารถประมวลผลอยางปรกตและไมปรกต
• ตองมความรเรองของระบบวามการออกแบบอยางไร ท างานอยางไร
• ตองมความรในเรองของ Programming Language
32 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• Basis Path Testing – เปนแนวคดทชวยในการท า White-box ใหงายขน – เปลยน Flowchart ใหเปน Graph ทประกอบดวย Vertices และ Edge – เพอทดสอบความสลบซบซอนทางตรรกะ โดยจะทดสอบทก ๆ
"Execution path" การออกแบบกรณทดสอบจะท าการทดสอบ "Basic set" ทใช "Execute logical path" ดงน
• Sequence logical path • If logical path • Loop logical path
33 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• การทดสอบแบบ Basis Path Testing ตองรจ านวนเสนทางความซบซอนของปญหา (Cyclomatic Complexity หรอแทนดวยกราฟ V(G)) โดย V(G) สามารถหาไดจาก 3 วธ ดงน
• วธท 1 – V(G) = จ านวนของพนทแบบปด (enclosed area) ของผงงานโปรแกรม + 1
• วธท 2 – V(G) = จ านวนของสญลกษณตดสนใจในผงงานโปรแกรม (simple
decisions) +1 • วธท 3
– V(G) = Edge (จ านวนเสนเชอมระหวาง Node) – Node (จ านวน Node ภายในกราฟ) + 2
34 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• วธท 1
– ……………………………………………………..
• วธท 2
– ……………………………………………………..
• วธท 3
– ……………………………………………………..
35
Flow Chart
Flow Graph
1
2
3
4
5
6
7
1, 2 4, 5
3 7
6
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• Independent Process Path
– เสนทางการประมวลผลอสระ (Independent process path) เปนเสนทางใด ๆ ผานโปรแกรมทมประโยคค าสงหรอประโยคทดสอบเงอนไขอยางนอย 1 ประโยค
– จ านวนเสนทางทแยกเปนอสระไดจากคา V(G)
36 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• ตวอยาง สรางกรณทดสอบ (test case) ทจะน ามาทดสอบในแตละ path เลอกขอมลใหมคาเหมาะสมในการทดสอบแตละเสนทาง เมอก าหนดกรณทดสอบใหกบทก path แลวใหท าการทดสอบแตละ path และเปรยบเทยบผลลพธทได กบ ผลลพธทคาดหวง (Expected results)
37 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
38
จงหาจ านวน Path V(G) = Edge – Node + 2 V(G) = 9 – 9 + 2 = 2 (Ans)
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
Test ID x y Expected Results (Z)
1 2
39
Path 1: ………………….
Path 2: …………………. Create Test Case
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
40
PROCEDURE average: i =1; t_input =t_valid =0; sum =0; DO WHILE value[i] <>-999 AND t_input <100 increment t_input by 1; IF value[i] >= minimum AND value[i]<=maximum THEN increment t_value by 1; sum = sum + value[i]; ELSE skip ENDIF increment i by 1; ENDDO IF t_valid >0 THEN average = sum / t_valid; ELSE average = -999; ENDIF END average
1 2
6
10
13
12 11
9
3
4
8
7
5
• ก าหนดใหหาโหนดจากโปรแกรมทดสอบ
• วธท 1 ....................................... • วธท 2 ....................................... • วธท 3 .......................................
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
41
• พจารณาเสนทางทแยกเปนอสระ (Independent path) • จ านวนเสนทางทแยกเปนอสระ = ….6 เสนทาง • แตละเสนทางมรายละเอยดดงน
path 1: 1-2-10-11-13 path 2: 1-2-10-12-13
path 3: 1-2-3-10-11-13 path 4: 1-2-3-4-5-8-9-2-… path 5: 1-2-3-4-5-6-8-9-2-… path 6: 1-2-3-4-5-6-7-8-9-2-…
1
2
3
4
5
6
7
8 9
10
11 12
13
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• Loop Testing
– เปนเทคนคในการทดสอบแบบ White-Box โดยมงประเดนไปทความถกตองของโครงสรางของการวนซ าหรอลป (Loop constructs) มกลมของลปทแตกตางกนจ าแนกเปน 4 แบบ ไดแก • Simple Loops
• Nested Loops
• Concatenated Loops
• Unstructured Loops
42 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
43
Simple loops Nested loops Concatenated loops
Unstructured loops เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• ชดทดสอบลปอยางงาย เมอ n เปนจ านวนรอบสงสดทอนญาตใหผานลป
– ท างานขามลปไปเลย
– ท างานผานลปเพยงหนงรอบ
– ท างานผานลป 2 สอง
– ท างานผานลป m รอบ เมอ m < n
– ท างานผานลป n-1, n, n+1 รอบ
44 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Unit Testing: White Box Testing (ตอ)
• ในการทดสอบแบบลปซอนลป จะท าใหการทดสอบเพมขนเปนตามจ านวนชนของลปทซอน
• ขอแนะน าในการทดสอบ ดงน
– เรมทดสอบจากลปในสดกอน โดยตงคาลปอนๆ ใหมคานอยทสด
– ท าการทดสอบจากลปในไปลปนอกทละชน
– ท าตอไปจนกวาทก ๆ ลปไดทดสอบหมด
45 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Integration Testing
• เพอตรวจสอบความถกตองของ Function การท างานตางๆ เมอมการ Integrate unit / module เขารวมกน
• ทดสอบการท างานรบสงขอมลกนระหวางโมดลอาศย structure chart ม 2 รปแบบ ดงน – แบบบนลงลาง (Top-down Approach)
– แบบลางขนบน (Bottom-up Approach)
46 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Integration Testing: Top-down Approach
47
Module A
Module B Module C Module D
Module E Module F
………..
………..
………..
• เปนการทดสอบโปรแกรมโดยทดสอบโมดลจากบนลงลาง
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Integration Testing: Bottom-up Approach
48
Module A
Module B Module C Module D
Module E Module F
• เปนการทดสอบโปรแกรมโดยทดสอบโมดลลางขนบน
………..
………..
………..
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Stub Testing
• การทดสอบแบบเพมโมดล (Integration Testing) คอย ๆ เพมโมดลเขามาทดสอบตามล าดบ – กรณทเพมจากบนลงลาง คอ เรมทดสอบจาก Module A กอน แลวคอยเพม
Module B,C และ D ตามล าดบกอนเพม Module E,F แตความจรง Module B ตองเรยกใชขอมลจาก Module E,F ทอยในระดบลางซงยงไมถงรอบการทดสอบ
– ปญหาคอ อาจไมเหนผลลพธ – ดงนนจงตองสราง Stub Testing เปนตวแทน Module E,F เพอทดสอบ
ชวคราว • Driver คอ โมดลทดสอบโมดลหลก • Stub คอ กลมค าสงสนๆ ทเขยนขนมาเพอเปนโมดลตวแทนในการทดสอบโปรแกรม
49 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
System Testing
• คลายการทดสอบแบบ Integration แตจะตางกนตรงทจะทดสอบโปรแกรมหนง และเพมเรอยๆ จะครบทกโปรแกรมของระบบงาน
• เปนการตรวจสอบการท างานทงระบบ วาโปรแกรมทกโปรแกรมเมอท างานรวมกนแลวจะใหผลลพธทถกตองแลวหรอไม
• วตถประสงค
– เพอตรวจสอบระบบวาระบบท างานไดถกตองและไดผลลพธตรงตาม Requirement
50 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
กลยทธในการทดสอบประสทธภาพของระบบ
• Peak Load Testing
• Performance Testing
• Recovery Testing
• Storage Testing
• Procedure Testing
• User Testing
51 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การทดสอบการท างานสงสด (Peak Load Testing)
• เปนการทดสอบประสทธภาพในการประมวลผลของระบบ เมอมการท ารายการมากทสด ณ ชวงเวลาใดเวลาหนง
• เพอทดสอบวาระบบรองรบการท ารายการค าสงมากทสด และนานเทาไหร เมอตองประมวลผลจ านวนรายการค าสงมากทสดดงกลาวในชวงเวลาหนง
52 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การทดสอบประสทธภาพของเวลา (Performance Testing)
• เปนการทดสอบระบบเพอพจารณาถงชวงเวลาทใชในการประมวลผลรายการ วาใชระยะเวลานานเพยงใดในการท ารายการ
– การประมวลผลแบบกลม (Batch Processing)
– การประมวลผลแบบออนไลน (On-line Processing)
53 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
กลยทธในการทดสอบประสทธภาพของระบบ (ตอ)
• การทดสอบการกระบบ ( Recovery Testing) เปนการทดสอบความสามารถในการกระบบกรณทระบบลม รวมถงความสามารถในการกขอมลดวย
• การทดสอบการเกบขอมล (Storage Testing) เปนการทดสอบวา เกบขอมลไดสงสดเปนจ านวนเทาใด เพอจะไดเตรยมการรองรบจ านวนขอมลทอาจเพมมากขนในอนาคต
• การทดสอบกระบวนการ (Procedure Testing) เปนการทดสอบการจดท าคมอการด าเนนงานของระบบ และคมอการใชงานวาสามารถสรางความเขาใจใหกบผใชหรอไม และสามารถใชเมอเกดปญหาหรอไม
• การทดสอบผใช (User Testing) เปนการทดสอบการใชงานจรงของระบบเพอตองการทราบวาปญหาในการใชระบบเปนอยางไรบาง
54 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การทดสอบการยอมรบโดยผใช
• หลงจากทไดทดสอบความสมบรณและความถกตองของโปรแกรมเรยบรอยแลว
• มความส าคญไมนอยไปกวาการทดสอบโปรแกรม*
• วธการทดสอบการยอมรบของระบบสามารถแบงออกเปน 2 ประเภท ดงน
– Alpha Testing
– Beta Testing
55 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การทดสอบการยอมรบโดยผใช: Alpha Testing
• การทดสอบความสมบรณของระบบ โดยผใชทดสอบรวมกบ Tester/QA เปนคนแนะน า
• ผใชจะทดสอบระบบขณะยงไมไดตดตงในสถานทจรง โดยทดสอบภายในสถานการณจ าลองทก าหนดขนโดยทมงานพฒนาระบบ ทมงานจะบนทกขอผดพลาดและท าการแกไข
• ท าใหรวาระบบมขอผดพลาดอะไรเกดขนบาง
56 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การทดสอบการยอมรบโดยผใช: Alpha Testing (ตอ)
• Alpha testing มการทดสอบ 4 ประการ ดงน
– Recovery Testing เปนการทดสอบการกระบบ
– Security Testing เปนการทดสอบความปลอดภยของระบบ
– Stress Testing เปนการทดสอบประสทธภาพการท างานของระบบภายใตความกดดน
– Performance Testing เปนการทดสอบประสทธภาพการท างานของระบบภายใตสภาพแวดลอมของคอมพวเตอร
57 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Alpha Testing: Recovery Testing
• การทดสอบการกคน (Recovery Testing)
– ความสามารถในการกคนเมอระบบเกดความลมเหลว
– Fault Tolerance ระบบตองท างานตอไดและตองทนตอความผดพลาด
– การทดสอบ ท าใหระบบลมเหลวในสถานการณตางๆ แลวดการกคนของขอมล
58 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Alpha Testing: Security Testing
• การทดสอบการรกษาความปลอดภย (Security Testing)
– มเครองมอในการรกษาความปลอดภยของระบบเปนทนาพอใจหรอไม
– การรกษาความปลอดภยอยางงายได แก การใชวธการใหสทธและการควบคมสทธ
– การเขารหสขอมล
59 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Alpha Testing: Stress Testing
• การทดสอบแรงตรงเครยด (Stress Testing)
– เปนการทดสอบในสถานการณทไมเปนปรกต เพอดความทนทานในระบบ
– แรงตรงเครยดของระบบอาจจะเกดจากการน าเขาขอมลทมากเกนไป การประมวลผลทบอยเกนไป
– Sensitivity Testing
60 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Alpha Testing: Performance Testing
• การทดสอบสมรรถนะ (Performance Testing)
• เปนการวดสมรรถนะของระบบวาอยในระดบทยอมรบได
• ระยะเวลาในการตอบสนองของงาน
• การจดสรรพนทหนวยความจ า
• การสราง Log File เพอเปนการจดบนทกเพอวดสมรรถนะการท างานของระบบในแตละชวงเวลา
61 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การทดสอบการยอมรบโดยผใช: Beta Testing
• การทดสอบความสมบรณของระบบโดยผใช และใชขอมลจรงในการทดสอบและภายใตสถานการณทเกดขนจรง โดยไมมทมงานไปเฝาสงเกต – ตองมคนคอยจดบนทกขอผดพลาดใหกบทมงาน
• การทดสอบประเภทนถอวาเปนการซอมตดตงระบบเพอใชงานจรง – เปนการทดสอบระบบอยางสมจรงไมวาจะเปน สถานการณ ขอมล
ขนตอนการด าเนนงานเอกสารคมอ การฝกอบรม การสนบสนนการท างาน
– แกปญหาทเกดขนระหวาง Alpha Testing
62 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การวางแผนการทดสอบระบบ (Test Planning)
• การก าหนดมาตรฐานของกระบวนการในการทดสอบ – ครอบคลม Errors – Minimum Cost
• ก าหนดขอตกลงเบองตนและรายละเอยดของระบบ • เตรยมแผนงานการทดสอบเพอการยอมรบระบบ • น าขอมลการออกแบบมาใชในการวางแผนการทดสอบความสมพนธ
ของระบบรวม • ก าหนดแผนการทดสอบความสมพนธของระบบยอย
63 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
การวางแผนการทดสอบระบบ
• การวางแผนการทดสอบระบบ ประกอบดวยรายละเอยด ดงน – Scope of Testing – Test Plan
• Objective • Reference • Summary
– Test Procedure – Actual Test Result
64 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
แผนการทดสอบ (Test Plan)
• ชดเอกสารทประกอบไปดวยชดขอมลน าเขา/ผลลพธ ของแตละเสนทางการท างานของทกโปรแกรม
– ชดขอมลจดเรยงไวตามล าดบเสนทาง และชนดของการทดสอบ
65
Test ID Test Name 1 2 … n
Planned Date ID Tester Completed Successful
Project Name : Project ID :
Project Manager : QA Manager :
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
วธการประเมนผลการท างานของระบบ
• การใชแบบสอบถาม
• การบนทกเทป/วดโอการท างานของผใช
• การสรางสวนพเศษภายในระบบ ใหสามารถบนทกขอมลเกยวกบการท างานของผใช
• การสรางระบบใหผใชสามารถบนทกความคดเหนของตนขณะก าลงใชงานระบบนน ๆ
66 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Who Test Software ?
67 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
Developer
Independent Tester
Customer
เครองมอการทดสอบซอฟตแวร
• ในการทดสอบซอฟตแวรทมงานสามารถใชงานเครองมอชวยทดสอบ เพอวตถประสงคทแตกตางกน ดงน
– Code Analysis Tools
– Test Execution Tools
– Test Case Generators
68 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
69
เพมเตม: http://www.seleniumhq.org/ https://en.wikipedia.org/wiki/List_of_GUI_testing_tools
Example: Software testing framework for web applications
เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
สรป (Summary)
• การทดสอบซอฟตแวร (Software Testing) – เปนกจกรรมในการประเมนและปรบปรงคณภาพของซอฟตแวรดวยกลไก
ตางๆ ในการตรวจหาขอผดพลาดทเกดขนแลวแกไขใหถกตอง – พสจนทราบซอฟตแวรท างานไดครบทกฟงกชนไดตามขอก าหนดความ
ตองการ – ตองคนหาขอผดพลาดใหไดมากทสด
• สามารถแบงระดบการทดสอบเปน 3 ระดบ ดงน ระดบหนวย (Unit Testing) ระดบรวมหนวย (Integration Testing) และการทดสอบระบบ (System Testing)
70 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
กจกรรมทายบท
• การทดสอบซอฟตแวรมความส าคญ และมวตถประสงคอยางไร • จงบอกนยามของค าศพท ดงน Verification, Validation, Error, Fault,
Failure, Test Case, Test Data, Test Resulted, Test Plan, Driver และ Stub
• ระดบการทดสอบแบงออกเปนกระดบ ประกอบดวยอะไรบาง • จงบอกความแตกตางระหวางการทดสอบแบบ White Box Testing และ
Black Box Testing • จากตวอยางโปรแกรมทตองทดสอบ (หนา 40-41) ก าหนดใหสราง Flow
Chart และ Flow Graph เพอหาเสนทางการทดสอบและสรางกรณทดสอบ
71 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)
เอกสารอางอง
• กตต ภกดวฒนะกล, วศวกรรมซอฟตแวร (Software Engineering), กรงเทพฯ: เคทพ คอมพ แอนด คอนซลท, 2552
• Lan Sommerville, Software Engineering Ninth Edition, Pearson Education, Inc., publishing as Addison-Wesley, 2011.
• Rod Stephens, Beginning Software Engineering, John Wiley & Sons, Inc., Indianapolis, Indiana, 2015.
72 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)