SlideShare a Scribd company logo
1 of 26
Download to read offline
Software Testing Type
ประเภทการทดสอบซอฟท์แวร์
Tanapat Limsaiprom
ธนาพัฒน์ ลิ้มสายพรหม
Software Testing
• อีกหนึ่งรายวิชาของสายการเรียน Software Engineering ซึ่งก็
คือ วิชา Software Testing
• เป็นขึ้นตอนหนึ่งที่สาคัญมากๆ ในกระบวนการพัฒนาซอฟต์แวร์
• ไม่ว่าจะเป็นการ Test ประเภทไหน หรือมีกี่อย่าง เป้ าหมายที่สาคัญที่
เหมือนกันก็คือ Quality of Software ต้องมีสูงสุด และ
ครอบคลุม Requirements ที่ผู้ใช้งานต้องการ
Alpha Testing
• Alpha Testing – เป็นการ Test การใช้งานของระบบทั้งหมด
โดยทาทุกอย่างให้เหมือนการใช้งานจริงทุกอย่าง โดยไม่จาเป็นต้องมี
เครื่องหรือจานวนเครื่องเหมือนที่จะมีจริง แต่ใช้การจาลองเครื่องขึ้นมา
และสามารถใช้งานได้จริง ซึ่งเรียกว่า Virtual Machine
โดยทั่วไปแล้ว จะการทา Test ที่ฝั่ง developer หรือบริษัทที่
พัฒนาโปรแกรมหรือระบบเอง โดยลูกค้า หรือ user จะยังไม่มีส่วน
เกี่ยวข้องในการ Test นี้
Beta Testing
• Beta Testing หรือ Pilot Testing - เป็นการ Test ที่
ผู้ใช้งานจะเข้ามาทดลองใช้ระบบจริงๆ ซึ่งระบบที่จะทดสอบนั้นสามารถ
ใช้งานได้จริง ด้วยเครื่องจริง โดยการ Test ประเภทนี้จะเป็นขั้นตอน
สุดท้ายก่อนที่จะส่งมอบให้ลูกค้า หรือทาการจาหน่ายออกไป
Black box Testing
• Black box Testing – ชื่อแปลความหมายว่าเป็นการ Test
กล่องดา นั่นก็คือ การ Test โดยที่เราไม่ต้องรู้ส่วนของการ
Coding, Programming หรือส่วนต่างๆ ที่อยู่ด้านหลังการ
ทางานของโปรแกรมหรือระบบนั้นๆ Tester จะสนใจเฉพาะสิ่งที่อยู่
ตรงหน้าเท่านั้น เช่น ดูเฉพาะหน้าต่างของโปรแกรม หรือผลลัพธ์ที่ได้
เท่านั้น ไม่สนว่าขั้นตอนข้างหลังจะมีกระบวนการอย่างไรบ้าง
Whitebox Testing
• Whitebox Testing หรือ GlassBox Testing – ตรงกัน
ข้ามกับ Blackbox Testing อย่างสิ้นเชิง นั่นคือเป็นการ Test
code หรือ logic การคิดหรือคานวณค่า นั่นคือดูการทางานของ
Code
Unit Testing
• Unit Testing – ลักษณะจะค่อนข้างคล้ายกับ Whitebox
Testing คือเป็นการ Test ในระดับ Module ของ
Application นั้นๆ โดยที่จะผู้ที่จะ Test จะต้องมีความรู้ในเรื่อง
programming design และ coding ซึ่งโดยคนที่ทาการ
Test จะเป็น Developer เองหรืออาจจะสลับกัน check
ระหว่าง developer กันเอง สาหรับ Tester นั้น จะไม่มีส่วน
เกี่ยวข้องในประเภทนี้แต่ถ้ารู้เรื่องก็เยี่ยมครับ
Integration Testing
• Integration Testing – เป็นการ Test การประกอบร่าง
module แต่ละ module ที่นามาใช้งานกับ function นั้นๆ
หรือในแง่ของ component ที่อยู่คนละ Server ก็จะเป็นการ
Test ว่าสามารถ connect และทางานร่วมกันได้หรือไม่ การ Test
ประเภทนี้เหมาะกับระบบที่เป็น Client/Server
Incremental Integration Testing
• Incremental Integration Testing – เป็นการ Test
การประกอบร่าง โดยค่อยๆใส่ทีละ Function หรือ Module เพิ่ม
เข้าไป แล้ว Test ไปเรื่อยๆ เรียกว่า Bottom Up Approach
สาหรับข้อจากัดของการ Test แบบนี้คือ Function หรือ
Module นั้นๆ ควรจะต้องทางานแบบอิสระ ไม่ผูกติดกับ
module อื่นๆ เป็น dependency
Functional Testing
• Functional Testing – เป็นการ Test ที่สนใจ Function
ของ application นั้นว่าสามารถทางานจนได้ผลลัพธ์ได้ครบตรง
ตาม requirement ที่กาหนดมาหรือไม่
•
System Testing
• System Testing – เป็นการ Test ระบบทั้งระบบว่าตรงตาม
requirement หรือไม่ โดยที่จะ Test บนระบบที่ปิด คือทาบน
environment ที่ใช้สาหรับการ Test เท่านั้น - Functional
Testing เป็น sub-set ของ System Testing
End-to-end Testing
• End-to-end Testing - เป็นการเทสระบบทั้งระบบ
เหมือนกับ System Testing โดยที่สิ่งจะต่างกันคือ Tester จะ
Test บนระบบที่จะใช้ถูกงานจริงที่ประกอบร่างกันโดยสมบูรณ์แล้ว
เช่น ระบบสามารถขอข้อมูล แล้ว Flow ข้อมูลที่ต้องการจากเครื่องต้น
ทางต้นทาง มาแสดงบนหน้าจออีกเครื่องนึง โดยที่ไปเก็บข้อมูลใน
Database อีกเครื่องนึง เป็นต้น
Sanity Testing
• Sanity Testing – เป็นประเภทการ Test โดยที่จะหยิบ
function หลักๆ ของการทางานมาใช้ (ส่วนใหญ่แล้วก็จะโดนบอก
ว่า ที่ไหนก็สาคัญ ฮ่าๆ) ซึ่งจะใช้ Test เมื่อมีที่การ update
version ใหม่ๆขึ้นมา โดย version ใหม่ๆที่ออกมาจะต้องเป็นการ
fixed defect เล็กๆน้อยๆ ซึ่งการทาการ Test นี้เพื่อเป็นการ
guarantee ว่าระบบสามารถทางานได้ปกติ ไม่ทาให้ระบบ หรือ
application crash (ตรงนี้ถ้าเกิดขึ้นมาก็น่ากลัว)
Regression testing
• Regression testing – เป็นการ Test เพื่อทดสอบส่วนของ
ระบบ หรือ application ที่มีการเปลี่ยนแปลง โดยเลือกเป็น
function เป็นหลัก โดยทั่วไปแล้ว การ Test ประเภทนี้เป็นการ
ทาซ้าๆกันแทบทุกวันเพื่อ Test functions ดังนั้นแล้วเพื่อไม่ให้เป็น
การเปลืองเวลาในการ Test เราจึงมี Tool ที่ใช้ในการช่วยเรา run
test เช่น Test script เป็น command line run ด้วย
.bat หรือ HP Quick Test Pro ที่ช่วยในการทา Automate
Testing
Acceptance Testing
• Acceptance Testing – เป็นการ Test ระบบ ซึ่งลักษณะจะ
เหมือนกับ End-To-End แต่ว่าจะทาการ Test โดยลูกค้า หรือ
user ที่จะใช้งานจริงให้พึงพอใจเสียก่อน ก่อนที่จะ Sign-off งาน
Performance testing
• Performance testing – เป็นการทดสอบระบบหรือ
component ว่าสามารถรองรับการใช้งานด้วยจานวนผู้ใช้ หรือ
จานวน data ที่เข้ามาในระบบตามที่ requirement บอกไว้
หรือไม่ และเรามักใช้สลับกันกับ Load Testing และStress
Testing โดยเหมารวมว่าเป็น Performance Testing ซึ่ง
ความหมายของทั้งสองตัวนี้คือ…
Load Testing
• Load Testing – เป็นประเภทหนึ่งในการทา Performance
Testing เพื่อใช้ในการดูการทางานของระบบ เมื่ออยู่ในสภาวะที่คาด
ว่าจะเกิดขึ้นเมื่อมีการใช้งานจริง เช่น เราคาดไว้ว่า จะมีคนเข้ามาใช้งาน
app เราประมาณ 100 คน เราก็สร้าง user เพื่อเข้าไปใช้พร้อมๆกัน
แล้วดูว่าระบบจะทางานได้ช้าลง เมื่อมี user เข้ามาใช้งานพร้อมๆกัน
100 คนหรือไม่
Stress Testing
• Stress Testing – อีก 1 ประเภทของ Performance
Testing เป็น on-top ของ Load Testing คือการ Test นี้
เราจะดูจานวนมากที่สุดที่ระบบรับได้ จากตัวอย่างของ Load
Testing ถ้าเราสามารถ guarantee ว่า 100 คนรับได้แน่นอน
ตัวเลขต่อไปที่เราจะหาคือจานวนที่ user ที่รองรับได้สูงสุด
จนกว่าระบบจะล่ม ด้วยการเพิ่ม User ไปเรื่อยๆทีละ 5 user
การทา Performance นั้น เราคงไม่สามารถจะให้ user จริงๆมา
ใช้งานได้ ก็ต้องมีการสร้างหรือ generate user หลอกๆขึ้นมาเพื่อ
แทนที่ user จริงๆ และมักมีการเขียน script เพื่อให้มัน execute
การ test ได้ เช่นเดียวกันกับกรณีการทา Regression Testing
Usability Testing
• Usability Testing หรือ User Interface Testing –
เป็นการ Test User Interface ของ application ว่า
สามารถเข้าใช้งานได้ทุกเมนู หรือทุกหน้าจอหรือไม่ รวมไปถึงหน้าตา
ของ application เหมาะสมกับการใช้งานหรือไม่ ทั้งในแง่ความ
สะดวกและความง่ายในการใช้งาน อาจรวมไปถึงการทา User
Manual หรือ Troubleshooting document ให้ user
เมื่อ user เจอปัญหา ก็จะสามารถใช้ document ช่วยในการ
อ้างอิงได้
Install/Uninstall testing
• Install/Uninstall testing - เป็นการ Test package
ของ application ในแง่ของการติดตั้ง, การเอาออกจากเครื่อง
(remove) และรวมไปถึงการ upgrade โปรแกรม (ถ้ามี) ซึ่งต้อง
ครอบคลุมไปถึงการติดตั้งบน hardware / OS /
Environment ที่ต่างกันด้วย
Recovery testing
• Recovery testing – เป็นการ Test โดยที่จะดูการ recover
ของระบบ หรือ application หลังจากที่เกิดเหตุการณ์ผิดปกติของ
ระบบ เช่น Crash, Hardware เสียหาย และเหคุการณ์ที่ไม่
คาดคิด ว่าสามารถเปิดขึ้นมาแล้วทางานได้ปกติ
Security Testing
• Security Testing – เป็นการ Test ระบบเพื่อป้ องกันการเข้าถึง
ข้อมูลโดยทุจริต หรือเรียกว่า Hack เข้าสู่ระบบ ไม่ว่าจะเป็นโจมตีทั้ง
ภายในหรือภายนอก การ Test ประเภทนี้ส่วนใหญ่แล้วจะใช้กับบริษัท
หรือองค์กรที่เก็บข้อมูลที่เป็นความลับ เช่น ธนาคาร เป็นต้น ซึ่งผู้ที่จะ
เป็น Tester ในประเภทนี้ต้องเป็นคนที่รู้เรื่อง Network
Security และช่องทางที่เป็นไปได้ในการเจาะข้อมูลเป็นอย่างดี
Compatibility Testing
• Compatibility Testing – เป็นการ Test การเข้ากันระหว่าง
hardware/software/network/OS ว่าสามารถทางาน
เข้ากันได้หรือไม่ ที่เคยเจอคือ case ว่า สามารถ Run
application นี้ได้บน Windows 2003 แต่ไม่สามารถทาบน
Windows 2008 Server หรือ Windows 7 ได้
Comparison Testing
• Comparison Testing - เป็นการ Test เพื่อเปรียบเทียบ
จุดเด่น จุดด้อยของแต่ละ version ที่ผ่านมา หรืออาจเปรียบถึง
product ตัวอื่นๆที่ทางานได้เหมือนกัน
Data Comparison Testing
• Data Comparison Testing – เป็นการดึงข้อมูลในแต่ละ
ส่วนของ module มาเปรียบเทียบกันว่าข้อมูลเหมือนกันหรือต่างกัน
หรือไม่ โดยที่ต้นทางของข้อมูลจะต้องเป็นที่ที่เดียวกัน
END

