GTAC 2013: روز ارائه 1

اظهارات افتتاحیه

تونی وولم (گوگل)

افتتاحیه سخنرانی - تکامل از تضمین کیفیت تا مهندسی آزمون

آری شمش (گوگل)

شما یک برنامه ساختید. راه اندازیش کردی شما فکر کردید که آن را بیرون می آورید، مقداری حجم ایجاد می کنید، مقداری بودجه به دست می آورید، همه آن را دور می اندازید، و سپس از صفر شروع می کنید تا بتوانید "این کار را به درستی انجام دهید". اما، تقاضا برای ویژگی‌های جدید بسیار بالاست، اکنون از شما خواسته می‌شود که با سرعتی ناشناخته به سمت مقیاسی بی‌سابقه پیش بروید. بله! حالا چی؟

شما نمی توانید آن را دور بیندازید و از ابتدا شروع کنید، فقط باید آنچه را که دارید تکامل دهید، در حالی که به افزودن ویژگی های با کیفیت بالا با سرعتی خیره کننده ادامه دهید. علاوه بر این، باید اطمینان حاصل کنید که آنچه از قبل وجود دارد شکسته نشود. چگونه این کار را انجام می دهید؟ خوشبختانه، حوزه جدیدی در صنعت مهندسی نرم‌افزار در حال شکل‌گیری است که به این سناریوی رایج می‌پردازد: در گوگل، ما آن را «مهندسی آزمایش» می‌نامیم.

این گفتگو بر روی چیستی مهندسی آزمون، چگونگی تکامل آن از تضمین کیفیت، و نحوه اجرای مهندسی آزمون توسط صنعت به عنوان یک کل (با مثال‌های خاص از نحوه پیاده‌سازی آن در گوگل) تمرکز خواهد کرد.

تست سیستم‌ها در مقیاس @Twitter

جیمز والدراپ (توئیتر)

جیمز در مورد ابزارها، فرآیندها و فلسفه‌ای که به تست عملکرد در توییتر می‌پردازد، بحث خواهد کرد. تاکید ویژه‌ای بر کتابخانه آزمایش بار منبع باز Iago خواهد بود، که او نوشت تا تیم‌های مهندسی توییتر بتوانند آزمایش‌های بارگذاری را قبل از استقرار کد برای تولید انجام دهند. این گفتگو به جزئیات پیاده‌سازی برخی از این تست‌ها (از جمله کد منبع) و چگونگی مدیریت عوامل پیچیده مانند OAuth و پروتکل‌های Thrift دلخواه می‌پردازد.

چگونه یک سیستم عامل موبایل را تست می کنید؟

دیوید برنز (موزیلا) و مالینی داس (موزیلا)

این مشکلی است که وقتی تصمیم گرفتیم وارد دنیای FirefoxOS شویم، با موزیلا مواجه شد. از کجا شروع کنیم و چگونه آن را انجام دهیم، قرار بود کار جالبی را ثابت کند. بیایید گوش کنید که چگونه این مشکل را حل کردیم و چگونه یک چارچوب جدید ایجاد کردیم.

اتوماسیون سیار در خط لوله تحویل مداوم

ایگور دوروسکیخ (اکسپدیا) و کاوستوب گاوانده (اکسپدیا)

