คุณภาพของ ซอฟต์แวร์และ...

Post on 01-Jun-2020

0 views 0 download

Transcript of คุณภาพของ ซอฟต์แวร์และ...

คณภาพของซอฟตแวรและ

กระบวนการพฒนา

คณภาพของซอฟตแวรคออะไร• มาตรฐานคณภาพซอฟตแวรนานาชาต ISO/IEC 9126 ไดก าหนดคณสมบตเชงคณภาพไวดงน

1. ประโยชนใชสอย

2. ความนาเชอถอ

3. การใชงาน

4. ประสทธภาพ

5. การบ ารงรกษา

6. การโอนยายระบบ

มาตรฐานคณภาพซอฟตแวรนานาชาตคณสมบตเชงคณภาพ คณสมบตรอง

1. ประโยชนใชสอย ตรงความตองการ ความถกตอง ความตอเนอง ตรงตามมาตรฐาน ความปลอดภย

2. ความนาเชอถอ ความสมบรณ ระดบปญหทยอมรบได การฟนฟ

3. การใชงาน ความเขาใจ การเรยนร การใชระบบ

4. ประสทธภาพ ประสทธภาพในการ execute โปรแกรม ประสทธภาพในการใชทรพยากร

5. การบ ารงรกษา การวเคราะห การเปลยนแปลง การทดสอบ เสถยรภาพ

6. การโอนยายระบบ ความเขากบสงแวดลอม งานโอนยายระบบ ความสอดคลองกบมาตรฐาน

คณภาพของซอฟตแวร• ประโยชนใชสอย หมายถง ซอฟตแวรตองมประโยชน ตรงตามความตองการของลกคา

• เชน ซอฟตแวรตองประมวลผลออกมาถกตอง มความปลอดภย

• การท าใหซอฟตแวรมประโยชนใชสอยทด ตองเรมจากการหาใหไดวาลกคาตองการอะไร

คณภาพของซอฟตแวร• ความนาเชอถอ หมายถง ลดคาสามารถใชงานซอฟตแวรไดอยางสบายใจ

• โดยทวไป ซอฟตแวรทผานการใชงานมากเทาไร ซอฟตแวรนนกจะผานการปรบปรงแกไขใหสมบรณมากขนเทานน เพราะเมอใชงานไปความผดพลาดทฝงอยในตอนพฒนาซอฟตแวร หรอ ปญหาทคาดไมถงจะปรากฎขนมา

คณภาพของซอฟตแวร• การใชงาน หมายถง ซอฟตแวรใชงานงาย เขาใจงาย จ างาย

• ประสทธภาพ มตววดหลายอยาง เชน Throughput , Response Time , Turnaround Time ฯลฯ

คณภาพของซอฟตแวร• การบ ารงรกษา เปนคณสมบตทส าคญมากในซอฟตแวรทใชวงการธรกจ เพราะจะถกน าไปใชหลายป เมอมความจ าเปนตองปรบปรงซอฟตแวร กสามารถวเคราะหการท างานของซอฟตแวรนน แลวน าไปปรบปรงทดสอบไดโดยงาย

คณภาพของซอฟตแวร• การโอนยายระบบ เปนคณสมบตทส าคญเมอจ าเปนตองโอนยายระบบตามเทคโนโลยใหม เชน การเปลยนไปใชระบบเวบเบส(Web-Based)

• ซอฟตแวรทด ควรโอนยายระบบงายโดยไมตองเขยนซอฟตแวรใหม

ดชนวดประสทธภาพ• Throughput

• Response Time

• Turnaround Time

Throughput• หมายถง ปรมาณงานทสามารถประมวลผลไดในหนงหนวยเวลา เชน ใน 1 นาท

• เปนดชนทเหมาะสมส าหรบงานแบบ Batch Processing(ประมวลผลเปนชดใหญ ๆ ตอเนองกน)

• เชน ค านวณคาบรการตอนสนเดอน• Throughput หมายถง ใน 1 ชวโมง ค านวณคาบรการลกคาไดกราย

Response Time• หมายถง ระยะเวลานบตงแตอนพตขอมลลงไปในหนาจอ จนถงหนาจอแสดงเอาตพตออกมา

• เปนดชนทเหมาะสมส าหรบการประมวลผลแบบออนไลน

• เชน เมอกดต ATM เพอสอบถามยอดเงนคงเหลอในบญช ใชเวลานานเทาไรจงเหนยอดเงน

Turnaround Time• หมายถง เวลาทงหมดนบตงแตสงอนพตจนไดเอาทพตออกมา ดชนเหมาะสมส าหรบการท างานแบบรอบ เชน สาขายอยรองขอใหบรษทแมพมพรายงานในสนเดอน Turnaround Time จะนบเวลาทงหมดตงแตทสาขารองขอนจนถงไดรายงาน ซงกรวมเวลาทบรษทแมรอจนถงสนเดอน เวลาในการประมวลผล และเวลาในการสงรายงาน

ไดอยางกตองเสยอยางรถยนตทคณภาพดตองมคณสมบตหลายอยาง เชน ปลอดภย อตราเรงด ประหยดน ามน มศนยบรการมาก กวางขวาง นงสบาย

