Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Verification and Validation
January 31, 2009 2
Objectives
เพอแนะนาใหรจกการตรวจทานและการยนยนความตองการของลกคา และอภปรายขอแตกตางระหวางกนเพออธบายถงกระบวนการตรวจโปรแกรมและบทบาทในการทา Verification และ Validation
เพออธบายวธใชการวเคราะหเชงสถตเปนเทคนค Verification
เพออธบายกระบวนการพฒนาซอฟตแวรแบบ Clean room
January 31, 2009 3
Topics covered
การวางแผนเพอตรวจทาน verification และยนยน validationการตรวจซอฟตแวร inspection
การวเคราะหเชงสถตแบบอตโนมต Automated static analysisการพฒนาซอฟตแวรแบบ Cleanroom
January 31, 2009 4
Verification: “Are we building the product right”
“เรากาลงสรางผลตภณฑไดตามขอกาหนดใชหรอไม”ซอฟตแวรตองทางานไดตามทกาหนด Specification
Validation: “Are we building the right product”
“เรากาลงสรางผลตภณฑไดตามความตองการใชหรอไม”ซอฟตแวรตองทางานไดตามความตองการของผใช Requirement
Verification vs validation
January 31, 2009 5
เราตองการทา V & V ในทกๆระยะของวงจรชวตของกระบวนการสรางซอฟตแวรเพอวตถประสงค 2 ประการ
เพอคนหาขอบกพรองในระบบเพอประเมนวาระบบจะใชไดเปนประโยชนในสถานการณจรงหรอไม
The V & V process
January 31, 2009 6
V& V goals
V & V ควรจะสรางความมนใจใหไดวา ซอฟตแวร จะทางานไดตามวตถประสงคไมไดหมายความวาจะปราศจากขอบกพรองเหนอสงอนใดทงหมด ตองดพอสาหรบการใชงานตามเจตนาเดม และการใชงานจะเปนตวชระดบความมนใจวาไดตามความตองการ
January 31, 2009 7
V & V confidence
ขนอยกบวตถประสงคของระบบ การคาดหวงของผใช และสภาพการตลาดSoftware function
ระคบความมนใจขนอยกบความสาคญของซอฟตแวรตอองคกรUser expectations
ผใชอาจมความคาดหวงตาตอซอฟตแวรบางชนดMarketing environment
การนาผลตภณฑออกสตลาดกอนอาจมความสาคญกวาการตรวจพบขอบกพรองในโปรแกรม
January 31, 2009 8
Software inspections: เกยวกบการวเคราะหตวแทนของระบบเชงสถต เพอคนหาปญหา (static)
อาจใช Tool ชวยตรวจวเคราะห เอกสารและโปรแกรม code
Software testing: เกยวกบการลงมอทดสอบและสงเกตพฤตกรรมของผลตภณฑ (dynamic)
ใชขอมลทดสอบระบบและสงเกตผลการทางาน
Static and dynamic verification
January 31, 2009 9
Static and dynamic V&V
January 31, 2009 10
Program Testing
สามารถตรวจสอบขอผดพลาดได แตไมสามารถตรวจสงทขาดหายไปเทคนคการทดสอบ Non-Functional กคอตองสงใหทางานแลวตรวจดพฤตกรรมของซอฟตแวรควรใชรวมกบการตรวจเชงสถต เพอใหการตรวจสอบครบถวน
January 31, 2009 11
Types of testing
Defect testing การทดสอบหาขอบกพรองการทดสอบมไวเพอคนหาขอบกพรองของระบบเมอการทดสอบเสรจเรยบรอยกจะทราบถงขอบกพรองอธบายเพมเตมในบทท 23
Validate testing การทดสอบยนยนความตองการวตถประสงคเพอแสดงใหเหนวาซอฟตแวรทางานไดตามความตองการเมอการทดสอบเสรจเรยบรอย กจะทราบวา ไดนาซอฟตแวรไปใชไดตามความตองการ
January 31, 2009 12
Testing and debugging
การทดสอบเพอหาขอบกพรองกบการ debugging เปนกระบวนการตางกนV&V เกยวของกบการคนหาขอบกพรองทมอยในโปรแกรมDebugging คอการคนหาตาแหนงของทผดและแกไขDebugging คอการตงสมมตฐานในการทางานของโปรแกรมไวแลวทดสอบตามขอสมมตฐาน เพอหาขอผดพลาดของระบบ
January 31, 2009 13
The debugging process
January 31, 2009 14
V&V Planning
ตองการการวางแผนอยางรอบคอบ เพอใหไดผลสงสดจากการตรวจและทดสอบควรเรมวางแผนตงแตตอนตนของกระบวนการแผนควรมสมดลระหวางการตรวจทานและทดสอบแผนทดสอบ กคอการวางมาตรฐานกระบวนการทดสอบมากกวาการอธบายการทดสอบผลตภณฑ
January 31, 2009 15
The V-model of development
January 31, 2009 16
โครงสรางของแผนทดสอบซอฟตแวร
กระบวนการทดสอบการสบหาประวตของความตองการชนสวนทตองทดสอบกาหนดการทดสอบวธการบนทกผลการทดสอบอปกรณทจาเปนในการทดสอบ ทง Hardware และ Software
ขอจากดตางๆ
January 31, 2009 17
The software test plan
January 31, 2009 18
Software inspections
การตรวจสอบน ผทตรวจสอบจะมงคนหาความผดปกตและขอบกพรองการตรวจสอบไมจาเปนตองเปดระบบ ดงนนจงสามารถตรวจสอบไดกอนใชงานจรงสามารถนาไปใชกบชนสวนตางๆของระบบ (Requirement , Design , Configuration data , test data)เปนทประจกษแลววาเปนเทคนคทมประสทธภาพ สาหรบคนหาขอผดพลาดในโปรแกรม
January 31, 2009 19
Inspection success
ในการตรวจครงหนงอาจจะพบขอผดพลาดหลายชนด ในการทดสอบ,ขอบกพรองหนงอาจจะซอนขอบกพรองอนๆไว ทาใหตองทดสอบหลายครง
January 31, 2009 20
Inspections and testing
การตรวจและการทดสอบเปนงานเสรมซงกนและกน และไมขดแยงกบเทคนคการตรวจทานในกระบวนการ V&V จะใชทงสองเทคนคนการตรวจจะสามารถเชควาผลทไดครบตามทระบไว แตอาจจะไมใชความตองการแทจรงของลกคาการตรวจไมสามารถเชค Non-functional เชน การใชงานสะดวก ใหผลเรวทนใจ ฯลฯ
January 31, 2009 21
Program inspections
เปนวถทางการตรวจเอกสาร อยางเปนทางการมจดมงหมายทจะตรวจจบขอบกพรอง (ไมใชแกไข)ขอบกพรองอาจจะผดตรรกะ , ความผดปกตท code ซงจะชโยงไปถงขอผดพลาดทเงอนไข (เชน ตวแปรไมมคาเรมตน) ไมไดตามมาตรฐาน
January 31, 2009 22
Inspection Pre-conditions
ตองมการตรวจอยางละเอยดทมงานตองมความคนเคยกบมาตรฐานขององคกรตองมการแกไข Code หรอคาของระบบอนๆควรเตรยมรายการเชคขอผดพลาดไวฝายบรหารตองยอมรบวาการตรวจเชคจะเพมคาใชจายในกระบวนการซอฟตแวรฝายบรหารไมควรนาผลการตรวจเชคไปวดผลการทางานของพนกงานวาใครทาผด
January 31, 2009 23
The inspection process
January 31, 2009 24
Inspection procedure
นาเสนอภาพรวมของระบบใหทมงานตรวจสอบควรแจก Code และคมอใหทมงานลวงหนาดาเนนการตรวจสอบและบนทกขอผดพลาดทพบทาการแกไขขอผดพลาดทพบอาจจะมหรอไมมการตรวจสอบซากได
January 31, 2009 25
Inspection roles
January 31, 2009 26
Inspection checklists
ควรนาเอารายการขอผดพลาดสามญมาเปนฐานในการตรวจสอบการตรวจขอผดพลาดดวย Checklists ขนอยกบภาษาทใชเขยนโปรแกรม ลกษณะของขอผดพลาดมกจะเกดขนในภาษาของโปรแกรมทเขยนโดยทวไปถาการตรวจสอบ “หละหลวม” รายการทจะตองตรวจสอบกตองมมากขนตวอยางเชน : การกาหนดคาเรมตน , การตงชอคาคงท , จดสนสดการวนซา (loop), ขอบเขตของ array ฯลฯ
January 31, 2009 27
Inspection checks 1
January 31, 2009 28
Inspection checks 2
January 31, 2009 29
Inspection rate
500 รายการตอชวโมงในชวงภาพรวม125 ประโยคคาสงตอชวโมงในชวงการเตรยมตวสามารถตรวจได 90-125 รายการตอชวโมงการตรวจสอบนบไดวาเปนขนตอนทแพงการตรวจสอบ 500 บรรทดจะคดเปน 40 ชวโมงทางาน ซงเปนเงนประมาณ 2,800 ปอนด ทสหราชอาณาจกร (ประเทศองกฤษ)
January 31, 2009 30
Automated static analysis
Static analyses เปนเครองมอสาหรบตรวจประโยคคาสงทเปน textทาการวเคราะหไวยากรณของโปรแกรมและคนหาเงอนไขทมแนวโนมวาไมถกตองและแจงใหทมงาน V&V ทราบเปนวธการทมประสทธภาพทชวย inspection แตเปนเพยงเครองมอเสรม มไดนามาใชแทนการตรวจสอบ
January 31, 2009 31
Static analysis checks
January 31, 2009 32
Stages of static analysis
1. Control flow analysis : ตรวจเชคโปรแกรมทมทางออก-ทางเขาหลายทาง , คนหา code สวนทเขาไมถง
2. Data use analysis : ตรวจพบตวแปรทไมไดตงคาเรมตน ,ตวแปรทแทนคาซาสองแตเปนตวแปรทไมไดใชงาน ฯลฯ
3. Interface analysis : เชคความสมาเสมอของชดคาสง การกาหนดวธการทางาน
January 31, 2009 33
Stages of static analysis
1. Information flow analysis : วเคราะหและระบคาตวแปรทตองพงพากน ไมไดดกจบความวปรต แตระบชขอมล เพอตรวจตว code
2. Path analysis : ระบเสนทางของโปรแกรมและคาสงททางานตามเสนทางนน เหมาะสาหรบกระบวนการรวว
3. ระยะทงสองนจะกอใหเกดขอมลมากมายขอมลเหลานนตองใชดวยความระมดระวง
January 31, 2009 34
Use of static analysis
มประโยชนโดยเฉพาะอยางยงเมอนามาใชกบภาษา C เพราะคอมไพเลอรจะไมสามารถคนพบขอผดพลาดหลายทไดประหยดไดนอยกวา เมอใชกบภาษา Java ซงสามารถตรวจพบขอผดพลาดไดมากในขณะททาการ compile
January 31, 2009 35
Verification and formal methods
สามาถนาเอาวธ formal มาใชเมอมการระบความจาเปนของระบบเปนเชงคณตศาสตรเปนเทคนคพนฐานการตรวจทานเชงสถตรวมถงการวเคราะหทางคณตศาสตรทกาหนด spec.ไว และอาจกอใหเกดขอโตแยงกนวาโปรแกรมททาไวไมตรงตาม spec. ทางคณตศาสตรทกาหนด
January 31, 2009 36
Arguments for formal methods
การระบความตองการเชงคณตศาสตรทาใหตองทาการวเคราะหในรายละเอยด ซงจะทาใหพบขอผดพลาดไดสามารถตรวจพบขอผดพลาดจากการทางานไดกอนการทดสอบ ถาทาการวเคราะหโปรแกรมไปพรอมๆ กบการระบความตองการ
January 31, 2009 37
Arguments against formal methods
ผเชยวชาญโดเมนไมเขาใจเครองหมายทตองการใชคาใชจายสงในการระบความตองการและ ยงสงขนถาตองพสจนวาโปรแกรมทางานไดตามความตองการมเทคนคการทา V&V ทถกกวาและสามารถใหความมนใจในระดบเดยวกน
January 31, 2009 38
Cleanroom software development
ชอ Cleanroom ไดมาจากกระบวนการผลตทาชนสวนกงตวนา ปรชญาคอการปองกน มใหมขอบกพรองดกวาการแกไขขอบกพรองทเกดขนกระบวนการชนดน อยบนพนฐานตอไปน ;
Incremental development
Formal specification
Static verification using correctness arguments
Statistical testing to determine program reliability
January 31, 2009 39
The Cleanroom process
January 31, 2009 40
Cleanroom process characteristics
ระบความตองการ โดยใช State transition โมเดลแบงงานและจดลาดบตามความสาคญ วาลกคาตองการอะไรกอน-หลง เพอพฒนาใชการเขยนโปรแกรมเชงโครงสราง – จากดการควบคมและยอสรปขอมลตรวจเชคอยางเขมงวด โดยวธ Static verification ทดสอบดวยวธ Statistical Testing
January 31, 2009 41
Formal specification and inspections
ใช State based โมเดล เปน System specification และใชกระบวนการตรวจเชค ตรวจโปรแกรมกบโมเดลกาหนดวธการเขยนโปรแกรม เพอใหโมเดลถายทอดความตองการ ไปสระบบอยางชดเจนใชเหตผลทางคณตศาสตร (ไมใชการพสจน) เพอเพมความมนใจในกระบวนการตรวจเชค
January 31, 2009 42
Specification team รบผดชอบดแล System Specification
Development team รบผดชอบการพฒนาและตรวจทาน ระยะนยงไม executed หรอ compiled ซอฟตแวรCertification team รบผดชอบเตรยมวธการทางสถต เพอทดสอบซอฟตแวร หลงจากพฒนาแลว ใช reliability growth โมเดล เปนตวชวาซอฟตแวรเปนทยอมรบใชงานได
Cleanroom process teams
January 31, 2009 43
ผลทไดจากกระบวนการ Cleanroom เปนทประทบใจ เพราะระบบทไดมามขอผดพลาดนอยการประเมนโดยคนนอก บงชวาไมแพงกวาวธการอนมขอผดพลาดนอยกวากระบวนการพฒนาแบบเดมอยางไรกตาม กระบวนการนยงไมเปนทแพรหลาย เพราะการนามาใชในสภาพแวดลอมทวศวกรรมมประสบการณนอยหรอมการจงใจนอย ยงไมชดเจน
Cleanroom process evaluation
January 31, 2009 44
Key pointsVerification และ validation ไมเหมอนกน
Verification พสจนวาไดตามทกาหนดValidation พสจนวาไดตามทลกคาตองการ
ควรกาหนด Test plans เปนแนวทางในการทดสอบเทคนค Static verification คอ การตรวจและวเคราะหโปรแกรม เพอหาขอผดพลาด
January 31, 2009 45
Key pointsการตรวจเชคโปรแกรมเปนการตรวจหาขอผดพลาดทมประสทธภาพProgram code in inspections เปนการตรวจแบบเปนระบบ โดยทมงานเลกๆ เพอหาตาแหนงของ Errorsเครองมอ Static analysis สามารถคนหาความผดปกตของโปรแกรมซงอาจจะเปนสาเหตของขอผดพลาดในโปรแกรม Codeกระบวนการพฒนาซอฟตแวร แบบ Cleanroom ประกอบดวย
Incremental development Static verification Statistical testing.
January 31, 2009 46
Exercises
ใหบอกขอแตกตางระหวาง Verification กบ Validation, และอธบายวาทาไม Validation จงเปนกระบวนการทยากกวา.อธบายและใหเหตผลวาทาไม program inspection จงเปนเทคนคทมประสทธภาพในการคนพบขอผดพลาดของ program. และขอผดพลาดชนดใดท program inspection อาจตรวจไมพบ.