วันพุธที่ 28 พฤษภาคม พ.ศ. 2557

มาดู SOFTWARE ว่าเขา TEST กันอย่างไร

manual-testing-software-testing-types
การทดสอบไม่สามารถขจัดข้อบกพร่องภายในซอฟต์แวร์ได้ทั้งหมดอย่างสมบูรณ์ ต้องจัดให้มี การประเมินผล หรือการเปรียบเทียบสถานะและ พฤติกรรมของผลิตภัณฑ์ที่เกี่ยวข้องกับทฤษฎีโอราเคล หรือกลไก โดยบางชนิดที่สามารถยอมรับปัญหา โอราเคลสามารถรวมอยู่(แต่ไม่มีข้อจำกัด) คุณสมบัติ, ข้อตกลง, ข้อเปรียบเทียบผลิตภัณฑ์ ส่วนของเวอร์ชันของผลิตภัณฑ์เดียวกัน, ข้อสรุปเรื่องการวางแผน หรือตามวัตถุประสงค์ที่คาดหวัง มาตรฐานที่คาดหวังจากผู้ใช้คนสุดท้ายหรือลูกค้า, เข้าใจประเด็น, สามารถปรับใช้กับกฎหมาย, หรือกฎเกรณ์อื่นๆ ทุกๆ ผลิตภัณฑ์ซอฟต์แวร์มีผู้เข้าร่วมประชุมเพื่อหาจุดมุ้งหมายรวมกัน ตัวอย่างเช่น ประชุมร่วมสำหรับ ระบบวิดีโอเกม ความสมบูรณ์ต่างจาก ระบบธุรกรรมผ่านธนาคาร เพราะฉะนั้น เมื่อการพัฒนาองค์กรหรือมิฉะนั้น การลงทุนผลิตภัณฑ์ซอฟต์แวร์ สามารถประเมินมูลค่า หรือผู้ใช้สามารถยอมรับได้ในผลิตภัณฑ์ที่ซอฟต์แวร์ กลุ่มผู้ฟังที่เป็นเป้าหมาย, ผู้ซื้อ และผู้มีส่วนร่วมอื่นๆ การทดสอบซอฟต์แวร์ คือกระบวนการ การพยายามทำการประเมินราคา การจัดการศึกษาโดยหน่วยงานด้านมาตรฐาน และกฎระเบียบทางเทคนิคของสหรัฐฯ ในปี 2002 รายงานว่า ซอฟต์แวร์การหาข้อบกพร่องมีต้นทุน ในสหรัฐฯ สามารถทำรายได้ถึง 59.5 ล้าน ดอลลาร์สหรัฐ ในทุกๆปี มากกว่าอันดับสามของต้นทุนถ้าสามารถหลีกเลี่ยง ถ้าทำการทดสอบซอฟต์แวร์
ประวัติ
ในการแยกของการหาข้อบกพร่องจากการทดสอบ ในขั้นต้น แนะนำโดย Glenford J. Myers ในปี 1979 ถึงแม้นว่าเป็นการตัดสินใจมีการทดสอบน่าเสียหาย (การทดสอบเป็นหนึ่งในการค้นหาข้อบกพร่อง) มีภาพประกอบการออกแบบจากสมาคมวิศวกรรมซอฟต์แวร์ เป็นพื้นฐานการพัฒนากิจกรรม เช่น การหาข้อบกพร่อง, จากการทวนสอบ, ของการตรวจสอบความถูกต้องตามที่ออกแบบไว้ Dave Gelperin และ William C. Hetzel กำหนดใน ปี 1988 และเป้าหมายในการทดสอบซอฟต์แวร์ ตามลำดับต่อไปนี้
แนวทางการทดสอบ
แนวทางการทดสอบ มีหลายวิธีการ แนวทางหนึ่งที่สามารถทำได้ดีคือ กระบวนการตั้งคำถามต่อซอฟต์แวร์ เพื่อดำเนินการทดสอบและประเมินตัวซอฟต์แวร์ ว่าสามารถตอบคำถามที่ตั้งไว้ได้อย่างถูกต้องหรือไม่
คำถาม มักหมายถึง เหตุการณ์หรือวิธีการที่จะกระทำกับตัวซอฟต์แวร์
คำตอบ มักหมายถึง ผลลัพธ์ที่พฤติกรรมของซอฟต์แวร์ต่อคำถามที่เกิดขึ้น
คุณภาพของซอฟต์แวร์ที่สามารถทดสอบได้ ได้แก่
reliability – ความน่าเชื่อถือ
efficiency – ประสิทธิภาพ
portability – ความสามารถในการเคลื่อนย้าย
maintainability – ความสามารถในการดูแลรักษา
compatibility – ความสามารถเข้ากันได้
usability – สามารถใช้ได้ง่ายเข้าใจได้ง่าย
รูปแบบการทดสอบ
Unit test – เป็นการทดสอบในระดับ function call เพื่อเป็นการยืนยันการทำงานระดับย่อยที่สุดว่าทำงานได้ถูกต้อง เป็นการทดสอบโดยนักเขียนโปรแกรมผู้เขียนโค๊ด
Integration test – เป็นการทดสอบการเชื่อมต่อส่วนย่อยๆ(Component หรือ Module)ที่นำมาประกอบกัน ให้ได้ซอฟต์แวร์ที่สมบูรณ์
System test – เป็นการทดสอบการเชื่อมต่อหรือติดต่อสื่อสารกันระหว่างซอฟต์แวร์ หรือระบบอื่นๆ
Acceptant test – เป็นการทดสอบโดยผู้ใช้ (End user) หรือโดยลูกค้า เพื่อดูว่าซอฟต์แวร์ทำงานถูกต้องตามต้องการหรือไม่
Usability test – เป็นการทดสอบการใช้งานซอฟต์แวร์โดยผู้เชียวชาญส่วนติดต่อผู้ใช้ ว่าใช้งานได้ง่าย เข้าใจได้ง่าย หรือไม่
ขั้นตอนการทดสอบ
ขึ้น ตอนการทดสอบซอฟต์แวร์นั้นส่วนใหญ่แล้วขึ้นอยู่กับระเบียบวิธีการทำงานของ แต่ละองค์กรหรือทีมงานในแต่ละแห่ง ไม่ได้มีรูปแบบตายตัวแน่นอน แต่สามารถระบุอย่างคร่าวๆได้ดังนี้
-วิเคราะห์ความต้องการ
-จัดทำแผนงานการทดสอบ
-จัดทำแนวทางการทดสอบ
-ทดสอบจริง
-รายงานผลการทดสอบ
-ทดสอบผลจากการแก้ไข
ที่มา