ใช้ Automation Testing Tools จะต้องเตรียมอะไรก่อนบ้าง?

KakyKad
3 min readApr 5, 2021

--

เราอาจจะได้ยินเรื่องของ Automation testing กันอยู่บ่อยๆ และหลายๆที่เริ่มเอา Automation เข้ามาร่วมทำในโครงการกันบ้างแล้ว

ซึ่งในวันนี้จะมาพูดถึงเรื่องการทำ Automation testing กัน ว่าก่อนที่จะเริ่มทำเนี้ย จะต้องเข้าใจและเตรียมอะไรก่อนบ้าง เพราะหลายๆที่ที่กาดเจอนั้นมักจะเข้าใจว่า “Automation test = Tool” แต่ในความเป็นจริง “Automation test != (ไม่เท่ากับ) Tool” Tool เป็นเครื่องมือที่เข้ามาเปลี่ยนจากการใช้มือรันเองเป็นการใช้ script ทำงานแทน

จะเริ่มทำ Automation test จะต้องเข้าใจอะไรบ้าง?

  1. เข้าใจเรื่อง Business requirement
  2. เข้าใจเรื่อง Automation testing lift cycle

เข้าใจเรื่อง Business requirement

— Business Flow => Flow การทำงานที่ User มี action กับ application ตั้งแต่เริ่มต้นจนจบ เช่น Login -> Transfer -> E-Slip สำเร็จ

— Business condition => เงื่อนไขการทำงานที่บ่งบอกว่าแบบไหนที่สามารถทำได้หรือทำไม่ได้

เข้าใจเรื่อง Automation testing life cycle

อ้างอิงจาก BugCafe ตอนที่ 3 : 12 สิ่งที่ต้องมีสู่การเป็น Automation Software Tester

Reference : https://www.youtube.com/watch?v=SxqpJeZR7g8

— Decision making in automated testing => จะต้องรู้และตัดสินใจว่าอะไรที่ควรจะเอามาทำเป็น automated หรือ manual

— Automation testing and strategy and process => จะต้องมองภาพรวมในการทดสอบ Application นั้นจะมีขอบเขตการทดสอบอะไรบ้าง เช่น End to end testing, Integration testing หรือ unit testing รวมถึงการทดสอบในเรื่องของ non-functional testing

— Test automation tools acquisition => การเลือกเครื่องมือที่จะใช้ทดสอบที่เหมาะสมกับงานๆนั้น

— Testing planning, design and develop => Planning วางเป้าว่าอะไร Test source code นั้นจะเสร็จในวันไหนบ้าง ใช้เวลาเท่าไหร่, Design จะทดสอบอะไร จะ validate, verify อย่างไรตาม business condition และ requirement, Develop ทำการเขียน test source code

— Testing execution and management => หลังจาก Develop เสร็จ จะได้ Software พร้อมกับชุดเทสมาทำการทดสอบและจะต้องมีการจัดเตรียมข้อมูลในการทดสอบ หลังจากทดสอบเสร็จจะต้องเอาข้อมูลที่ใช้ทดสอบออกไปด้วย เพื่อให้สามารถ Repeat test ได้เรื่อยๆ

— Test reflect to improve => ชุด Test source code ก็เหมือนกับ Source code นั้นแหละ เมื่อเริ่มเขียนไประยะหนึ่งจะต้องย้อนกลับมาปรับปรุง Test source code ใหม่ หรือที่เขาเรียกกันว่า “Refactor code” เพื่อให้ชุด Test source code ของเราจะยังดูไม่ซับซ้อนเกินไป

สิ่งที่จะต้องมีก่อนที่จะเอาเข้า Automation testing tool

  1. Test scenarios success และ un-success หรือจะเรียกว่า Acceptance testing

Test scenarios เกิดจากการรวม Test cases ที่เกิดจากใน Business conditions ใน Business Requirement (จะต้องหามาก่อนที่จะเริ่มเขียน)

2. Test data

Test data ที่จะใช้จะต้องสอดคล้องกับตัว Test scenarios และData จะต้องเหมือนกับที่ Production (หรือคล้ายคลึงกับ Production)