More Related Content

What's hot

Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comIdexcel Technologies
 
Test Automation
Test AutomationTest Automation
Test Automationrockoder
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon StudioKnoldus Inc.
 
What is Performance Testing?
What is Performance Testing?What is Performance Testing?
What is Performance Testing?QA InfoTech
 
Software Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, PuneSoftware Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, Punesanjayjadhav8789
 
Non Functional Testing
Non Functional TestingNon Functional Testing
Non Functional TestingNishant Worah
 
Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Venkatesh Prasad Ranganath
 
powerpoint template for testing training
powerpoint template for testing trainingpowerpoint template for testing training
powerpoint template for testing trainingJohn Roddy
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation StrategyMartin Ruddy
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Introduction to automation testing
Introduction  to automation testingIntroduction  to automation testing
Introduction to automation testingonewomanmore witl
 
Software test automation
Software test automationSoftware test automation
Software test automationOksana Demediuk
 
Test Process
Test ProcessTest Process
Test Processtokarthik
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with AgileKen McCorkell
 
Chapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology DriversChapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology DriversNeeraj Kumar Singh
 
Unit 2 - Test Case Design
Unit 2 - Test Case DesignUnit 2 - Test Case Design
Unit 2 - Test Case DesignSelvi Vts
 

What's hot (20)

Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.com
 
