GTAC 2013: งานนําเสนอวันที่ 1

การเปิดหมายเหตุ

Tony Voellm (Google)

คําปราศรัยสําคัญเพื่อเปิดงาน - วิวัฒนาการตั้งแต่การรับประกันคุณภาพไปจนถึงวิศวกรรมทดสอบ

Ari Shamash (Google)

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

คุณโยนโฆษณาทิ้งแล้วเริ่มใหม่ตั้งแต่ต้นได้ง่ายๆ แค่พัฒนาฟีเจอร์อย่างต่อเนื่อง และในขณะเดียวกันก็เพิ่มฟีเจอร์คุณภาพสูงต่างๆ ได้อย่างรวดเร็วด้วย นอกจากนี้ คุณต้องตรวจสอบอีกด้วยว่าไม่มีสิ่งใดอยู่แล้ว คุณต้องทําอย่างไร อย่างไรก็ดี ช่องใหม่กําลังเกิดขึ้นในอุตสาหกรรมวิศวกรรมซอฟต์แวร์ซึ่งจัดการสถานการณ์ที่พบได้ทั่วไปนี้ ที่ Google เราเรียกสิ่งนี้ว่า "วิศวกรรมการทดสอบ"

การพูดคุยนี้จะเน้นว่าวิศวกรรมทดสอบคืออะไร การพัฒนามาจากการประกันคุณภาพ และวิธีที่ทั้งอุตสาหกรรมได้นําวิศวกรรมการทดสอบไปใช้ (โดยมีตัวอย่างที่เจาะจงเกี่ยวกับวิธีใช้งาน Google)

ระบบทดสอบในวงกว้าง @Twitter

James Waldrop (Twitter)

เจตน์จะพูดถึงเครื่องมือ กระบวนการ และปรัชญาที่มีผลต่อการทดสอบประสิทธิภาพที่ Twitter การเน้นเป็นพิเศษจะได้รับการใส่ไว้ในไลบรารีการทดสอบโหลดแบบโอเพนซอร์สของ Iago ซึ่งเขาเขียนขึ้นเพื่อให้ทีมวิศวกรของ Twitter ทําการทดสอบการโหลดก่อนติดตั้งใช้งานโค้ดเป็นเวอร์ชันที่ใช้งานจริง การพูดคุยจะเจาะลึกรายละเอียดการใช้งานของการทดสอบเหล่านี้บางส่วน (รวมถึงซอร์สโค้ด) และวิธีจัดการปัจจัยที่ซับซ้อนอย่าง OAuth และโปรโตคอล Thrift ที่กําหนดเอง

คุณจะทดสอบระบบปฏิบัติการบนอุปกรณ์เคลื่อนที่อย่างไร

David Burns (Mozilla) และ Malini Das (Mozilla)

ปัญหานี้เป็นปัญหาที่ต้องเผชิญกับ Mozilla เมื่อเราตัดสินใจเข้าสู่โลกของ Firefox OS จุดที่ควรเริ่มต้นและวิธีดําเนินการคือการยืนยันงานที่น่าสนใจ มาฟังวิธีแก้ไขปัญหานี้และวิธีที่เราสร้างเฟรมเวิร์กใหม่กัน

ระบบอัตโนมัติในอุปกรณ์เคลื่อนที่ในไปป์ไลน์การนําส่งอย่างต่อเนื่อง

Igor Dorovskikh (Expedia) และ Kaustubh Gawande (Expedia)

Expedia เริ่มลงทุนในแอปบนอุปกรณ์เคลื่อนที่และแอป iOS/Android ในช่วงต้นปี 2012 ในขณะเดียวกัน วิศวกรทดสอบก็ได้เริ่มพัฒนาโซลูชันการทดสอบอัตโนมัติเพื่อสร้างคุณภาพและความสามารถในการทดสอบในผลิตภัณฑ์ตั้งแต่เริ่มต้น ในการพูดคุยครั้งนี้ เราจะแชร์ประสบการณ์และการเรียนรู้การใช้เครื่องมือโอเพนซอร์สเพื่อสร้างการทดสอบอัตโนมัติในสภาพแวดล้อมการพัฒนาแบบคล่องตัวและการแสดงโฆษณาอย่างต่อเนื่องของ Expedia เราจะพูดถึงการทดสอบพีระมิดและเจาะลึกรายละเอียดเพิ่มเติมเกี่ยวกับเครื่องมือโอเพนซอร์สบางอย่างที่ใช้ได้ผลดีสําหรับเรา เครื่องมือโอเพนซอร์สบางอย่างที่เราใช้คือเครื่องมือ BDD เช่น Cucumber, เครื่องมือเว็บอัตโนมัติ Selenium-WebDriver, เครื่องมือการทํางานอัตโนมัติของ iOS Frank, เครื่องมือระบบอัตโนมัติของ Android Robotium และ Calabash และ Jetins ซึ่งเป็นระบบการผสานรวมแบบต่อเนื่อง นอกจากนี้ เราจะแชร์หลักการในการส่งข้อมูลแบบ Agile ที่เราพยายามนําไปใช้ เช่น TDD, matched Programming, Build และ หม้อน้ํา สุดท้ายนี้ เราจะแชร์สิทธิประโยชน์บางส่วนที่ได้จากการลงทุนใน Agile และทดสอบระบบอัตโนมัติ รวมถึงบอกวิธีที่จะทําให้เราได้ตามเป้าหมายการแสดงโฆษณาอย่างต่อเนื่อง

การทดสอบ Set-top box อัตโนมัติด้วย GStreamer และ OpenCV

