39-Podcasting your Business
ธุรกิจ

มีประโยชน์ในการใช้การทดสอบระบบอัตโนมัติสำหรับ startups หรือไม่

ในยุคปัจจุบันไม่ใช่เรื่องแปลกสำหรับคนสองคนหรือคนกลุ่มเล็ก ๆ ที่จะมารวมตัวกันในนามของความคิด บ่อยครั้งที่กลุ่มดังกล่าวมีแรงจูงใจความคิดและประสบการณ์ในการเริ่มทำงานในโครงการ แต่บ่อยครั้งที่พวกเขาไม่มีเงินทุนเพียงพอหรือไม่มีเลย กลุ่มเหล่านี้มักจะเรียกว่า startups ในความเป็นจริงพวกเขาเป็นคนที่หวังว่าผลิตภัณฑ์ของพวกเขาจะ “ยิง” และพัฒนาผลิตภัณฑ์ซึ่งมักเป็นเพียงความคิด 

แต่เมื่อพวกเขาพัฒนา รับจดทะเบียนบริษัท มีปัญหากับการทดสอบผลิตภัณฑ์ ตราบใดที่มันมีขนาดเล็กและการทดสอบด้วยตนเองไม่ต้องใช้เวลามาก – ทุกอย่างดี แต่จะทำอย่างไรถ้าโครงการมีขนาดค่อนข้างใหญ่และผู้ทดสอบด้วยตนเองไม่สามารถทำตามกระบวนการพัฒนาได้? การทดสอบอัตโนมัติสามารถแก้ปัญหานี้ได้ แต่มันคืออะไรและมันจัดได้อย่างไร?

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

คุณสามารถทำให้กรณีทดสอบโดยอัตโนมัติตามเงื่อนไขด้านล่าง:

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

ในกรณีส่วนใหญ่การใช้ระบบอัตโนมัติจะเป็นประโยชน์สำหรับเงื่อนไขข้างต้นเท่านั้นมิฉะนั้นคุณควรทำการทดสอบด้วยตนเองต่อไป

นี่คือการทดสอบอัตโนมัติบางประเภท:

  1. การทดสอบหน่วย

ในการทดสอบหน่วยแต่ละส่วนประกอบ / หน่วยของเว็บแอ็พพลิเคชันจะถูกทดสอบ โดยทั่วไปการทดสอบหน่วยนั้นเขียนโดยนักพัฒนา แต่ผู้ทดสอบอัตโนมัติก็สามารถเขียนได้ การทดสอบหน่วยของเว็บแอพจะดำเนินการในช่วงการพัฒนา นอกจากนี้ยังถือว่าเป็นระดับแรกของการทดสอบแอปเว็บ

  1. การทดสอบควัน

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

  1. การทดสอบการทำงาน

การทดสอบการทำงานนั้นทำเพื่อวิเคราะห์ว่าฟังก์ชั่นทั้งหมดของแอพพลิเคชั่นเว็บของคุณทำงานได้ตามที่คาดหวัง ส่วนที่ครอบคลุมในการทดสอบการทำงานเกี่ยวข้องกับส่วนต่อประสานผู้ใช้ API ฐานข้อมูลความปลอดภัยแอปพลิเคชันไคลเอนต์ / เซิร์ฟเวอร์และฟังก์ชั่นโดยรวมของเว็บไซต์ของคุณ

  1. การทดสอบบูรณาการ

ในการทดสอบการรวมโมดูลแอ็พพลิเคชันจะถูกรวมแบบโลจิคัลแล้วทดสอบเป็นกลุ่ม มันมุ่งเน้นไปที่การตรวจสอบการสื่อสารข้อมูลระหว่างโมดูลต่าง ๆ ของเว็บแอปของคุณ

  1. การทดสอบการถดถอย

ทำการทดสอบการถดถอยเพื่อตรวจสอบว่าการเปลี่ยนแปลงล่าสุดของรหัสไม่ส่งผลกระทบต่อคุณลักษณะที่มีอยู่ของแอปพลิเคชันเว็บของคุณ กล่าวง่ายๆว่ามันเป็นการตรวจสอบว่ารหัสเดิมทำงานในลักษณะเดียวกับก่อนที่จะทำการเปลี่ยนแปลงใหม่

นอกเหนือจากประเภทการทดสอบข้างต้นแล้วยังมีการทดสอบอัตโนมัติอื่น ๆ ที่ต้องดำเนินการเช่นการทดสอบด้วยข้อมูลการทดสอบกล่องดำการทดสอบคำหลัก ฯลฯ

สำหรับการทดสอบอัตโนมัติคุณต้องใช้เฟรมเวิร์กที่เหมาะสม มีกรอบมากมายหลากหลาย

เฟรมเวิร์กที่นิยมมากที่สุดสำหรับการทดสอบระบบอัตโนมัติ

  1. ซีลีเนียม