Manual testing
Manual testingManual testing
Manual testing
 
Test Automation
Test AutomationTest Automation
Test Automation
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
 
What is Performance Testing?
What is Performance Testing?What is Performance Testing?
What is Performance Testing?
 
Software Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, PuneSoftware Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, Pune
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
 
Non Functional Testing
Non Functional TestingNon Functional Testing
Non Functional Testing
 
Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)
 
powerpoint template for testing training
powerpoint template for testing trainingpowerpoint template for testing training
powerpoint template for testing training
 
Software testing
Software testingSoftware testing
Software testing
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Introduction to automation testing
Introduction  to automation testingIntroduction  to automation testing
Introduction to automation testing
 
Software test automation
Software test automationSoftware test automation
Software test automation
 
Types of performance testing
Types of performance testingTypes of performance testing
Types of performance testing
 
Test Process
Test ProcessTest Process
Test Process
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
 
Chapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology DriversChapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology Drivers
 
Unit 2 - Test Case Design
Unit 2 - Test Case DesignUnit 2 - Test Case Design
Unit 2 - Test Case Design
 

Similar to S12 Software Testing Type

Automated Testing vs. Manual Testing
Automated Testing vs. Manual TestingAutomated Testing vs. Manual Testing
Automated Testing vs. Manual TestingPakorn Weecharungsan
 