Expedia در اوایل سال 2012 سرمایه گذاری روی موبایل وب و برنامه های iOS/Android را آغاز کرد. در همان زمان، مهندسان تست شروع به توسعه راه حل های اتوماسیون آزمایشی برای ایجاد کیفیت و آزمایش پذیری در محصولات از همان ابتدا کردند. در این گفتگو، ما تجربه و یادگیری خود را در مورد استفاده از ابزارهای منبع باز برای ساخت تست خودکار در توسعه Agile و محیط تحویل مداوم Expedia به اشتراک خواهیم گذاشت. ما در مورد Test Pyramid صحبت خواهیم کرد و به جزئیات بیشتری از ابزارهای منبع باز خاصی خواهیم پرداخت که برای ما خوب کار کرده اند. برخی از ابزارهای منبع باز که ما استفاده می کنیم ابزارهای BDD مانند Cucumber، ابزار اتوماسیون وب Selenium-WebDriver، ابزار اتوماسیون iOS Frank، ابزارهای اتوماسیون اندروید Robotium و Calabash و سیستم ادغام مداوم جنکینز هستند. علاوه بر این، ما برخی از اصول تحویل چابک را که در تلاش هستیم مانند TDD، برنامه‌نویسی جفتی، ساخت و آزمایش رادیاتورها اتخاذ کنیم، به اشتراک خواهیم گذاشت. در نهایت، ما برخی از مزایایی را که از سرمایه گذاری خود در Agile و اتوماسیون آزمایشی به دست آورده ایم و اینکه چگونه ما را به اهداف تحویل مداوم خود می رساند به اشتراک می گذاریم.

تست خودکار ست تاپ باکس با GStreamer و OpenCV

دیوید روتلیسبرگر (YouView)

ما با استفاده از ابزارهای خط فرمان GStreamer و OpenCV، یک سیستم تشخیص تصویر ضبط ویدیو را در 3 دقیقه می‌سازیم. (GStreamer یک چارچوب مدیریت رسانه منبع باز است؛ OpenCV - "Open Computer Vision" - یک کتابخانه پردازش تصویر منبع باز است.)

یک نمونه برجسته از چنین سیستمی http://stb-tester.com است، یک ابزار منبع باز که در YouView برای خودکارسازی تست UI جعبه های تنظیم ما ایجاد شده است. ما stb-tester، انعطاف پذیری ارائه شده توسط زیربنای GStreamer آن، برخی از امکاناتی که باز می کند و چالش های پیش رو را شرح خواهیم داد.

Webdriver برای کروم

کن کانیا (گوگل)

کروم از زمان شروع خود به عنوان یک مرورگر فقط ویندوز، به مک، لینوکس، ChromeOS و اخیراً اندروید و iOS گسترش یافته است. تست سطح کاربر برنامه های کاربردی وب در سراسر این پلتفرم ها دشوار بوده و نیاز به رویکردهای مختلف اتوماسیون دارد. این گفتار کاری را که تیم Chrome انجام می دهد برای در دسترس قرار دادن WebDriver برای Chrome در همه پلتفرم ها شرح می دهد. این شامل نگاهی فنی به رویکرد اساسی خواهد بود، اما بر این تمرکز خواهد داشت که چگونه توسعه دهندگان می توانند از ChromeDriver جدید برای نوشتن تست برای پلتفرم های مختلف کروم استفاده کنند. همچنین وضعیت فعلی پروژه و نقشه راه آینده آن پوشش داده خواهد شد.

Karma - تست اجرا برای جاوا اسکریپت

Vojta Jina (گوگل)

مقدمه ای بر کارما - اجرای آزمایشی که آزمایش برنامه های جاوا اسکریپت را در مرورگرهای واقعی بدون اصطکاک و لذت بخش می کند.

وقتی کسی در حال ساخت یک برنامه جاوا اسکریپت است که باید در بسیاری از مرورگرها و دستگاه ها کار کند، آزمایش اختیاری نیست. با این حال اجرای آزمایش ها در همه این محیط های مختلف سخت است. کارما این کار معمولاً پر دردسر را به یک تکه کیک تبدیل می کند. این به شما امکان می دهد آزمایش های جاوا اسکریپت را در مرورگرها یا دستگاه های واقعی مانند تلفن یا رایانه لوحی خود مستقیماً از ترمینال یا IDE مورد علاقه خود انجام دهید.

اندازه گیری خودکار کیفیت ویدیو

پاتریک هوگلند (گوگل)