ซีลีเนียมเป็นเครื่องมืออัตโนมัติเว็บโอเพ่นซอร์สปัจจุบันเป็นที่ต้องการและเป็นเครื่องมือที่ใช้กันอย่างแพร่หลายในตลาด มันสามารถทำงานอัตโนมัติในหลาย ๆ ระบบปฏิบัติการเช่น Windows, Mac และ Linux และเบราว์เซอร์เช่น Firefox, Chrome, IE เช่นเดียวกับเบราว์เซอร์หัวขาด

สคริปต์ทดสอบซีลีเนียมสามารถเขียนเป็นภาษาโปรแกรมเช่น Java, C #, Python, Ruby, PHP, Perl และ JavaScript ซีลีเนียมนำเสนอคุณสมบัติการบันทึกและการเล่นด้วยซีลีเนียม IDE เบราว์เซอร์ Selenium WebDriver ที่ทรงพลังช่วยให้คุณสร้างสคริปต์อัตโนมัติที่ซับซ้อนและทันสมัยยิ่งขึ้น

  1. Watir

Watir เป็นการทดสอบอัตโนมัติบนเว็บโอเพนซอร์ซด้วยเช่นกัน มันออกเสียงว่า “น้ำ”

Watir รองรับ IE บน windows Watir + WebDriver รองรับ Firefox, Opera และหน่วย HTML ของเบราว์เซอร์ที่ไม่มีหัว

ภาษาสคริปต์คือ Ruby แต่คุณสามารถทำให้เว็บแอพพลิเคชั่นพัฒนาขึ้นในภาษาใดก็ได้โดยอัตโนมัติ

ด้วยการใช้ Ruby Watir จะช่วยให้คุณสามารถเชื่อมต่อกับฐานข้อมูลอ่านไฟล์ flat, excel – สำคัญสำหรับการทดสอบที่ขับเคลื่อนด้วยข้อมูล คุณสามารถนำรหัสทดสอบที่นำมาใช้ซ้ำมาใช้ซึ่งสามารถทำซ้ำได้ตลอดสคริปต์ทดสอบ

ผสานรวมกับเครื่องมือ BDD เช่น RSpec, แตงกวาเป็นต้น

  1. capybara

Capybara เป็นซอฟต์แวร์ทดสอบระบบอัตโนมัติบนเว็บที่จำลองสถานการณ์ของเรื่องราวของผู้ใช้และทำการทดสอบเว็บแอปพลิเคชันโดยอัตโนมัติสำหรับการพัฒนาซอฟต์แวร์ที่เน้นพฤติกรรม มันเขียนในภาษาการเขียนโปรแกรม Ruby

Capybara สามารถเลียนแบบการกระทำของผู้ใช้จริงที่มีปฏิสัมพันธ์กับแอปพลิเคชันบนเว็บ มันสามารถรับหน้าแยกวิเคราะห์ HTML และส่งแบบฟอร์ม

Capybara มีประโยชน์มากเมื่อทดสอบส่วนต่อประสานกับผู้ใช้บนเว็บและความคาดหวังจะขึ้นอยู่กับโครงสร้าง HTML มันมีคุณสมบัติตาม Github readme ของพวกเขาคือ:

  1. ไม่จำเป็นต้องตั้งค่าสำหรับแอปพลิเคชัน Rails และ Rack ทำงานนอกกรอบ
  2. API ที่ใช้งานง่ายซึ่งเลียนแบบภาษาที่ผู้ใช้จริงจะใช้
  3. สลับแบ็กเอนด์ที่การทดสอบของคุณรันจากโหมดหัวขาดอย่างรวดเร็วเป็นเบราว์เซอร์จริงโดยไม่มีการเปลี่ยนแปลงการทดสอบของคุณ
  4. คุณสมบัติการซิงโครไนซ์ที่มีประสิทธิภาพหมายความว่าคุณไม่ต้องรอกระบวนการแบบอะซิงโครนัสด้วยตนเองให้เสร็จ

 

  1. แตงกวา

แตงกวาเป็นเครื่องมือพัฒนาพฤติกรรมการขับเคลื่อนโอเพนซอร์ส (BDD) แตงกวารองรับภาษาเช่น Ruby, Java, Scala, Groovy เป็นต้น

การร่างสคริปต์ทดสอบเป็นความพยายามร่วมกันของผู้ทดสอบผู้พัฒนาและลูกค้า แตงกวารองรับเฉพาะสภาพแวดล้อมบนเว็บ รหัสทดสอบเขียนด้วยภาษาอังกฤษอย่างง่าย ๆ ที่เรียกว่า Gherkin รหัสแตงกวาสามารถดำเนินการในกรอบต่าง ๆ เช่นซีลีเนียม, ทับทิม, ฯลฯ

จุดสนใจของแตงกวาคือประสบการณ์ของผู้ใช้

  1. Webdriver IO