AutoTesting.pdf
AutoTesting.pdfAutoTesting.pdf
AutoTesting.pdfpsaku1
 
การพัฒนาและติดตั้งระบบ(System implementation)
การพัฒนาและติดตั้งระบบ(System implementation)การพัฒนาและติดตั้งระบบ(System implementation)
การพัฒนาและติดตั้งระบบ(System implementation)tumetr
 
EveryBitsConsult_Services_Overview2.0
EveryBitsConsult_Services_Overview2.0EveryBitsConsult_Services_Overview2.0
EveryBitsConsult_Services_Overview2.0Atthaboon Sanurt
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบCC Nakhon Pathom Rajabhat University
 
รูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัย
รูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัยรูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัย
รูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัยChaisuriya
 
บทที่5
บทที่5บทที่5
บทที่5noonnn
 
วงจรการพัฒนาโปรแกรม
วงจรการพัฒนาโปรแกรมวงจรการพัฒนาโปรแกรม
วงจรการพัฒนาโปรแกรมdraught
 
บทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
บทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศบทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
บทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศLatcha MaMiew
 
Microsoft security essentials
Microsoft security essentialsMicrosoft security essentials
Microsoft security essentialsthepvista
 
System development life cycle sdlc
System development life cycle  sdlcSystem development life cycle  sdlc
System development life cycle sdlcKapook Moo Auan
 
System Development Life Cycle S D L C
System  Development  Life  Cycle   S D L CSystem  Development  Life  Cycle   S D L C
System Development Life Cycle S D L CKapook Moo Auan
 
การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์karmpu
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมnuknook
 

Similar to S12 Software Testing Type (20)

Automated Testing vs. Manual Testing
Automated Testing vs. Manual TestingAutomated Testing vs. Manual Testing
Automated Testing vs. Manual Testing
 
AutoTesting.pdf
AutoTesting.pdfAutoTesting.pdf
AutoTesting.pdf
 
Mini Master in software testing
Mini Master in software testingMini Master in software testing
Mini Master in software testing
 
การพัฒนาและติดตั้งระบบ(System implementation)
การพัฒนาและติดตั้งระบบ(System implementation)การพัฒนาและติดตั้งระบบ(System implementation)
การพัฒนาและติดตั้งระบบ(System implementation)
 
