school of Information communication Tecnology, Software Testing Wattanapong suttapak, Software Engineering, school of Information communication Tecnology, university of phayao
จุดประสงค์การเรียนรู้ เข้าใจความหมายของการทดสอบซอฟต์แวร์ เข้าใจความแตกต่างระหว่าง static testing และ dynamic testing เข้าใจวิธีการทดสอบแบบ functional และ nonfunctional เข้าใจถึงวิธีการทดสอบแบบ manual และ automated เข้าใจถึงวิธีการทดสอบในรูปแบบต่างๆ สามารถทดสอบด้วยวิธีการ Unit Test ได้ สามารถทดสอบด้วยวิธีการ Load Test ได้
SDLC Maintenance Test Build Design Requirement
Design to meet requirement SDLC reproject Wrong product Built to meet design Design to meet requirement Mistake Requirement Maintenance Test Build Design Requirement
SDLC redesign Requirement Design Build Test Maintenance Requirement Wrong product Built to meet design Wrong design Requirement Maintenance Test Build Design Requirement
Cost Per Defect
Iterative Life Cycle Phase 1 Phase 2 Phase 3 so on… Requirement Design Build Test Phase 2 Phase 3 so on…
Software Testing
Software Testing Static Testing Dynamic Testing การทดสอบสมบูรณ์โดยไม่ต้องรันโปรแกรม การทดสอบสมบูรณ์ต้องรันโปรแกรม ใช้การทวนสอบ(verification) ใช้การตรวจสอบ(validation) ป้องกันการเกิดข้อผิดพลาด แก้ข้อผิดพลาด การประเมินเอกสาร การหาข้อผิดพลาดและปัญหาคอขวดในระบบ สร้างเช็คลิสต์ของกระบวนการที่ต้องมีในระบบ สร้าง test cases
Software Testing Static Testing Dynamic Testing ทดสอบก่อนคอมไพล์ ทดสอบหลังจากคอมไพล์ไปแล้ว ครอบคลุมโครงสร้างของระบบ ครอบคลุมตัวโค้ดที่ใช้งาน ค่าใช้จ่ายในการทดสอบน้อย ค่าใช้จ่ายในการทดสอบสูง ให้ผลผลิตที่สูงเนื่องจากทำตั้งแต่ก่อนเริ่มกระบวนการ ให้ผลผลิตที่ต่ำเนื่องจากต้องทำหลังกระบวนการสร้างเสร็จ คุณภาพขึ้นกับข้อเสนอแนะ คุณภาพขึ้นกับการตรวจเจอข้อผิดพลาด ต้องมีการเจรจาเยอะ ไม่ต้องมีการเจรจาเยอะ
Static Testing ตัวอย่างระบบบริหารจัดการการลาคณะเภสัช ม.พะเยา ส่วนการส่งข้อความไปยังผู้ดูแลระบบผ่าน อีเมล์ ฟิลด์ email ผู้ติดต่อ ชื่อผู้ติดต่อ ปุ่ม ส่ง
Static Testing ตัวอย่างระบบบริหารจัดการการลาคณะเภสัช ม.พะเยา Review Meeting ระดมความคิด ทีมพัฒนาระบบและผู้จัดการ(PM, PO) ตัวอย่างระบบบริหารจัดการการลาคณะเภสัช ม.พะเยา ส่วนการส่งข้อความไปยังผู้ดูแลระบบผ่าน อีเมล์ ฟิลด์ email ผู้ติดต่อ ชื่อผู้ติดต่อ ปุ่ม ส่ง
Static Testing ตัวอย่างระบบบริหารจัดการการลาคณะเภสัช ม.พะเยา Review Meeting ตัวอย่างระบบบริหารจัดการการลาคณะเภสัช ม.พะเยา ส่วนการส่งข้อความไปยังผู้ดูแลระบบผ่าน อีเมล์ ฟิลด์ email ผู้ติดต่อ ชื่อผู้ติดต่อ ปุ่ม ส่ง รีเซ็ต
Static Testing No. Review Comment 1 เพิ่มปุ่มรีเซ็ต 2 Review Meeting No. Review Comment 1 เพิ่มปุ่มรีเซ็ต 2 รอยืนยันจากลูกค้า : เพิ่มการส่งข้อความให้เก็บไว้ในระบบ (เพิ่มเติมจากการส่งอีเมล์)
Static Testing Client Feedback No. Review Comment Status 1 เพิ่มปุ่มรีเซ็ต ยืนยัน 2 เพิ่มการส่งข้อความให้เก็บไว้ในระบบ (เพิ่มเติมจากการส่งอีเมล์) ปฎิเสธ : ลูกค้าไม่ต้องการ
Non-Functional Testing Dynamic Testing Functional Testing Non-Functional Testing วัดตามความต้องการของฟังก์ชันที่ทดสอบ วัดด้วย ประสิทธิภาพ ความน่าเชื่อถือ ความยืดหยุ่น ถูกทดสอบก่อน ทดสอบหลัง functional testing ทดสอบแบบ manual หรือ ใช้เครื่องมือทดสอบก็ได้ ควรใช้เครื่องมือในการทดสอบ ตัวแปรในการวัดประสิทธิภาพ คือ ตอบสนองความต้องการเชิงธุรกิจ ตัวแปรในการวัดประสิทธิภาพคือ ความเร็ว ความยืดหยุ่นของโปรแกรม อธิบายว่า ผลผลิตที่ได้ ทำอะไรได้บ้าง อธิบายว่า ผลผลิตที่ดี ทำงานอย่างไร ง่ายในการทดสอบแบบ manual ยากในการทดสอบแบบ manual
Non-Functional Testing Dynamic Testing ประเภทการทดสอบ Functional Testing Non-Functional Testing Unit Testing Smoke Testing Sanity Testing Integration Testing White box testing Black Box testing User Acceptance testing Regression Testing Performance Testing Load Testing Volume Testing Stress Testing Security Testing Installation Testing Penetration Testing Compatibility Testing Migration Testing
100 Types of Software Testing You Never Knew Existed 1. Acceptance Testing: Formal testing conducted to determine whether or not a system satisfies its acceptance criteria and to enable the customer to determine whether or not to accept the system. It is usually performed by the customer. 2. Accessibility Testing: Type of testing which determines the usability of a product to the people having disabilities (deaf, blind, mentally disabled etc). The evaluation process is conducted by persons having disabilities. 3. Active Testing: Type of testing consisting in introducing test data and analyzing the execution results. It is usually conducted by the testing teams. 4. Agile Testing: Software testing practice that follows the principles of the agile manifesto, emphasizing testing from the perspective of customers who will utilize the system. It is usually performed by the QA teams. 5. Age Testing: Type of testing which evaluates a system's ability to perform in the future. The evaluation process is conducted by testing teams. Read more at http://www.guru99.com/types-of-software-testing.html#qk1zyDGAfI7K6VXS.99
How to Testing Manual Testing Vs Automation Testing
Manual Testing ใช้ทดสอบ functional requirement fact : software testing ใช้ได้ทั้ง Manual และ Automation Myth Fact Anyone can do manual testing Testing requires many skill sets Testing ensures 100% defect free product Testing attempts to find as many defects as possible. Identifying all possible defects is impossible. Automated testing is more powerful than manual testing 100% test automation cannot be done. Manual Testing is also essential. Testing is easy Testing can be extremely challenging .Testing an application for possible use cases with minimum test cases requires high analytical skills.
Automation Testing Performance Test Unit Test JMeter http://apache.spinellicreations.com//jmeter/binaries/apache-jmeter-2.11.zip Unit Test java :: JUnit http://junit.org/ PHP :: SimpleTest http://www.simpletest.org/
จบเนื้อหา Software Testing