717f5ed61566ee0024e1405f2c28765e.ppt
- Количество слайдов: 65
การทดสอบซอฟตแวร Software Testing อ. ดร. มหศกด เกตฉำ Faculty of Information Technology
การทดสอบซอฟตแวร (Software Testing) ทำหลงจากทเขยนโปรแกรมเสรจเ รยบรอยแลว q เปนการทดสอบความสมบรณของโปร แกรม รวมทงความนาเชอถอและความถ กตองของผลลพธจากโปรแกรมทพ ฒนาขน q ตรวจสอบประสทธภาพการทำงานของ ซอฟตแวรไปดวย q เปนผลใหสมพนธกบคณภาพขอ งซอฟตแวรตามไปดวย q
Verification การตรวจสอบวา ระบบทำงานตามทกำหนดไวหรอ การตรวจสอบวาการสรางระบบทำอยา ไม ? งถกตองหรอไม Are we building the system right ?
Validation การตรวจสอบวา ระบบสามารถทำงานตามความตองการข องผใชหรอไม ? การตรวจสอบวาระบบทพฒนาข นมานนถกตองหรอไม Are we building the right system ?
Testing & Debug • Testing คอการหาขอผดพลาดวามหรอไ ม • Debug คอการหา ตำแหนง ของขอผดพล าด (เพอจะไดแกไข (
ขอผดพลาด (error) ขอผดพลาดทเกดขนในการพฒนาโปรแกรม • Syntax error เปนขอผดพลาดทเกดจากการเขยนโปรแกร มผด Syntax ของภาษาเกดขนตอน Compile โปรแกรม • Logical error เปนขอผดพลาดทเกดจากการเขยนโปรแกร มเขยนผดตรรกะ ทำใหไดผลลพธไมเปนไปตามตองการ เกดขนตอนโปรแกรมปฏบตงาน (execute) • Runtime error เปนขอผดพลาดทเกดขนขณะทโปรแก รมปฏบตงาน (execute) ซงโปรแกรมไมม
กลวธการทดสอบซอฟตแวร • กลยทธการทดสอบซอฟตแวร – วธการออกแบบ กรณทดสอบ (Test case) และการวางแผนทดสอบ(Test Plan) เพอใหไดชดของขนตอนตามทป ฏบต เปนการยนยนวาการสรางซอฟตแวร ประสบผลสำเรจ หลกการและเปาหมายของการทดสอบ คอ • กลยทธใดๆ ตองมแผนการทดสอบ การหาความผดพลาดใหพบ การออกแบบกรณทดสอบ การลงมอทดสอบ กรณทดสอบทดควรมความเปนไดสงท และการรวบรวมและประเมนผลขอมลผลล จะหาขอผดพลาดพบ พธ
Test case • บอกถงสถานการณตางๆ ทโปรแกรมตองตอบสนอง • ครอบคลมตงแต สถานการณเรมตน สถานการณตางๆ ท มผลตอการดำเนนการของโปรแกร มและผลลพธทคาดหวง
Test case design • หมายถง การออกแบบกรณทดสอบตางๆ สำหรบการทดสอบโปรแกร ม • การออกแบบกรณทดสอบเปนงานทมความส ำคญเชนเดยวกบการออกแบบโปรแกรม • การออกแบบกรณทดสอบตองจดทำขนเพ อใหไดขอผดพลาดมากทสด เลวรายทสดเทาทจะพบได • กฏทสำคญของการออกแบบคอ การออกแบบกรณทดสอบตางๆ ตองครอบคลมทกลกษณะของโปรแกรม
ลกษณะของกรณทดสอบทด • 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 –
เทคนคการทดสอบโปรแกรม แบงออกเปน 2 กลมใหญคอ • Manual Testing • การทดสอบโดยไมใชเครองคอมพ วเตอร • Automated Testing • การทดสอบดวยเครองคอมพวเตอร
รแกรมเมอรเอง ไมมการใชเครองคอมพวเตอร Manual Testing แบงไดเปน 2 ชนดคอ 1)Inspection - โปรแกรมเมอรตรวจสอบเอง - เปรยบเทยบ Code ของโปรแกรมทเขยนขนกบ รายการError ททราบแลว - เปนการทดสอบความผดพลาดของ Code เทานน ปองกนขอผดพลาดรปแบบเดมไมใหเก ดซำอก -
Manual Testing 2) Desk Checking - การตรวจสอบโคดของโปรแกรมตามลำด บคำสงวามตรรกะผดพลาดหรอไม - ทำโดยผทไดรบการแตงตงให เปนผทดสอบ - วธการนไมเหมาะสำหรบงานท ความซบซอนสงเนองจากเสยเวลามาก ในการทดสอบ
Automated Testing แบงไดเปน 5 ชนดคอ • Syntax checking • Unit testing/Module Testing • Integration testing • Stub testing • System testing
Automated Testing Syntax Checking § ตรวจสอบไวยากรณทเขยนขน โดยใช Compiler § ใชเวลาไมนาน § ไมสามารถตรวจสอบผลลพธได
Automated Testing Unit Testing § เรยกอกชอวา Module Testing § โปรแกรมเมอรทดสอบ Module ทตนเองรบผดชอบ § หาขอผดพลาดในการทำงานแตละโมด ล มใช 2 แบบคอ • Black Box Testing • White Box Testing
Black Box Testing • เปนการทดสอบโดยไมคำนงถงคำส งภายในโปรแกรม • เปนการทดสอบ Function ตางๆ ของโปรแกรมตาม Requirements ทม • เปนการทดสอบโดยดคา Output จาก Input ทใหกบโปรแกรมตองมความสอดค ลองกน • สนใจเฉพาะวาระบบม Function
Black Box Testing • การกำหนดขอมลในการทดสอบ ไดแก - คาตวแทนของกลม - คาสงสด - คาตำสด - คาเกนพกด - คาทผดวสย
Black Box Testing สำหรบ Technique ตางๆ ทใชในการทดสอบแบบ Black box testing นนม หลายวธ แตจะขอยกตวอยางทรจกกนด คอ • Equivalence partitioning • เปนการกำหนดคาตวแทน ของกลมขอมลขนมา 1 คา แลวนำคานนมาใชในการทดสอบ ซงจะสามารถ Apply ไดวาถาใชคาตวแทนนมาทำการท ดสอบไดผลลพธอยางไร คาอนๆ
Black Box Testing เชน ระบบธนาคารสามารถใหโอนเงนผาน ATM ขนตำคอ 100 และสงสดคอ 500 บาท การทดสอบจะตองกำหนดตวแทนของกลมของขอ มลทจะตองนำมาทดสอบ ตวอยางเชน กรณโอนเงน 50 บาท (เปนตวแทนของกลมท < 100 ) กรณโอนเงน 200 บาท (เปนตวแทนของกลมทอยระหวาง 100 - 500 ) กรณโอนเงน 1000 บาท (เปนตวแทนของกลมท > 500 ) *** เพราะฉะนนจะไดชดของขอมลมาสามชด และได data มาทดสอบ 3 คาเทานน
Black Box Testing • Boundary value analysis • เปนวธการทดสอบโดยกำหนดขอบเขตของ ขอมลขนมา เพอจะไดคา input data ทครอบคลม • เชน ระบบธนาคารสามารถใหโอนเงนผาน ATM ขนตำคอ 100 และสงสดคอ 500 บาท • การทดสอบจะตองกำหนดขอบเขตของขอม ลทจะตองนำมาทดสอบ
Black Box Testing • ตวอยางเชน กรณโอนเงน กรณโอนเงน 99 บาท 100 บาท 101 บาท 499 บาท 500 บาท 501 บาท
ตวอยาง : : การทดสอบแบบกลองดำ • หนาจอการรบคาขอมล User และ Password โดยลกคาใหสเปคมาวา User ตองเปนชอภาษาองกฤษไมตำกวา 5 แตไมเกน 8 ตวอกษร และ Password กเชนกน ควรจะมการทดสอบอยางไรเพอทำใหไ Log in มเกดขอผดพลาดกบระบบ User: Password: OK CANCLE
การออกแบบกรณทดสอบ (Test Case) • Input: • User และ Password • Condition • 5<= ความยาวUser<=8 • 5<= ความยาวPassword <=8 • Output: • Pass, Fail
การออกแบบกรณทดสอบ • ชดทดสอบ (Test case set) Test ID User Password ผลทคาด หวง ผลลพธ จรง ผลทยอม รบได 1 2 aaaa aa aaa bbbbbbb b bb Fail Pass 3 4 5 6 Fail Test case
White Box Testing • เปนการทดสอบเพอดโครงสรางของโปรแ กรม หรอทางเดนในโปรแกรม • ตองสรางชดทดสอบเฉพาะสำหรบทดสอบ ในเงอนไขตางๆ โดยชดทดสอบจะตองประกอบดวยชดทส ามารถประมวลผลอยางปรกตและไมปรกต • ตองมความรเรองของระบบวามการอ อกแบบอยางไร ทำงานอยางไร • ตองมความรในเรองของ Programming
Basis Path Testing • เปน idea ทชวยในการทำ box ใหงายขน White- • เปลยน Flowchart ใหเปน Graph ทประกอบดวย Vertices และ Edge • เพอทดสอบความสลบซบซอนทางตรรก ะวทยาโดยจะทดสอบทกๆ “Execution path” การออกแบบกรณทดสอบจะทำการทดสอบ “Basic set” ทใช “Execute logical path” ตางๆ คอ 1 (Sequence logical path
Basis Path Testing • การทดสอบแบบBasis Path จะตองรจำนวนเสนทางความซบซอนของปญหา หรอแทนดวยกราฟ V(G) โดย V(G) สามารถหาไดจาก 3 วธ ดงน วธท 1. V(G) = จำนวนของพนทแบบปด ของผงงานโปรแกรม +1 วธท 2 V(G) = จำนวนของสญลกษณตดสนใจในผงงานโปรแก รม (simple decisions) +1 วธท 3
Basis Path Testing 1 วธท 1. V(G) = จำนวนของพนทแบบปด (enclosed area) ของผงงานโปรแกรม + 1 ; V(G) = 2 +1 = 3 วธท 2 V(G) = จำนวนของสญลกษณตดสนใจ ในผงงานโปรแกรม (simple decisions) +1 ; V(G) = 2 + 1 = 3 วธท 3 V(G) = Edge (จำนวนเสนเชอมระหวาง 2 4 6 5 3 7 6 4, 5 1, 2 3 7
พจารณาเสนทางทแยกเปนอส ระ (independent path) • เสนทางอสระ (independent path) เปนเสนทางใดๆ ผานโปรแกรมทมประโยคคำสงหร อประโยคทดสอบเงอนไขอยางนอย ประโยค • จำนวนเสนทางทแยกเปนอสระ ไดจากคา V(G) 1
การสรางกรณทดสอบ (test case) • สรางกรณทดสอบ (test case ( ทจะนำมาทดสอบในแตละ path เลอกขอมลใหมคาเหมาะสมในการท ดสอบแตละเสนทาง • เมอกำหนดกรณทดสอบใหกบทก path แลวใหทำการทดสอบแตละ path และเปรยบเทยบผลลพธทได กบ ผลลพธทคาดหวง (Expected results(
Path Testing
หาจำนวน Path ในการทดสอบ • หาจำนวน Path • V(G) = Edge – Node +2 • V(G) = 9 -9+2 =2
การสรางกรณทดสอบ (test case) Path 1: 2 -3 -4 -5 -6 -8 -9 -10 Path 2: 2 -3 -4 -5 -7 -8 -9 -10 Test ID x y 1 2 2 1 1 2 ผลทคาดหวง 1 1 (Z)
Loop Testing • เปนเทคนคในการทดสอบแบบ White-Box โดยมงประเดนไปทความถกตองของโค รงสรางของการวนซำหรอลป (loop constructs) มกลมของลปทแตกตางกน มอย 4 แบบ ไดแก 1. ลปอยางงาย 2. ลปซอนลป 3. ลปตอกน 4. ลปไมเปนโครงสราง
Loop Testing 1. Simple Loop เปนลปแบบงายไมมความซบซอน 2. Nested loop เปนลปทมโครงสรางลกษณะนำมา ซอนกน ภายในม ความซบซอนมากขน 3. Concatenated loop เปนลปทมการนำมาตอกนเปนโค รงสรางใหญขน 4. Unstructured loops
Loop Testing Simple loops Nested loops Concatenated loops Unstructured loops
Loop Testing • 1. 2. 3. 4. 5. ชดทดสอบลปอยางงาย เมอ n เปนจำนวนรอบสงสดทอนญาตใหผานลป ทำงานขามลปไปเลย ทำงานผานลปเพยงหนงรอบ ทำงานผานลป 2 สอง ทำงานผานลป m รอบ เมอ m<n ทำงานผานลป n-1, n, n+1 รอบ
Loop Testing ในการทดสอบแบบลปซอนลป จะทำใหการทดสอบเพมขนเปนตามจำ นวนชนของลปทซอน มขอแนะนำในการทดสอบ • เรมทดสอบจากลปในสดกอน โดยตงคาลปอนๆ ใหมคานอยทสด • ทำการทดสอบจากลปในไปลปนอกทละชน • ทำตอไปจนกวาทกๆ ลปไดทดสอบหมด
Automated Testing Integration Testing • เพอตรวจสอบความถกตองของ Function การทำงานตางๆ เมอมการ Integrate unit / module เขารวมกน • ทดสอบการทำงานรบสงขอมลกนร ะหวางโมดล • อาศย structure chart ม 2 แบบ คอ • แบบบนลงลาง (Top-down Approach) • แบบลางขนบน (Bottom-up Approach)
Integration Testing แบบจากบนลงลาง (Top-down Approach) • เปนการทดสอบโปรแกรมโดยทดสอบโมดลจากบนล งลาง เรมทดสอบจาก A Module A A, B, C, D Module B Module C A, B, C, D, E, F Module E Module F Module A กอน แลวคอยเพม Module B, C และ D ตามลำดบตอไปคอ เพม Module E, F ทดสอบรวมกบ A, B, C, D Module D
Integration Testing แบบจากลางขนบน (Bottom-up Approach) • เปนการทดสอบโปรแกรมโดยทดสอบโมดลลางข นบน เรมทดสอบจาก Module E, F กอน แลวคอยเพม Module B, C และ D ตามลำดบตอไปคอเพ ม Module ทดสอบรวมกบ E, F, B, C, D, A Module B Module E Module C E, F, B, C, D, A Module D Module F E, F, B, C, D
Automated Testing Stub Testing • • การทดสอบแบบเพมโมดล (Integration Testing) นนจะคอย ๆ เพมโมดลเขามาทดสอบตามลำดบ กรณทเพมจากบนลงลาง คอ เรมทดสอบจาก Module A กอน แลวคอยเพม Module B, C และ D ตามลำดบกอนเพม Module E, F แตความจรง Module B ตองเรยกใชขอมลจาก Module E, F ทอยในระดบลางซงยงไมถงรอบ การทดสอบ ปญหาคอ อาจไมเหนผลลพธ
Automated Testing System Testing • คลายการทดสอบแบบ Integration แตจะตางกนตรงทจะทดสอบโปรแกรม หนง และเพมเรอยๆจะครบทกโปรแกรมของ ระบบงาน • เปนการตรวจสอบการทำงานทงระบบ วาโปรแกรมทกโปรแกรมเมอทำงานร วมกนแลวจะใหผลลพธทถกตอง แลวหรอไม • จดประสงค
1. การทดสอบการทำงานสงสด (Peak กลยทธในการทดสอบประสทธภาพขอ Load Testing) 2. การทดสอบประสทธภาพของเวลา (Performance Testing ( 3. การทดสอบการกระบบ (Recovery Testing( 4. การทดสอบการเกบขอมล (Storage Testing( 6. การทดสอบกระบวนการ(Procedure การทดสอบผใช (User Testing 5. Testing)
(1 การทดสอบการทำงานสงสด (Peak กลยทธในการทดสอบประสทธภาพขอ Load Testing) เปนการทดสอบประสทธภาพในการประม วลผลของระบบ เมอมการทำรายการมากทสด ณ ชวงเวลาใดเวลาหนง เพอทดสอบวาระบบรองรบการทำราย การคำสงมากทสด และนานเทาไหรเมอตองประมวลผลจ ำนวนรายการคำสงมากทสดดงกล าวในชวงเวลาหนง
กลยทธในการทดสอบประสทธภาพขอ (2 การทดสอบประสทธภาพของเวลา (Performance Testing) เปนการทดสอบระบบเพอพจารณาถงช วงเวลาทใชในการประมวลผลรายการ วาใชระยะเวลานานเพยงใดในการทำรา ยการไมวาจะเปนการประมวลผลแบบกล ม Batch Processing หรอประมวลผลแบบออนไลน (On – Line Processing)
(3 การทดสอบการกระบบ ( กลยทธในการทดสอบประสทธภาพขอ Recovery Testing) เปนการทดสอบความสามารถในการกระ บบกรณทระบบลม (4 การทดสอบการเกบขอมล รวมถงความสามารถในการกขอมลด (Storage Testing) เปนการทดสอบวา วย เกบขอมลไดสงสดเปนจำนวนเท าใด เพอจะไดเตรยมการรองรบจำนวนข อมลทอาจเพมมากขนในอนาคต
(5 การทดสอบกระบวนการ กลยทธในการทดสอบประสทธภาพข (Procedure Testing ) เปนการทดสอบการจดทำคมอการด ำเนนงานของระบบ และคมอการใชงานวาสามารถสรางค วามเขาใจใหกบผใชหรอไม (6 การทดสอบผใช (User และสามารถใชเมอเกดปญหาหรอไม Testing) เปนการทดสอบการใชงานจรงของระบบเ พอตองการทราบวาปญหาในการใชร ะบบเปนอยางไรบาง
การทดสอบการยอมรบของผใช • หลงจากทไดทดสอบความสมบรณและ ความถกตองของโปรแกรมเรยบรอยแลว • มขนตอนทมความสำคญไมนอย ไปกวาการทดสอบโปรแกรม นนกคอ การทดสอบการยอมรบจากผใช • เนองจากการพฒนาระบบนน กเพอตองการตอบสนองความตองการในก ารดำเนนงานของผใชระบบ • โดยวธการทดสอบการยอมรบของระบบน นสามารถแบงออกเปน 2 ประเภทคอ
1) Alpha Testing การทดสอบการยอมรบของผใช การทดสอบความสมบรณของระบบโดยผใชพ รอมกบจะม Tester/ QA เปนคนแนะนำ ผใชจะทดสอบระบบขณะยงไมไดตดตง ในสถานทจรง โดยทดสอบภายในสถานการณจำลองทกำหน ดขนโดยทมงานพฒนาระบบ ทมงานจะบนทกขอผดพลาดและทำการแก ไข ทำใหไดรบรวาระบบมขอผดพลาดอะ ไรเกดขนบาง
Alpha Testing มการทดสอบ 4 ประการคอ 1. Recovery Testing เปนการทดสอบการกระบบ 2. Security Testing เปนการทดสอบความปลอดภยของระบบ 3. Stress Testing เปนการทดสอบประสทธภาพการทำงา นของระบบภายใตความกดดน 4. Performance Testing เปนการทดสอบประสทธภาพการทำงา นของระบบภายใตสภาพแวดลอมของคอ
การทดสอบการกคน Testing) q q (Recovery ความสามารถในการกคนเมอระบบเก ดความลมเหลว Fault Tolerance ระบบตองทำงานตอไดและตองทนตอ ความผดพลาด q การทดสอบ ทำใหระบบลมเหลวในสถานการณตาง ๆแลวดการกคนของขอมล
การทดสอบการรกษาความปลอดภย (Security Testing) มเครองมอในการรกษาความปลอดภ ยของระบบเปนทนาพอใจหรอไม q การรกษาความปลอดภยอยางงายได แก การใชวธการใหสทธและการควบค มสทธ q การเขารหสขอมล q
การทดสอบแรงตรงเครยด (Stress Testing) เปนการทดสอบในสถานการณทไมเปน ปรกต เพอดความทนทานในระบบ q แรงตรงเครยดของระบบอาจจะเกดจากการ นำเขาขอมลทมากเกนไป การประมวลผลทบอยเกนไป q q Sensitivity Testing
การทดสอบสมรรถนะ (Performance Testing) เปนการวดสมรรถนะของระบบวาอยในร ะดบทยอมรบได q เชน ระยะเวลาในการตอบสนองของงาน การจดสรรพนทหนวยความจำ q การสราง Log File เพอเปนการจดบนทกเพอวดสมรรถ นะการทำงานของระบบในแตละชวงเวลา q
2) Beta Testing - การทดสอบความสมบรณของระบบโดยผใช การทดสอบการยอมรบของผใช และใชขอมลจรงในการทดสอบและภายใตสถ านการณทเกดขนจรงโดยไมมทมงาน ไป เฝาสงเกต - ตองมคนคอยจดบนทกขอผดพลาดใหก บทมงาน - การทดสอบประเภทนถอวาเปนการซอมต ดตงระบบเพอใชงานจรง - เนองจากเปนการทดสอบระบบอยางสมจรงไ มวาจะเปน สถานการณ ขอมล ขนตอนการดำเนนงาน เอกสารคมอ การฝกอบรม การสนบสนนการทำงาน
Test Planning : การวางแผนการทดสอบระบบ • การกำหนดมาตรฐานของกระบวนการในการทด สอบ เพอ • ครอบคลม Errors • Minimum Cost • กำหนดขอตกลงเบองตนและรายละเอยด ของระบบ • เตรยมแผนงานการทดสอบเพอการยอมรบร ะบบ • นำขอมลการออกแบบมาใชในการวางแผน การทดสอบความสมพนธของระบบรวม
Test Planning ประกอบดวย • Scope of Testing • Test Plan • Test Procedure • Actual Test Result
Test Planning • Scope of Testing สรปรายละเอยดของขอกำหนดการทด สอบ ไดแก หนาท (functional) ประสทธภาพ และคณสมบตภายใน • Test อธบายยทธวธทงหมดทเกยว กบการนำองคประกอบยอย sub-system) Plan (module,
Test Planning § Test Procedure อธบายกรรมวธทดสอบ ตวอยางรายการขอมลทใชสำหรบทดส อบโมดลตางๆ และผลลพธทคาดการณทเกดจากการท ดสอบ § Actual Test Result คอสวนทบนทกรายละเอยดผลการทดสอ บ, ปญหา , เงอนไขพเศษทปรากฏในขณะทดสอบโปรแ กรม หลงจากวางแผนการทดสอบแลว กระบวนการทดสอบจะเรมดำเนนการในลก ษณะแบบยอนหลงตามลำดบ
วธการประเมนผลการทำงานของร ะบบ • การใชแบบสอบถาม • การบนทกเทปการทำงานของผใช • การสรางสวนพเศษภายในระบบ ใหสามารถบนทกขอมลเกยวกบ การทำงานของผใช • การสรางระบบใหผใชสามารถบนท กความคดเหนของตนขณะกำลงใช งานระบบนน ๆ
Who Test Software ? • Developer • Independent tester • Customer
กระบวนการDebugging กระบวนการแกไขขอบกพรองทปรากฏ ขนภายหลงการทดสอบโปรแกรม เรมตนดวยการนำกรณทดสอบมาทดลองป ระมวลผล เพอคนหาสาเหตของขอบกพรองทปราก ฏในโปรแกรม โดยการเปรยบเทยบผลลพธจากการทดลองก บผลลพธทคาดหวง ถาผลลพธ ไมตรงกน แสดงวาพบสาเหต
กระบวนการDebugging จำแนกแนวทางการ debugging ไว 3 กลม คอ • Brute force เปนวธธรรมดาไมมประสทธภาพในการแ ยกเหตการณของการเกดขอผดพลาดในโปร แกรม • Backtracking เหมาะสำหรบโปรแกรมขนาดเลก โดยเรมแกะรอยการประมวลผลของโปรแกรม ตงแตตำแหนงทไมเกดอาการ จนพบจดของการเกดขอผดพลาดในโปรแกรม • Cause elimination
717f5ed61566ee0024e1405f2c28765e.ppt