David Röthlisberger (YouView)

เราจะสร้างระบบการจดจํารูปภาพแบบจับภาพได้ใน 3 นาทีโดยใช้เครื่องมือแบบบรรทัดคําสั่งของ GStreamer และ OpenCV (GStreamer เป็นเฟรมเวิร์กการจัดการสื่อแบบโอเพนซอร์ส OpenCV - "Open Computer Vision" เป็นไลบรารีการประมวลผลรูปภาพแบบโอเพนซอร์ส)

ตัวอย่างชั้นนําของระบบดังกล่าวคือ http://stb-tester.com ซึ่งเป็นเครื่องมือโอเพนซอร์สที่พัฒนาโดย YouView เพื่อทําให้การทดสอบ UI ของ Set-top box เป็นแบบอัตโนมัติ เราจะอธิบายเกี่ยวกับ STB-Tester, ความยืดหยุ่นที่ GStreamer ให้การสนับสนุน, ความเป็นไปได้บางส่วนที่การทดสอบเกิดขึ้น และความท้าทายที่กําลังจะมาถึง

Webdriver สําหรับ Chrome

เคนยา (Google)

Chrome ได้ขยายเป็น Mac, Linux, ChromeOS และ Android และ iOS นับตั้งแต่เริ่มต้นในฐานะเบราว์เซอร์เท่านั้นสําหรับ Windows การทดสอบระดับเว็บแอปพลิเคชันของผู้ใช้ในแพลตฟอร์มเหล่านี้ทําได้ยากและต้องอาศัยแนวทางการทํางานอัตโนมัติหลายอย่าง การบรรยายนี้จะอธิบายวิธีที่ทีม Chrome กําลังทําเพื่อให้ WebDriver พร้อมใช้งานใน Chrome ในทุกแพลตฟอร์ม การตรวจสอบนี้จะพูดถึงด้านเทคนิคเกี่ยวกับแนวทางพื้นฐาน แต่จะเน้นวิธีที่นักพัฒนาซอฟต์แวร์ใช้ ChromeDriver ใหม่เพื่อเขียนการทดสอบสําหรับแพลตฟอร์มต่างๆ ของ Chrome นอกจากนี้ สถานะปัจจุบันของโครงการและแผนกลยุทธ์สําหรับโครงการในอนาคตจะครอบคลุมถึงในส่วนนี้

Karma - ตัวดําเนินการทดสอบสําหรับ JavaScript

Vojta Jina (Google)

ข้อมูลเบื้องต้นเกี่ยวกับ Karma - ตัวทดสอบทดสอบที่ทําให้การทดสอบแอปพลิเคชัน JavaScript ในเบราว์เซอร์จริงเป็นไปอย่างราบรื่นและสนุกสนาน

การทดสอบเป็นตัวเลือกที่ไม่บังคับเมื่อสร้างแอปพลิเคชัน JavaScript ที่ต้องทํางานในเบราว์เซอร์และอุปกรณ์จํานวนมาก อย่างไรก็ตาม การดําเนินการทดสอบในสภาพแวดล้อมต่างๆ เหล่านี้เป็นเรื่องยาก Karma เปลี่ยนงานนี้ที่แสนยากจนให้เป็นเค้ก เครื่องมือนี้ให้คุณทดสอบ JavaScript ในเบราว์เซอร์หรืออุปกรณ์จริงได้ เช่น โทรศัพท์หรือแท็บเล็ตโดยตรงจากเทอร์มินัลหรือ IDE ที่ชอบ

การวัดคุณภาพวิดีโออัตโนมัติ

Patrik Höglund (Google)

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

เมื่อเกิดเรื่องแย่ๆ ในแอปพลิเคชันที่ดี...

Minal Mishra (Netflix)

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

การทดสอบสําหรับเกมการศึกษาและเกมเพื่อการศึกษาสําหรับการทดสอบ

เต๋า

การพูดคุยครั้งนี้นําเสนอ Pex4Fun (http://www.pexforfun.com/) ซึ่งใช้ประโยชน์จากการสร้างการทดสอบอัตโนมัติเพื่อสนับสนุนการให้คะแนนอัตโนมัติในระบบการเขียนโปรแกรมออนไลน์ที่สามารถรองรับผู้ใช้หลายแสนคน เครื่องมือนี้มอบประสบการณ์การเล่นเกมที่เน้นการจัดโปรแกรมนอกห้องเรียน ฝึกอบรมผู้ใช้ให้เรียนรู้ทักษะต่างๆ ในการเขียนโปรแกรมและวิศวกรรมซอฟต์แวร์ ซึ่งรวมถึงทักษะการทดสอบต่างๆ เช่น การเขียนการทดสอบ 1 หน่วยผ่านพารามิเตอร์ Pex4Fun มีส่วนอย่างมากต่อปัญหาที่ทราบเกี่ยวกับการให้คะแนนงาน และมอบประสบการณ์การเรียนรู้ที่สนุกสนานโดยอิงตามเกมแบบอินเทอร์แอกทีฟ Pex4Fun ได้รับความนิยมสูงในชุมชน ตั้งแต่เปิดตัวสู่สาธารณะในเดือนมิถุนายน 2010 การคลิกปุ่ม "ถาม Pex!" มีจํานวนเพิ่มขึ้น (แสดงความพยายามในการแก้เกมของ Pex4Fun) กว่า 1 ล้านครั้งในช่วงต้นปี 2013

สรุปประเด็นสําคัญ - วิธีที่ Facebook ทดสอบ Facebook ใน Android

Simon Stewart (Facebook)

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