CI/CD
CI/CDCI/CD
CI/CD
 
Basic software testing v2.20
Basic software testing v2.20Basic software testing v2.20
Basic software testing v2.20
 
EveryBitsConsult_Services_Overview2.0
EveryBitsConsult_Services_Overview2.0EveryBitsConsult_Services_Overview2.0
EveryBitsConsult_Services_Overview2.0
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบ
 
SA Chapter 14
SA Chapter 14SA Chapter 14
SA Chapter 14
 
Sw evo 2_model
Sw evo 2_modelSw evo 2_model
Sw evo 2_model
 
คำนำ
คำนำคำนำ
คำนำ
 
รูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัย
รูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัยรูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัย
รูปแบบของรายงานวิเคราะห์ระดับความมั่นคงปลอดภัย
 
บทที่5
บทที่5บทที่5
บทที่5
 
วงจรการพัฒนาโปรแกรม
วงจรการพัฒนาโปรแกรมวงจรการพัฒนาโปรแกรม
วงจรการพัฒนาโปรแกรม
 
บทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
บทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศบทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
บทที่ 2 การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
Microsoft security essentials
Microsoft security essentialsMicrosoft security essentials
Microsoft security essentials
 
System development life cycle sdlc
System development life cycle  sdlcSystem development life cycle  sdlc
System development life cycle sdlc
 
System Development Life Cycle S D L C
System  Development  Life  Cycle   S D L CSystem  Development  Life  Cycle   S D L C
System Development Life Cycle S D L C
 
การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 

More from ธนาพัฒน์ ลิ้มสายพรหม

More from ธนาพัฒน์ ลิ้มสายพรหม (20)

Tanapat-AWS-Certifacate-6-10.pdf
Tanapat-AWS-Certifacate-6-10.pdfTanapat-AWS-Certifacate-6-10.pdf
Tanapat-AWS-Certifacate-6-10.pdf
 
Tanapat-AWS-certificate-1-5.pdf
Tanapat-AWS-certificate-1-5.pdfTanapat-AWS-certificate-1-5.pdf
Tanapat-AWS-certificate-1-5.pdf
 
AWS Identity and access management , tanapat limsaiprom
AWS Identity and access management , tanapat limsaipromAWS Identity and access management , tanapat limsaiprom
AWS Identity and access management , tanapat limsaiprom
 
AWS Technical Essential , Tanapat Limsaiprom
AWS Technical Essential , Tanapat LimsaipromAWS Technical Essential , Tanapat Limsaiprom
AWS Technical Essential , Tanapat Limsaiprom
 
AWS Amazon DynamoDB
AWS Amazon DynamoDB AWS Amazon DynamoDB
AWS Amazon DynamoDB
 
Hr clinic2
Hr clinic2Hr clinic2
Hr clinic2
 
ฺBig Data 101Chapter 8 Module 2
ฺBig Data 101Chapter 8 Module 2ฺBig Data 101Chapter 8 Module 2
ฺBig Data 101Chapter 8 Module 2
 
Big Data 101 : Chapter 8 Module 1
Big Data 101 : Chapter 8 Module 1Big Data 101 : Chapter 8 Module 1
Big Data 101 : Chapter 8 Module 1
 
Mt60307 ch7-data visulization
Mt60307 ch7-data visulizationMt60307 ch7-data visulization
Mt60307 ch7-data visulization
 
Chapter 6 predictive Analytics
Chapter 6 predictive AnalyticsChapter 6 predictive Analytics
Chapter 6 predictive Analytics
 
Ch4 e retailing strategy v62-a4
Ch4 e retailing strategy v62-a4Ch4 e retailing strategy v62-a4
Ch4 e retailing strategy v62-a4
 
Chapter5 descriptive statistic
Chapter5 descriptive statisticChapter5 descriptive statistic
Chapter5 descriptive statistic
 
Ch2 bi gdata
Ch2 bi gdataCh2 bi gdata
Ch2 bi gdata
 
Chapter 2 : Data Management
Chapter 2 : Data ManagementChapter 2 : Data Management
Chapter 2 : Data Management
 
Ch1 Business Information foundation concept
Ch1 Business Information foundation conceptCh1 Business Information foundation concept
Ch1 Business Information foundation concept
 
Chapter2 e-retailing
Chapter2 e-retailingChapter2 e-retailing
Chapter2 e-retailing
 
Chapter2 module 4 Peopleware
Chapter2 module 4 PeoplewareChapter2 module 4 Peopleware
Chapter2 module 4 Peopleware
 