แตในความเปนจรง แมวาเราทกคนอยากไดรถยนตทมคณภาพด แตเราตองเลอกรถยนตทมคณสมบตบางอยาง

ปลอดภย

อตราเรงดประหยดน ามน

มศนยบรการมาก

กวางขวาง , นงสบาย

นยามของซอฟตแวรทมคณภาพด• “คณภาพของซอฟตแวร กคอ ระดบการตอบสนองความตองการของลกคา”

• ดงนนตววดคณภาพของซอฟตแวรทแทจรงคอ “ความตองการของลกคา” แตละราย

ลกคาไมไดตองการซอฟตแวรทมคณภาพดทกอยาง แตตองการซอฟตแวรท

ตอบสนองความตองการในการใชงาน

ระดบการตอบสนองความตองการของลกคา

ประโยชนใชสอย

การใชง

าน

การบ ารงรกษาความนาเชอถอ

ประโยชนใชสอย

การใชง

าน

การบ ารงรกษา

ความนาเชอถอ

ลกคาตองการแบบน

เรานาจะพฒนาแบบน

ขอบกพรองของซอฟตแวรเปนสงทเหนไดยาก

นยามความตองการ เขยนโปรแกรมออกแบบ ทดสอบ

ซอฟตแวรสวนใหญจะไมรวามขอบกพรอง จนกวาจะไดทดสอบหรอใช

งานจรง

วธในการทบทวนการออกแบบ ในกระบวนการออกแบบตองมการทบทวนการออกแบบโดยการเขยนผลการออกแบบลงในเอกสาร แลวใหผอนชวยตรวจทานให การทบทวนการออกแบบม 3 วธใหญ ๆ ดงน

• Inspection

• Work Through

• Round Robin

Inspection• เปาหมายหลกคอ การคนหาขอบกพรองใหพบ

• วธการกคอ การทบทวนในลกษณะของการประชม โดยมผทเรยกวา Modulator เปนผจดการประชม และเพอใหการทบทวนมประสทธผล ตองมการก าหนดขอบเขตทจะทบทวน และทบทวนอยางเขมขนในเวลาอนสน

เกณฑในการทบทวนแบบ Inspection• ม Modulator ควบคมการประชมแตละครง

• มเลขานการบนทกการประชม

• ใหเวลาในการเตรยมตวทเหมาะสมกอนการประชมแตละครง

• มการควบคมการบนทกขอบกพรองทคนพบ

• ไมน าขอบกพรองทคนพบไปใชในการประเมนผลการท างานหรอลงโทษคนทเกยวของ

Inspection• การทบทวนแบบ Inspection เปนการทบทวนแบบทวไป จงสามารถใชในการพฒนาซอฟตแวรใดกได และใชในขนตอนไหนกได

• รวมทงในขนตอนการเขยนโปรแกรมและทดสอบโปรแกรมดวย Inspection มาตรฐานมประสทธภาพในการปองกนขอบกพรองสงมาก

• ถอเปนเครองมอทดทสดอนหนงในการปรบปรงคณภาพ

Work Through• หมายถง การจนตนาการการท างานของโปรแกรม พรอมกบการคนหาขอบกพรองโดยการดสเปกหรอตวโปรแกรมไปดวย

• ซงเหมอนกบ “การดบกเปนกลมโดยการอานซอสดโคด แตไมไดรนโปรแกรมจรง”

Inspection• โดยมาก Work Through จะเปนการทบทวนแบบไมเปนทางการ โดยมโปรแกรมเมอรทรบผดชอบเปนผเรยกประชมเมอมโอกาส

• เปนวธการทเหมาะสมส าหรบการทบทวน Procedure หรอ การไหล เชน การไหลของการควบคม การไหลของขอมล และเหมาะสมกบการทบทวนชนงานขนสดทายกอนเปนสนคาจรง

Round Robin• เปนการแบงงานออกเปนสวนยอยๆ เทาๆ กน ตามจ านวนผเขารวมทบทวน แลวกระจายใหผเขารวมทบทวนแตละคนน าเสนอตามล าดบ แลวชวยกนพจารณา

• วธการนมประสทธภาพดในแงของการมสวนรวมของทกคน มการแลกเปลยนความคดเหนซงกนและกน ท าใหทกคนมความสามารถสงขน จงนยมใชเพอการอบรมมากกวาการทบทวนทมประสทธภาพ

ตวอยางเปาหมายในการทบทวน1 ทบทวนนยามความ

ตองการหลงลมความตองการของลกคาหรอไม เขาใจความตองการของลกคาผดหรอไม

เนน Why และ What แตยงไมเนน How

2 ทบทวนการออกแบบภายนอก

น าความตองการไปเปนฟงกชนไดอยางเหมาะสมหรอไม

3 ทบทวนการออกแบบภายใน

ตรรกะทสรางฟงกชนเหมาะสมหรอไม

โครงสราโปรแกรมดหรอไม แตกฟงกชนเหมานะสมหรอไม

4 ทบทวนการเขยนโปรแกรม

