\

Facebook


วันพฤหัสบดีที่ 22 มิถุนายน พ.ศ. 2560

ยุคสมัยแห่ง Automate เมื่อ Selenium เข้ามาเป็น QA แทนมนุษย์ (Part 1)


ยอมรับสักทีเถอะว่ายุคนี้ ปี 2017 มันเริ่มเข้าสู่ยุคหุ่นยนต์แล้ว ไหนจะรถไร้คนขับ ไหนจะ AlphaGo ที่เล่นเกมส์โกะชนะมนุษย์ที่เลานเก่งที่สุดในโลก เดินไปทางไหนคอมพิวเตอร์ก็เข้ามาคิดแทนมนุษย์แล้ว และมนุษย์กำลังจะตกงานมากขึ้นเพราะมีคอมพิวเตอร์ทำงานแทน วงการเขียนโปรแกรมก็เช่นเดียวกันโดยเฉพาะการเทสโปรแกรมที่ต้องเทสซ้ำๆ โมดูลเดิมๆบ่อยๆซึ่งต้องจ้างคนมาทำงาน QA แถมมนุษย์ยังมีโอกาสผิดพลาดอีกแบบนี้ไม้เหลือเหตุผลใดที่จะเปลี่ยนมาใช้ Automate tool

เครื่องมือเทสเสียเงินก็มี แถมฟีเจอร์โหด แต่ถ้าพูกถึงเครื่องมือฟรีผมขอแนะนำ Selenium ในงานเทสของคุณโดยเจ้าตัว Selenium เนี้ยหลายคนจะคุ้นหูคุ้นตากับตัว Selenium IDE ที่เป็นปลั้กอินติดกับ Firefox Web Browser โดยเราทำเพียงแค่คลิกบันทึก Event ที่จะทำงานบนหน้าจอครั้งแรกครั้งเดียว แล้วโปรแกรมก็จะรันอีกกี่ครั้งก็ได้ สมมุติว่าสร้างชุดการเทสขึ้นมาหนึ่งอย่าง ให้วิ่งเข้าไปกรอกข้อมูลบนหน้าเว็บแล้วกด Submit ถ้าผ่าน โปรแกรมจะวิ่งไปหน้า Success แต่ถ้าไม่สำเร็จไปหน้า Error Page แบบนี้เราก็สามารถ Capture URL สุดท้ายเพื่อเช็คข้อมูลได้

Selenium WebDriver เหมาะกับงานประเภทไหน

1. งานที่ต้อง Import TestCase จาก Project Unit Test
2. งานที่ต้องการใช้ feature ของ .Net Framework เข้ามาเกี่ยวข้อง เช่น ดึงข้อมูลจากหน้าเว็บแล้วเอาข้อมูลไปเซฟลง Database หรืออาจเรียก Web Service เพื่อตรวจสอบค่าบางอย่าง
3. งานที่ซ้ำๆ ซ้อนๆ มนุษย์ทำแล้วน่าเบื่อ เช่น generate เอกสารจากปุ่ม Download ทั้งหมด 100 ไฟล์ ใครมันจะมานั้งทำจนมือหงิก

แล้วมันไม่เหมาะกับงานประเภทไหน

1. งานเทสโปรเจกที่สเกลเล็กจนใช้คนทำจะไวกว่า
2. งานที่รีบเร่งส่งงาน เพราะการเขียนตัว Unit Test ใครเวลาพอสมควร (แต่สบายระยะยาว)
3. งานที่โปรแกรมเมอร์ ไม่สามารถออกแบบ Test Case ด้วยตัวเองให้ครอบคลุม เพราะบางอย่างดูด้วยตาจะชัดเจนกว่ามาก เช่นเช็คสีของข้อความที่แสดงบนหน้าเว็บ

หยุดพล่ามแล้วเริ่มลงมือทำความรู้จักกับ Selenium กันดีกว่า ขอเริ่มอธิบายสั้นๆตามความเข้าใจก่อนว่า Selenium คือหน้ากากที่จะช่วยเราแปลภาษาสำหรับติดต่อสื่อสารกับ Web Browser เช่น เราอยากเข้าเว็บ Google แล้ว Search คำว่า “solid programming” เราจะต้องทำอะไรบ้าง อันดับแรก
- กรอก URL : http://www.Google.coth
- กรอกข้อความลงไปใน Search textbox ว่า “solid programming”
- กดปุ่มค้นหา

ทั้งหมดสามสเตปนี้เราต้องเข้าโปรแกรมเป็นภาษาที่ Selenium เข้าใจแล้วสุดท้ายมันจะไปคุยกับ browser ให้เองว่าต้องทำอย่างไร ซึ่งมันก็สามารถคุยได้กับทั้ง firefox, Google Chrome, Internet Explorer  และอีกมากมาย (PhantomJS ยังได้เลย) ทำให้เราเขียน test case ครั้งเดียวแต่เทสได้ทั้ง 3 browser ไงหล่ะเริ่มเห็นความสบายอยู่ข้างหน้าละยัง


โดยเราจะสนใจการเขียนโปรแกรมโดยใช้ Selenium WebDriver เป็นหลัก ถ้าท่านต้องการเขียนแบบที่เป็น Plugin FireFox ต้องอ่านบทความนี้ ส่วนสกิลที่จำเป็นสำหรับเขียน Unit Test ในครั้งนี้

1. C# programming เราจะเขียนด้วย C#  กันเพราะต้องสร้าง Unit test project
2. Nunit framework เป็น Framework สำหรับสร้าง TestCase
3. Selenium WebDriver syntax รูปแบบการเขียน การสร้าง web driver
4. HTML Xpart เข้าใจว่า html จาก root element ไล่เรียงไปจนถึง element ที่เราสนใจมี XPART เป็นแบบไหน

ซึ่งเดียวผมจะค่อยๆอธิบายแต่ละข้อรวมไปถึงวิธีการใช้งาน ตั้งแต่ต้นจนจบ บทต่อไป เริ่มสร้าง Unit Test สำหรับ Selenium

ไม่มีความคิดเห็น:

May be like this posts