สอบถามเทคนิค Agile Software Testing กับระบบที่มีลักษณะดังนี้หน่อยครับ

ท้าวความก่อน ปัจจุบันทีมทำงานแบบ Waterfall ซึ่งระบบที่ทีมดูแลอยู่มีลักษณะดังนี้

1. เป็น Server Side ล้วนๆ ไม่มี User Interface (Mainframe)
2. Programmer มีหน้าที่เขียนโค๊ดบน Mainframe เพื่อแปลง data จากลูกค้าให้เป็น Format ที่ระบบรองรับ (Data จากลูกค้า จะเป็นรูปแบบใดก็ได้)
3. พอได้ data ที่มี Format ตรงกับที่ระบบรองรับแล้ว ระบบจะนำ data ไปประมวลผลตาม requirements (มีเขียน code ตรงนี้นิดหน่อย) แล้ว generate output ออกมาแสดง (แสดงได้หลายรูปแบบตามแต่ requirement ไม่ว่าจะเป็น web based, pdf file etc.)

สรุปก็คือ ทั้งกระบวรการนั้น เราจะเห็นแค่ data กับ output เลย ไม่ได้มีหน้าเวป หรือ หน้าโปรแกรมให้ลูกค้าใช้งานแต่อย่างไร (ลูกค้าต้องการแค่ output สุดท้าย)

ซึ่งปัจจุบันการทำงานแบบ Waterfall ก็คือหลังจาก Programmer เขียนโค๊ดเสร็จ ทาง Tester ก็จะจำลองการ run ระบบตั้งแต่ป้อน data file เข้าไป ให้ระบบ generate output มา แล้วนำ output นั้นมา Test ว่าตรงตาม requirement และ design มั้ย

แต่ตอนนี้ทางบริษัทมีแนวโน้มว่าจะเปลี่ยนการทำงานเป็นแบบ Agile ซึ่งผมก็ได้การบ้านมาให้ไปลองศึกษาดูว่าจะเอามาใช้งานกับทีมได้ยังไงบ้าง

ซึ่งผมลองหาข้อมูลแล้ว แนวโน้มมันจะไปเป็นทาง Automated Testing พวก Web Application, Web Services ซะมากกว่า ซึ่งระบบที่บริษัทผมทำงานอยู่ ไม่ตรงตามสิ่งเหล่านี้

จึงอยากขอคำแนะนำคนที่ชำนาญเรื่อง Agile/Scrum ช่วยลองแนะนำแนวทางหน่อยครับ

ปล. เพื่อให้เห็นภาพของระบบ บริษัทผม outsource ทำสิ่งที่หลายๆคนเรียกว่า "ใบทวงหนี้" นั่นแหละครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 7
ก่อนอื่น ต้องแยกก่อนค่ะ เรื่อง Agile / Agile Testing

คงต้องอธิบาย ก่อนว่า

Agile Software Development คือเป็นแนวคิด ในการพัฒนาsoftware ที่ มีพื้นฐานอยู่บน สี่ข้อข้างล่างนี้ค่ะ

คำแถลงอุดมการณ์แห่งอไจล์

เราค้นพบวิธีที่ดีกว่าในการพัฒนาซอฟท์แวร์
จากการลงมือทำจริงและช่วยเหลือผู้อื่น
นั่นคือ เราให้ความสำคัญกับ:

คนและการมีปฎิสัมพันธ์กัน มากกว่าการทำตามขั้นตอนและเครื่องมือ
ซอฟต์แวร์ที่นำไปใช้งานได้จริง มากกว่าเอกสารที่ครบถ้วนสมบูรณ์
ร่วมมือทำงานกับลูกค้า มากกว่าการต่อรองให้เป็นไปตามสัญญา
การตอบรับกับการเปลี่ยนแปลง มากกว่าการทำตามแผนที่วางไว้

ทั้งนี้ แม้เราจะเห็นความสำคัญในสิ่​งที่กล่าวไว้ทางด้านขวา
แต่เราให้ความสำคัญกับสิ่งที่กล่าวไว้ทางด้านซ้ายมากกว่า

http://agilemanifesto.org/iso/th/

เนี่ยล่ะค่ะ Agile มีสี่ข้อนี้จริงๆ

จะเห็นได้ว่า บอกไว้กว้างๆ ไม่ได้บอกว่าจะทำอย่างไร ให้ไปถึง สี่ข้อนั้น

ดังนั้น จึงมีสิ่งที่เรียกว่า ข้อปฏิบัติ Practice ให้ทำตามอยู่หลายอย่างๆค่ะ ตามในรูปนี้




http://guide.agilealliance.org/subway.html

ซึ่งออกแบบมา เพื่อให้ ลงมือทำ ทำไปเพื่อจะได้สอดคล้องกับ 4 ข้อข้างบน

ที่นี้  Agile มีการทำงาน ส่งมอบซอฟท์แวร์ที่ใช้งานได้จริงกับลูกค้า ตาม ระยะช่วงเวลา เรียกว่า iterative

ดังนั้น แน่นอนว่า พอส่งงานบ่อยๆมี feature ใหม่ๆ แล้ว ใครจะมั่นใจได้ล่ะว่า feature เก่าที่ทำเมื่อสองอาทิตย์ก่อนจะไมตายไม่พังไม่เจ๊ง

ก็เลย มี automated testing เกิดขึ้นมาในระดับต่างๆ

เริ่มตั้งแต่ ระดับ code คือ TDD - Test Driven Development

ระดับ customer ก็อย่างเช่น BDD Behavior Driven Development

เพื่อลดความซ้ำซ้อน ลดเวลาในการที่จะต้อง ย้อนกลับไปนั่งทดดสอบของเก่าๆ

ถ้าอยากอ่านหนังสือเพิ่มเติม คุณลองอ่าน Agile Testing ของ Lisa Crispin & Janet ดูก่อนได้ค่ะ จะได้เข้าใจมากขึ้น

ลองหยิบ Practices ซักอันมาเริ่มทำ แล้วก็ค่อยๆ ปรับ ค่อยๆแก้ไขกันไปให้เข้ากับบริบทของทีมค่ะ

ลองหยิบ Methodology ที่มีหลักปฏิบัติชัดเจน อย่าง Scrum ไปลองใช้กับทีมก็ได้ค่ะ

https://www.scrumalliance.org/scrum/media/ScrumAllianceMedia/Files%20and%20PDFs/Why%20Scrum/ScrumFrameworkin30seconds-poster.png

ลองเอา scru,primer ไปอ่านดูได้ค่ะ http://www.scrumprimer.com

ถ้า สนใจ สงสัย อยากถามเพิ่มเติม เรื่อง Agile : ไปที่กลุ่ม Agile66 ได้ค่ะ หรือเรื่อง Software Testing Agile Testing ไปที่ welovebug ก็ได้
เรื่อง Scrum ก็ลองดูที่ scrum123 ค่ะ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่