สวัสดีคับ ยินดีต้อนรับเข้าสู่ Viewermine’s Blog นะตอนนี้กำลังศึกษาการใช้งานอยู่นะครับ และกะจะแชร์ประสบการณ์ด้านต่าง ๆ เพื่อเป็๋นความรู้เล็ก ๆ น้อย ๆ กับผู้ที่สนใจ แต่จุดประสงค์หลักคือ อยากเก็บในสิ่งที่ตัวเองอยากจำนะครับ และอีกอย่างคือ เก็บในสิ่งที่เคยรู้ และประสบมา
Hello everybody
Process Overview
วัตถุประสงค์หลัก คือ ระบุถึงขั้นตอนการดำเนินงานต่าง ๆ ภายในทีม (Test Team) รวมถึงการประสานงานและการทำงานร่วมกันกับทีมงานที่เกี่ยวข้อง พร้อมทั้งกำหนดรายละเอียดเกี่ยวกับเอกสารเข้า – ออก
Roles and Responsibilities
IT Development Team (IDT) คือ ทีมผู้พัฒนาระบบ ตามรายละเอียดหรือ Solution ต่าง ๆ ตามที่ System Analyst (SA) เป็นผู้กำหนดให้ โดยพัฒนาระบบงานนั้น ๆ ตามระยะเวลาที่ทาง Project Manager (PM) เป็นผู้กำหนด
IT Test Team (ITT) คือ ทีมผู้ทดสอบระบบงานนั้น ๆ ตามกระบวนการของทีม ตามที่ PM กำหนดไว้ ประกอบด้วยข้อมูล Solution ต่าง ๆ ตามที่ SA กำหนดให้
User Acceptance Testing Team (UAT) คือ ทีมผู้ทดสอบตามรายละเอียดต่าง ๆ ตามที่ PM กำหนดไว้และดำเนินงานตามตารางที่ PM กำหนด
Project Manager (PM) คือ ผู้กำหนดรายละเอียด ขอบเขต เงื่อนไขของการทำงาน พร้อมทั้งติดตามและควบคุมการดำเนินงานให้เป็นไปตามที่กำหนดไว้
IT Project Lead (PL) คือ ผู้กำหนดรายละเอียด ขอบเขต เงื่อนไขของการทำงาน พร้อมติดตามการดำเนินงานของ Developer ให้เป็นไปตามกำหนด ที่ PM กำหนดไว้ ประกอบกับข้อมูล Solution ต่าง ๆ ที่ SA กำหนด
System Analyst (SA) คือ ผู้กำหนดขอบเขต รายละเอียด เงื่อนไข Solution ต่าง ๆ เพื่อวางแผนการพัฒนาระบบงานให้กับ Developer
Developer (DEV) คือ ผู้พัฒนาระบบงาน โดยพัฒนาระบบตามข้อกำหนด รายละเอียดต่าง ๆ ที่ IT Project Lead และ SA กำหนดไว้
Test Process
กระบวนการทดสอบระบบ แบ่งออกเป็น 5 Phase ดังนี้
- Walk through requirement
- Test design and preparation
- Test Execution
- Regression Test
- Test Closure
อ้างอิงจาก : http://www.welovebug.com/software-testing/software-testing-test-process-part1/
มาตรฐานและแนวทางสำหรับการ test ตั้งแต่การเขียน test case / script, test unit, UAT จนถึงระเบียบขั้นตอนการ test ซึ่งควรลงไปจนถึงระดับโปรแกรมเมอร์ว่าควร test อย่างไร test อะไรบ้างและแค่ไหน กำหนดขอบเขตและแบ่งเป็นสัดส่วนให้ชัดเจน กำหนดบทบาทหน้าที่และ map กับคนให้เรียบร้อย สำหรับการ test ควร test ให้ครอบคลุม ไม่ควรทำแค่ functional test เพียงอย่างเดียว เพราะจะทำให้ไม่สามารถเห็นการทำงานภายในซอฟต์แวร์ได้เลย ดังนั้นจึงควร test ในมิติอื่นด้วย เช่น reliability test, performance test
ส่วนเทคนิคการ test นั้นมีมากมายซึ่งเป็นหน้าที่ของ tester, test manager, test engineer แต่โปรแกรมเมอร์ก็ควรมีส่วนร่วมในการ test ด้วยเช่นกันโดยทำหน้าที่ในส่วน unit test ซึ่งโปรแกรมเมอร์ควรเขียน unit test ด้วยตัวเอง และต้องระบุด้วยว่า unit test นั้นสัมพันธ์กับโค้ดส่วนไหนบ้าง และสัมพันธ์กับ requirements ใด (เพื่อให้สามารถทำ requirements traceability, defect management, risk management, change management, impact analysis ได้)
ดังนั้นในการทำงานหากให้ดีควรมีโอกาสได้พบเจอโปรแกรมเมอร์ผู้เขียนโค้ดจริง ๆ ด้วย จะได้พูดคุย สอบถาม จับผิด ตรวจสอบกันได้ และหลอกถามให้ละเอียดว่าการ test จริง ๆ ในทีมทำกันอย่างไร (ถ้าเป็นไปได้) Software Testing ถือเป็นศาสตร์ที่ยากมากต้องมีความเข้าใจสูง มีความละเอียดและใส่ใจสูง ซึ่ง best practice คือ จะทำอย่างไรที่จะทดสอบด้านสถาปัตยกรรมฯ (Architectural Test) ให้ได้ เพราะ architectural test นั้นเป็นการเจาะเข้าไป test ถึงภายในตัวซอฟต์แวร์กันจริง ๆ เป็นการ test คุณภาพการทำงานของกลไกฯ (architectural mechanism) ต่าง ๆ กันจริง ๆ ไม่ใช่ test แค่เปลือกอย่าง functional test หรือ UAT ที่มักทำ ๆ กันเท่านั้น ซึ่งรวมถึงการทำ load test, stress test ที่มัก test ด้าน performance เป็นหลักเท่านั้น
การ test จำเป็นต้องพึ่งทั้งความรู้ด้านทฤษฏีและเครื่องมือ ซึ่งเครื่องมือก็คือ tool ด้าน software testing การ test ที่ดีคือควร test ด้วยมือให้น้อยที่สุด เพื่อลดความผิดพลาดและความไม่เที่ยงตรง แต่ tool ด้าน testing มักมีราคาแพง ดังนั้นจึงควรเผื่องบประมาณด้านนี้ไว้ด้วย และบริษัทไอทีในบ้านเรามีน้อยรายที่ชำนาญด้าน software testing จริง ๆ (ที่มิใช่เก่งแต่ใช้ tool) ดังนั้นการให้ความสำคัญกับการพัฒนาบุคลากรด้านนี้จึงจำเป็นมาก
อ้างอิงจาก : http://www.narisa.com/forums/index.php?app=blog&blogid=21&showentry=2054
เริ่มต้นจาก Tester ก้าวต่อไปคือ Test Specialist หรือ Test Manager ต่อมาคือ Test Assistant Director หรือก้าวข้ามขั้นเป็น project manager หรือ business analysis.
สายงานทางด้าน Software testing มีตำแหน่งเริ่มต้นคือ tester โดยจะแบ่ง ระดับ ออกเป็น 2 ระดับ คือ
- Junior Tester
- Senior Tester
ทางด้าน Junior Tester จะเน้นเรื่อง Technical Skills เป็นหลัก ส่วนด้าน Senior Tester จะต้องมีการ Management อยู่บ้าง
Specialist or Manager
Specialist จะเน้นเรื่อง ความรู้ และความสามารถ เช่น
- Test Technique Specialist
- Test Automate Specialist
- Security Test Specialist
- Performance Test Specialist
- Database Test Specialist
Management จะเน้นเรื่อง การบริหารจัดการ วางแผน รวมถึงการกำหนดมาตรฐานที่ใช้ในทีมและในองค์กร เช่น
- Test Lead
- Test Manager
- Test Director
อ้างอิงจาก : http://www.welovebug.com/software-testing/
- จัดทำ test case, test script, test plan
- ทดสอบระบบ(system testing) ตาม requirement
- ส่ง defect log ให้ programmer
- retest defect log ที่ส่งกลับมาจาก programmer
- จัดทำ test summary report