Chapter 2 Module 2 Hardware
Chapter 2 Module 2 HardwareChapter 2 Module 2 Hardware
Chapter 2 Module 2 Hardware
 
Chapter2 M1-foundation concepts-thai-62 feb
Chapter2 M1-foundation concepts-thai-62 febChapter2 M1-foundation concepts-thai-62 feb
Chapter2 M1-foundation concepts-thai-62 feb
 
Tv Rating
Tv RatingTv Rating
Tv Rating
 

S12 Software Testing Type

  • 1. Software Testing Type ประเภทการทดสอบซอฟท์แวร์ Tanapat Limsaiprom ธนาพัฒน์ ลิ้มสายพรหม
  • 2. Software Testing • อีกหนึ่งรายวิชาของสายการเรียน Software Engineering ซึ่งก็ คือ วิชา Software Testing • เป็นขึ้นตอนหนึ่งที่สาคัญมากๆ ในกระบวนการพัฒนาซอฟต์แวร์ • ไม่ว่าจะเป็นการ Test ประเภทไหน หรือมีกี่อย่าง เป้ าหมายที่สาคัญที่ เหมือนกันก็คือ Quality of Software ต้องมีสูงสุด และ ครอบคลุม Requirements ที่ผู้ใช้งานต้องการ
  • 3. Alpha Testing • Alpha Testing – เป็นการ Test การใช้งานของระบบทั้งหมด โดยทาทุกอย่างให้เหมือนการใช้งานจริงทุกอย่าง โดยไม่จาเป็นต้องมี เครื่องหรือจานวนเครื่องเหมือนที่จะมีจริง แต่ใช้การจาลองเครื่องขึ้นมา และสามารถใช้งานได้จริง ซึ่งเรียกว่า Virtual Machine โดยทั่วไปแล้ว จะการทา Test ที่ฝั่ง developer หรือบริษัทที่ พัฒนาโปรแกรมหรือระบบเอง โดยลูกค้า หรือ user จะยังไม่มีส่วน เกี่ยวข้องในการ Test นี้
  • 4. Beta Testing • Beta Testing หรือ Pilot Testing - เป็นการ Test ที่ ผู้ใช้งานจะเข้ามาทดลองใช้ระบบจริงๆ ซึ่งระบบที่จะทดสอบนั้นสามารถ ใช้งานได้จริง ด้วยเครื่องจริง โดยการ Test ประเภทนี้จะเป็นขั้นตอน สุดท้ายก่อนที่จะส่งมอบให้ลูกค้า หรือทาการจาหน่ายออกไป
  • 5. Black box Testing • Black box Testing – ชื่อแปลความหมายว่าเป็นการ Test กล่องดา นั่นก็คือ การ Test โดยที่เราไม่ต้องรู้ส่วนของการ Coding, Programming หรือส่วนต่างๆ ที่อยู่ด้านหลังการ ทางานของโปรแกรมหรือระบบนั้นๆ Tester จะสนใจเฉพาะสิ่งที่อยู่ ตรงหน้าเท่านั้น เช่น ดูเฉพาะหน้าต่างของโปรแกรม หรือผลลัพธ์ที่ได้ เท่านั้น ไม่สนว่าขั้นตอนข้างหลังจะมีกระบวนการอย่างไรบ้าง
  • 6. Whitebox Testing • Whitebox Testing หรือ GlassBox Testing – ตรงกัน ข้ามกับ Blackbox Testing อย่างสิ้นเชิง นั่นคือเป็นการ Test code หรือ logic การคิดหรือคานวณค่า นั่นคือดูการทางานของ Code
  • 7. Unit Testing • Unit Testing – ลักษณะจะค่อนข้างคล้ายกับ Whitebox Testing คือเป็นการ Test ในระดับ Module ของ Application นั้นๆ โดยที่จะผู้ที่จะ Test จะต้องมีความรู้ในเรื่อง programming design และ coding ซึ่งโดยคนที่ทาการ Test จะเป็น Developer เองหรืออาจจะสลับกัน check ระหว่าง developer กันเอง สาหรับ Tester นั้น จะไม่มีส่วน เกี่ยวข้องในประเภทนี้แต่ถ้ารู้เรื่องก็เยี่ยมครับ
  • 8. Integration Testing • Integration Testing – เป็นการ Test การประกอบร่าง module แต่ละ module ที่นามาใช้งานกับ function นั้นๆ หรือในแง่ของ component ที่อยู่คนละ Server ก็จะเป็นการ Test ว่าสามารถ connect และทางานร่วมกันได้หรือไม่ การ Test ประเภทนี้เหมาะกับระบบที่เป็น Client/Server
  • 9. Incremental Integration Testing • Incremental Integration Testing – เป็นการ Test การประกอบร่าง โดยค่อยๆใส่ทีละ Function หรือ Module เพิ่ม เข้าไป แล้ว Test ไปเรื่อยๆ เรียกว่า Bottom Up Approach สาหรับข้อจากัดของการ Test แบบนี้คือ Function หรือ Module นั้นๆ ควรจะต้องทางานแบบอิสระ ไม่ผูกติดกับ module อื่นๆ เป็น dependency
  • 10. Functional Testing • Functional Testing – เป็นการ Test ที่สนใจ Function ของ application นั้นว่าสามารถทางานจนได้ผลลัพธ์ได้ครบตรง ตาม requirement ที่กาหนดมาหรือไม่ •
  • 11. System Testing • System Testing – เป็นการ Test ระบบทั้งระบบว่าตรงตาม requirement หรือไม่ โดยที่จะ Test บนระบบที่ปิด คือทาบน environment ที่ใช้สาหรับการ Test เท่านั้น - Functional Testing เป็น sub-set ของ System Testing
  • 12. End-to-end Testing • End-to-end Testing - เป็นการเทสระบบทั้งระบบ เหมือนกับ System Testing โดยที่สิ่งจะต่างกันคือ Tester จะ Test บนระบบที่จะใช้ถูกงานจริงที่ประกอบร่างกันโดยสมบูรณ์แล้ว เช่น ระบบสามารถขอข้อมูล แล้ว Flow ข้อมูลที่ต้องการจากเครื่องต้น ทางต้นทาง มาแสดงบนหน้าจออีกเครื่องนึง โดยที่ไปเก็บข้อมูลใน Database อีกเครื่องนึง เป็นต้น
  • 13. Sanity Testing • Sanity Testing – เป็นประเภทการ Test โดยที่จะหยิบ function หลักๆ ของการทางานมาใช้ (ส่วนใหญ่แล้วก็จะโดนบอก ว่า ที่ไหนก็สาคัญ ฮ่าๆ) ซึ่งจะใช้ Test เมื่อมีที่การ update version ใหม่ๆขึ้นมา โดย version ใหม่ๆที่ออกมาจะต้องเป็นการ fixed defect เล็กๆน้อยๆ ซึ่งการทาการ Test นี้เพื่อเป็นการ guarantee ว่าระบบสามารถทางานได้ปกติ ไม่ทาให้ระบบ หรือ application crash (ตรงนี้ถ้าเกิดขึ้นมาก็น่ากลัว)
  • 14. Regression testing • Regression testing – เป็นการ Test เพื่อทดสอบส่วนของ ระบบ หรือ application ที่มีการเปลี่ยนแปลง โดยเลือกเป็น function เป็นหลัก โดยทั่วไปแล้ว การ Test ประเภทนี้เป็นการ ทาซ้าๆกันแทบทุกวันเพื่อ Test functions ดังนั้นแล้วเพื่อไม่ให้เป็น การเปลืองเวลาในการ Test เราจึงมี Tool ที่ใช้ในการช่วยเรา run test เช่น Test script เป็น command line run ด้วย .bat หรือ HP Quick Test Pro ที่ช่วยในการทา Automate Testing
  • 15. Acceptance Testing • Acceptance Testing – เป็นการ Test ระบบ ซึ่งลักษณะจะ เหมือนกับ End-To-End แต่ว่าจะทาการ Test โดยลูกค้า หรือ user ที่จะใช้งานจริงให้พึงพอใจเสียก่อน ก่อนที่จะ Sign-off งาน
  • 16. Performance testing • Performance testing – เป็นการทดสอบระบบหรือ component ว่าสามารถรองรับการใช้งานด้วยจานวนผู้ใช้ หรือ จานวน data ที่เข้ามาในระบบตามที่ requirement บอกไว้ หรือไม่ และเรามักใช้สลับกันกับ Load Testing และStress Testing โดยเหมารวมว่าเป็น Performance Testing ซึ่ง ความหมายของทั้งสองตัวนี้คือ…
  • 17. Load Testing • Load Testing – เป็นประเภทหนึ่งในการทา Performance Testing เพื่อใช้ในการดูการทางานของระบบ เมื่ออยู่ในสภาวะที่คาด ว่าจะเกิดขึ้นเมื่อมีการใช้งานจริง เช่น เราคาดไว้ว่า จะมีคนเข้ามาใช้งาน app เราประมาณ 100 คน เราก็สร้าง user เพื่อเข้าไปใช้พร้อมๆกัน แล้วดูว่าระบบจะทางานได้ช้าลง เมื่อมี user เข้ามาใช้งานพร้อมๆกัน 100 คนหรือไม่
  • 18. Stress Testing • Stress Testing – อีก 1 ประเภทของ Performance Testing เป็น on-top ของ Load Testing คือการ Test นี้ เราจะดูจานวนมากที่สุดที่ระบบรับได้ จากตัวอย่างของ Load Testing ถ้าเราสามารถ guarantee ว่า 100 คนรับได้แน่นอน ตัวเลขต่อไปที่เราจะหาคือจานวนที่ user ที่รองรับได้สูงสุด จนกว่าระบบจะล่ม ด้วยการเพิ่ม User ไปเรื่อยๆทีละ 5 user การทา Performance นั้น เราคงไม่สามารถจะให้ user จริงๆมา ใช้งานได้ ก็ต้องมีการสร้างหรือ generate user หลอกๆขึ้นมาเพื่อ แทนที่ user จริงๆ และมักมีการเขียน script เพื่อให้มัน execute การ test ได้ เช่นเดียวกันกับกรณีการทา Regression Testing
  • 19. Usability Testing • Usability Testing หรือ User Interface Testing – เป็นการ Test User Interface ของ application ว่า สามารถเข้าใช้งานได้ทุกเมนู หรือทุกหน้าจอหรือไม่ รวมไปถึงหน้าตา ของ application เหมาะสมกับการใช้งานหรือไม่ ทั้งในแง่ความ สะดวกและความง่ายในการใช้งาน อาจรวมไปถึงการทา User Manual หรือ Troubleshooting document ให้ user เมื่อ user เจอปัญหา ก็จะสามารถใช้ document ช่วยในการ อ้างอิงได้
  • 20. Install/Uninstall testing • Install/Uninstall testing - เป็นการ Test package ของ application ในแง่ของการติดตั้ง, การเอาออกจากเครื่อง (remove) และรวมไปถึงการ upgrade โปรแกรม (ถ้ามี) ซึ่งต้อง ครอบคลุมไปถึงการติดตั้งบน hardware / OS / Environment ที่ต่างกันด้วย
  • 21. Recovery testing • Recovery testing – เป็นการ Test โดยที่จะดูการ recover ของระบบ หรือ application หลังจากที่เกิดเหตุการณ์ผิดปกติของ ระบบ เช่น Crash, Hardware เสียหาย และเหคุการณ์ที่ไม่ คาดคิด ว่าสามารถเปิดขึ้นมาแล้วทางานได้ปกติ
  • 22. Security Testing • Security Testing – เป็นการ Test ระบบเพื่อป้ องกันการเข้าถึง ข้อมูลโดยทุจริต หรือเรียกว่า Hack เข้าสู่ระบบ ไม่ว่าจะเป็นโจมตีทั้ง ภายในหรือภายนอก การ Test ประเภทนี้ส่วนใหญ่แล้วจะใช้กับบริษัท หรือองค์กรที่เก็บข้อมูลที่เป็นความลับ เช่น ธนาคาร เป็นต้น ซึ่งผู้ที่จะ เป็น Tester ในประเภทนี้ต้องเป็นคนที่รู้เรื่อง Network Security และช่องทางที่เป็นไปได้ในการเจาะข้อมูลเป็นอย่างดี
  • 23. Compatibility Testing • Compatibility Testing – เป็นการ Test การเข้ากันระหว่าง hardware/software/network/OS ว่าสามารถทางาน เข้ากันได้หรือไม่ ที่เคยเจอคือ case ว่า สามารถ Run application นี้ได้บน Windows 2003 แต่ไม่สามารถทาบน Windows 2008 Server หรือ Windows 7 ได้
  • 24. Comparison Testing • Comparison Testing - เป็นการ Test เพื่อเปรียบเทียบ จุดเด่น จุดด้อยของแต่ละ version ที่ผ่านมา หรืออาจเปรียบถึง product ตัวอื่นๆที่ทางานได้เหมือนกัน
  • 25. Data Comparison Testing • Data Comparison Testing – เป็นการดึงข้อมูลในแต่ละ ส่วนของ module มาเปรียบเทียบกันว่าข้อมูลเหมือนกันหรือต่างกัน หรือไม่ โดยที่ต้นทางของข้อมูลจะต้องเป็นที่ที่เดียวกัน
  • 26. END