WebdriverIO เป็นโปรแกรมทดสอบโอเพ่นซอร์สสำหรับ nodejs ทำให้สามารถเขียนการทดสอบซีลีเนียมง่ายสุดด้วย Javascript ในกรอบการทดสอบ BDD หรือ TDD ที่คุณชื่นชอบ โดยทั่วไปจะส่งคำขอไปยังเซิร์ฟเวอร์ Selenium ผ่าน WebDriver Protocol และจัดการการตอบสนอง

ดังนั้นเมื่อเราเรียนรู้เกี่ยวกับการทดสอบอัตโนมัติเล็กน้อยเราควรถามคำถาม: การเริ่มต้นการทดสอบอัตโนมัติ  จำเป็นหรือไม่

การเริ่มต้นการทดสอบอัตโนมัติต้องการหรือไม่

โดยปกติแล้ว startups จะไม่มีเงินมากนักสำหรับการพัฒนาผลิตภัณฑ์ และค่าใช้จ่ายเพิ่มเติมไม่เป็นที่ยอมรับ และอาจกลายเป็นว่าการทดสอบด้วยตนเองจะใช้เวลานานและทำให้กระบวนการช้าลงซึ่งจะทำให้โครงการห่างไกลจากความสามารถในการทำกำไรมากยิ่งขึ้น

ในกรณีนี้คุณสามารถทำให้ส่วนของกรณีทดสอบเป็นอัตโนมัติ (ตัวอย่างเช่นการทดสอบควันหรือการทดสอบการถดถอย) สิ่งนี้จะช่วยเพิ่มความเร็วในกระบวนการทดสอบและลดภาระของผู้ทดสอบด้วยตนเองทำให้พวกเขาสามารถทดสอบคุณสมบัติใหม่ได้อย่างทั่วถึงยิ่งขึ้น

การทดสอบอัตโนมัติช่วยให้คุณได้รับผลการทดสอบเร็วขึ้นและสามารถกำหนดค่าเพื่อให้พวกเขาจะทำงานในเวลาที่ไม่มีใครถูกรบกวนโดยสิ่งนี้ การทดสอบอัตโนมัติสามารถใช้ในการทดสอบผลิตภัณฑ์ในแพลตฟอร์มต่าง ๆ (เช่นเบราว์เซอร์ที่แตกต่างกัน)

ข้อดีอีกอย่างของการทดสอบอัตโนมัติคือคุณไม่จำเป็นต้องมีทีมงานขนาดใหญ่ สิ่งที่คุณต้องการคือวิศวกรทดสอบอัตโนมัติหนึ่งคนและซอฟต์แวร์ที่เกี่ยวข้อง

แต่มีข้อเสียในการทดสอบดังกล่าว

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

แอปขัดข้องในบางสถานการณ์จะต้องทดสอบด้วยตนเอง ดังที่เราทราบเครื่องจักรมีความก้าวหน้ามาก แต่ไม่ฉลาด (ยัง!)

อีกสิ่งหนึ่งที่การทดสอบอัตโนมัติจะไม่ทำก็คือทดสอบการใช้งานที่มีประสิทธิภาพของการออกแบบเช่นตำแหน่งของปุ่มและความง่ายในการใช้งานแอพ ที่ยังคงต้องทำโดยการทดสอบที่ใช้งานง่ายด้วยตนเอง

บรรทัดล่าง

มีการทดสอบหลายประเภทเพื่อช่วยให้องค์กรประเมินและปรับปรุงคุณภาพของผลิตภัณฑ์ การทดสอบหน่วยและฟังก์ชั่นเป็นการทดสอบพื้นฐานที่ทุกผลิตภัณฑ์ควรมี การทดสอบการถดถอยเป็นประเภทการทดสอบที่สำคัญที่สุดในการรักษาระดับคุณภาพสำหรับผลิตภัณฑ์ของคุณ

การทดสอบอัตโนมัติ  จะไม่เพียงลดเวลาการทดสอบ แต่ยังปรับปรุงชีวิตของทีมพัฒนา เนื่องจากพวกเขาจะได้รับข้อมูลเกี่ยวกับข้อบกพร่องและความไม่แน่นอนในการสมัครได้เร็วขึ้น

โดยทั่วไป – หากการเริ่มต้นสามารถจ้างวิศวกรทดสอบอัตโนมัติบทความจิตวิทยาได้ก็ควรทำ สิ่งนี้จะช่วยประหยัดเงินและเวลาในการพัฒนาและทดสอบผลิตภัณฑ์ในอนาคต แต่อย่าลืมว่าคุณไม่ควรลองครอบคลุมทั้งแอปพลิเคชั่นด้วยการทดสอบอัตโนมัติ – และคุณควรเลือกเฉพาะแต่ละส่วน แต่เมื่อมันจะเป็นไปได้ – เพื่อเพิ่มความครอบคลุม

Leave a Reply

Your email address will not be published. Required fields are marked *