3. Specification

ไม่ว่าจะทดสอบในระดับไหนก็ควรที่จะมี Specification เหล่านี้ติดมาด้วย เช่น ถ้าทดสอบในระดับ API ก็ควรจะมี API Spec มาตั้งแต่หลังจาก Design กันเสร็จเรียบร้อยแล้ว เพื่อที่จะได้รู้ก่อนว่า เราจะต้องตรวจสอบอะไรบ้างในระดับของ API หรือถ้าทดสอบในระดับ Function ก็ควรจะมี Function Spec มาด้วยเช่นกัน เพราะจะได้รู้ว่า Function นี้ทำงานอะไร และสิ่งที่เราต้องการจากใน Function นั้นคืออะไร เพื่อที่จะเอามาตั้ง Expected result ใน Unit test ได้

Example : ทดสอบ End to end API testing

ในตัวอย่างที่กาดทำนั้น กาดจะต้องแยก Business case ที่อยู่ในไฟล์ Excel ของทางไซต์ลูกค้าที่เข้าไปทำ ซึ่งในไฟล์นั้นจะมี Test case ของ UI และ Business condition อยู่ กาดจะต้องหา Business condition ของ feature นั้นออกมา

หลังจากได้ Business condition ออกมาแล้ว กาดจะมา Analyst ตัว Business condition ว่าจะมีกี่ Test cases และมี Success หรือ Un-success เท่าไหร่

และพอได้จำนวน Test cases ออกมา สิ่งที่กาดทำต่อไป คือ การรวม Test cases ให้เป็น Test scenarios ทั้งแบบ Success และ Un-Success รวมถึง Data ที่ประกอบกับ Test scenarios นั้นด้วย

หลังจากเตรียมทุกอย่างพร้อมหมดแล้วจึงจะเอามาใส่กับตัวเครื่องมือ ซึ่งคือ Robot framework + Request Library และเมื่อเขียนเสร็จจะนำชุด Test source code นี้เก็บที่ Repository เดียวกับ Project ที่กำลังพัฒนาอยู่ เพื่อที่ทุกคนจะได้สามารถทดสอบได้ว่าสิ่งที่ทำอยู่ ถูกต้องหรือไม่

จะเห็นได้ว่าในตัวอย่างของกาดที่ทำนั้น กาดจะมีเรื่อง Automation Test Structure เป็นหลัก ซึ่งก็คือ Arrange, Act, Assert

  • Arrange => Test scenarios และ Test data
  • Act => URI หรือ URL จากใน API ที่เราจะยิงไปทดสอบ
  • Assert => ข้อมูล API Spec ที่เราตั้ง Expected เอาไว้

Arrange : Initial the xUT (x under test), data test and other dependencies

Act : Call to the xUT (x under test) being tested

Assert : Expected Results, verify the expected result with Actual results

เมื่อมีสิ่งเหล่านี้ครบแล้ว ถึงจะเอาไปใส่ใน Automation testing tool และสามารถทำการทดสอบและได้ผลลัพธ์ตามที่เราตั้งสมมติฐานเอาไว้

และอย่าลืม (สำคัญมาก) ก่อนที่จะเริ่มเขียน Test source code กับตัวเครื่องมือเนี้ย อย่างที่บอกไปว่ามันก็คือชุด Test source code ชนิดหนึ่ง ก่อนเริ่มเขียนก็จะต้องมีข้อตกลงกันด้วยว่า จะวาง folder test structure ยังไง, การตั้งชื่อ file test รวมถึงไปตัวแปรต่างๆ (Naming convention) เพื่อให้ชุด Test source code ของเราไปในทางเดียวกัน (Standard) เพื่อให้สามารถเกิดการ Maintain ต่อได้ และไม่ติดตัวคนใดคนหนึ่งไป ไม่งั้นลองนึกดูสิ ถ้าเราต้องมาเขียน Test source code ชุดนี้ต่อจากคนอื่นที่เขียนอะไรไว้ก็ไม่รู้ เราก็คงเลือกที่จะเขียนใหม่แทนที่จะ Maintain ของเดิมที่มีมากกว่า

--

--