ซอสดโคดเหมาะสมหรอไม อานซอสดโคดรเรองหรอไม

เขยนโปรแกรมตามเกณฑหรอมาตรฐานหรอไม

5 ทบทวนการทดสอบ ขนตอนและเนอหารในการทดสอบเหมาะสมหรอไม

กรณททดสอบครอบคลมเพยงพอหรอไม

กระบวนการทดสอบ• “การทดสอบเปนสวนหนงของการพฒนาโปรแกรม โดยมขนเพอคนหาขอผดพลาดของโปรแกรม”

• กระบวนการทดสอบชวยใหเกดความชดเจนวา ซอฟตแวรจะมคณภาพดหรอมขอบกพรองอะไรบาง

• กระบวนการทดสอบจะใชเวลามากหรอนอยขนกบวามขอบกพรองมากนอยเพยงไร

การทดสอบโมดล(Module Test)• เปนการทดสอบทละโมดล โดยใหโมดลนนท างานอยางอสระ แลวตรวจสอบตรรกะภายในโมดล

• มชอเรยกอกอยางหนงวา Unit Test• ปกตโปรแกรมเมอรจะเปนผท าหนาททดสอบ• การทดสอบท าโดยการอานซอสดโคด สรางกรณทดสอบ(Test Case) แลวลองใหโมดลท างานดวาไดผลออกมาตามความคาดหมายหรอไม

• ขอผดพลาดหลกๆทคนพบในขนตอนนไดแก ขอผดพลาดในการเขยนโปรแกรม เรยกวา “บก”

การทดสอบการเชอมตอโมดล• เปนการน าโมดลมาเชอมตอกน แลวลองใหท างานด เปนการทดสอบวาการท างานโดยรวมถกตองหรอไม แตโมดลทน ามาเชอมตอกนตองผานการทดสอบโมดลในขนตอนแรกกอน

• ความผดพลาดทคนพบในขนตอนนคอ อนเทอรเฟสทไมสมบรณระหวางโมดล เชน จ านวนหรอล าดบของขอมลทรบสงระหวางโมดลไมถกตอง ลมตงคาเรมตนของตวแปรทจะสงขามโมดล หรอลมค านวณบางอยาง เปนตน

การทดสอบการเชอมตอโมดลโมดล A

B C

E F

G

D

G

การทดสอบการเชอมตอโมดลแบบบนลงลาง

โมดล A

Stub b Stub c

Stub d Stub e

โมดล A

B C

Stub f

การทดสอบการเชอมตอโมดลแบบลางขนบน

G

Test Driver

G(ทดสอบเสรจ)

D

Test Driver

E

Test Driver

G(ทดสอบเสรจ)

F

Test Driver

เปรยบเทยบการทดสอบแบบบนลงลางและลางขนบนการทดสอบ ขอด ขอเสย

แบบบนลงลาง •คนพบขอผดพลาดทส าคญไดเรว เชน อนเทอรเฟสผดพลาด

•โมดลบนทมความส าคญลงจะผานการทดสอบหลายรอบ ท าใหความนาเชอถอโดยรวมสง

•ไมตองมทล Test Driver

•ยากในการแบงงานใหท าพรอมกนหลายคน

•ตองสราง Stub

แบบลางขนบน •สามารถแบงงานเปนสวนๆแลวท าการทดสอบพรอมๆกนไปได จงทดสอบโมดลจ านวนมากไดรวดเรว

•สามารถเลอกทดสอบโมดลทใชงานรวมกอน เพราะมผลกระทบมากหากเกดขอผดพลาด

•ไมตองสราง Stub

•ไมคอยเหนขอมลผดพลาดทส าคญในระยะแรก ๆของการทดสอบ

•ตอมทล Test Driver

การทดสอบระบบ• เปนการตรวจสอบประสทธภาพและการท างานของระบบโดยรวม

• ตองพยายามทดสอบภายใตสงแวดลอมทใกลเคยงกบการท างานจรงมากทสด

เทคนคการทดสอบ• White Box Test : เปนการทดสอบทค านงถงโครงสรางภายในระบบ หรออาจเรยกวา Program-Based Test เพราะเปนการสราง Test Case ตามตรรกะของโปรแกรม

• Black Box Test : เปนการทดสอบทไมค านงถงโครงสรางภายในระบบ หรออาจเรยกวา Specification-Based Case เพราะเปนการสราง Test Case ตาม Function Specification

White Box Testing• เปนการทดสอบเพอดโครงสรางของโปรแกรม หรอทางเดนในโปรแกรม

• ตองสรางชดทดสอบเฉพาะส าหรบการทดสอบในเงอนไขตาง ๆ

• ชดทดสอบจะตองประกอบดวยชดทสามารถประมวลผลอยางปกตและไมปกต

Black Box Testing• เปนการทดสอบโดยไมค านงถงค าสงภายในโปรแกรม

• เปนการทดสอบ Function ตาง ๆ ของโปรแกรมตาม Requirements ทม

• เปนการทดสอบโดยดคา Output จาก Input ทใหกบโปรแกรมตองมความสอดคลองกน