بله، امکان تست خودکار اندازه گیری های پیچیده و ذهنی مانند کیفیت ویدیو وجود دارد! این گفتگو نشان خواهد داد که چگونه ما یک آزمایش مداوم و خودکار از یک تماس ویدیویی WebRTC را ایجاد کردیم. ما نگاهی به زنجیره ابزار در سطح بالایی خواهیم داشت و در حین ساخت آن با چه چالش هایی مواجه شدیم. اگر می خواهید الهام بگیرید چگونه آزمایش رسانه خود را به سطح بعدی ببرید، این عالی است.

وقتی اتفاقات بد برای برنامه های خوب می افتد...

مینال میشا (نتفلیکس)

رونق محاسبات موبایل و تبلت، صنعت نرم افزار را با پلتفرم های توسعه اپلیکیشن غرق کرده است. توسعه برنامه های کاربردی مصرف کننده در پلت فرم های محاسباتی تجربه جادویی خود را برای کاربران نهایی دارد. شرکت‌های نرم‌افزاری که با مصرف‌کننده مواجه می‌شوند، همیشه سعی می‌کنند وقتی برنامه‌ای را برای این پلتفرم‌ها توسعه می‌دهند، بهترین تلاش خود را به کار گیرند. با این حال، بزرگترین چالش در توسعه برنامه تنها زمانی شروع می شود که شرکت ها اولین نسخه برنامه را عرضه کنند. مصرف‌کنندگان و شرکت‌های نرم‌افزاری می‌خواهند که جدیدترین ویژگی‌ها و قابلیت‌ها در اسرع وقت با بالاترین کیفیت توسعه پیدا نکنند. این منجر به ریزش کد ثابت در هر لایه از پشته می شود. ما، مهندسان اتوماسیون UI، انواع مختلفی از سیستم‌های تشخیص را می‌سازیم تا مشکلات برنامه را زودتر تشخیص دهیم. در این گفتگو، برخی از چالش‌ها و موفقیت‌های خود را در پشت یکی از این سیستم‌های تشخیص به اشتراک می‌گذارم، که به یافتن مشکلات در خارج از لایه برنامه کمک کرد، اما همچنان بر تجربه کاربر تأثیر منفی گذاشت.

تست بازی آموزشی و بازی آموزشی برای تست

تائو زی (دانشگاه ایالتی کارولینای شمالی)

این گفتگو Pex4Fun ( http://www.pexforfun.com/ ) را ارائه می‌کند که از تولید تست خودکار برای پایه‌گذاری درجه‌بندی خودکار در یک سیستم برنامه‌نویسی آنلاین استفاده می‌کند که می‌تواند به صدها هزار کاربر برسد. این یک تجربه بازی برنامه نویسی را در خارج از کلاس ارائه می دهد و به کاربران آموزش می دهد تا مهارت های مختلف برنامه نویسی و مهندسی نرم افزار، از جمله مهارت های آزمایشی مانند نوشتن تست های واحد پارامتری را یاد بگیرند. Pex4Fun کمک قابل توجهی به مشکل شناخته شده درجه بندی تکالیف و همچنین ارائه یک تجربه یادگیری سرگرم کننده بر اساس بازی های تعاملی می کند. Pex4Fun محبوبیت بالایی در جامعه به دست آورده است: از زمانی که در ژوئن 2010 برای عموم منتشر شد، تعداد کلیک های "Ask Pex!" دکمه (که نشان دهنده تلاش کاربران برای حل بازی در Pex4Fun است) تا اوایل سال 2013 به بیش از یک میلیون رسیده است.

پایان کلید - چگونه فیس بوک فیس بوک را در اندروید آزمایش می کند

سایمون استوارت (فیسبوک)

فیس بوک یکی از محبوب ترین اپلیکیشن های اندرویدی است. در این گفتگو، متوجه خواهید شد که فیس بوک چه کاری انجام می دهد تا اطمینان حاصل کند که هر نسخه تا آنجا که می تواند خوب باشد. ما همه چیز را از نحوه مدیریت کدمان، از طریق رویکردهایمان به آزمایش و همه راه‌ها تا آزمایش‌های آزمایشی پوشش خواهیم داد.