جمعه , ۱۴ اردیبهشت ۱۴۰۳

تست با رویکرد DevOps برای سیستم‌های Embedded و اینترنت اشیاء+فیلم

DevOps Approach On Embedded System Testing
DevOps Approach On Embedded System Testing

خلاصه رزومه آقای توماس استیم: تام استیم یکی از نیروهای کهنه‌کار در صنعت IT است که به مدت ۲۰ سال در این حوزه فعالیت نموده. وی زمان خود را در ۱۰ سال گذشته با استفاده از متدهایِ توسعه نرم‌افزار Agile، صرف مدیریت، طراحی و پیاده‌سازیِ محصولات و اپلیکیشن‌های نرم‌افزاری کرده است. قبل از Coveros، تام در پوزیشن‌های CTO و معمار سیستم در شرکت‌های توسعه نرم‌افزار حضور داشته است. تام از اعضای گروه کاربران BEA ویرجینیای شمالی و عضو گروه کاربران جاوای ویرجینیای شمالیست. تام دارای مدرک کارشناسی در رشته علوم کامپیوتر از دانشگاه جورج مِیسون(George Mason) است.

مصاحبه پیش رو در تاریخ ۲۳ دسامبر ۲۰۱۶(۳ دی ماه ۱۳۹۵) با آقای توماس اِستِیم(Thomas Stiehm) صورت گرفته است، که ترجمه آن در اینجا ارائه شده است. بعلاوه فیلم آن نیز در انتهای پست ضمیمه شده است.

خلاصه مصاحبه: در این مصاحبه تام استِیم از Coveros شرح می‌دهد که شما چگونه می‌توانید برای ساخت محیط Continuous Testin، اتوماسیون تست را با DevOps یکپارچه کنید. در این محیط مبتنی بر Performance(Performance-Driven Environment)، توسعه نرم‌افزار، تست، و بهره‌برداری(Operation) باید به منظور برآوردن اهداف تحویل ریلیز و Iteration تکامل یابند.

– خبرنگار: سلام و خوش آمدید به مصاحبه‌ مجازیِ Starwest 2016. بابت حضور تام از شرکت Coveros در میان خودمان بسیار خوشحالم. تام از اینکه به ما پیوستی ازت متشکرم.

– استیم: من هم متشکرم که از من برای این مصاحبه دعوت کردید.

– خبرنگار: شما مصاحبه افتتاحیه را برای کسانی که از بیرون، Virtual Land را تماشا می‌کردند انجام دادید. شما اولین کسی هستید که من این موضوع را از وی شنیدم. ممکن هست که خلاصه‌ای از مطالب ارائه دهید. علاوه بر اینکه فکر می‌کنم اولین بار هست در این کنفرانس شرکت کردید؟

– استیم: بله. اولین بار بود که در این کنفرانس شرکت می‌کردم.

– خبرنگار: بسیار عالی. برداشت شما تا این لحظه در مورد چگونگیِ پیش رفتن کنفرانس، چیزهایی که شنیدید، بعضی از نمایندگانی که آنها را دیدید و همینطور افرادی که در آناهیم(Anaheim-شهری در ایالت کالیفرنیا) برای این همایش دور هم جمع شده‌اند چیست؟

– استیم: اینجا انرژی زیادی وجود دارد، دو سخنرانی اول بسیار عالی بود. یکی در مورد توسعه کاری(Career Development)، و دیگری یک سخنرانی فنی در مورد چگونگی تغییر QA برای در بر گرفتن چیزهایی مانند مهندسی آشفتگی(Chaos Engineering) بود. این سخنرانی‌ها واقعا خوب بود.

– خبرنگار: من می‌دانم شما فردا یک سخنرانی دارید.

– استیم: امشب.

– خبرنگار: امشب! و موضوع این سخنرانی چی هست؟

– استیم: من قصد دارم تا در مورد چگونگی گنجاندن اتوماسیون تست در پروژه‌های Embedded System و سیستم‌های اینترنت اشیاء صحبت کنم.

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

– استیم: بسیاری از پروژه‌هایی که من با آنها روبرو بوده‌ام را باید با دستگاه‌های زیرساختی و پزشکی انجام می‌دادم، مانند سیستم‌های HVAC(تهویه مطبوع) و سیستم‌های HVAC صنعتی. چیزی که ما باید به آنها می‌افزودیم نه تنها سیستم‌های Embedded بلکه قابلیت دسترسیِ آنها از طریق اینترنت را نیز شامل می‌شد. این چیزیست که آنها را به دستگاه‌های مجهز به اینترنت اشیاء تبدیل می‌کند. دستگاه­های پزشکی، سیستم‌های Embeddedای هستند که بر مبنای تمام مشکلات و نیازمندی‌هایی که در پزشکی وجود دارد، برای کمک به مردم ساخته می‌شوند.

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

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

– خبرنگار: این یک اپلیکیشن عالی در این زمینه است. همانطور که گفتیتد، برای افراد کم سن و سال، این ایده که آنها باید خودشان پوستشان را برای نمونه­گیری خراش دهند، ایده‌ای آسیب‌زاست، اما آیا ما می‌توانیم آنرا به صورت بهتر و کارآمدتری انجام داده و مدیریت کنیم. به نظرم همانطور که شما گفتید، والدین از آگاهی‌ای بهره می‌برند که بر اساس آن با مدیریت شرایط فرزندانشان به موفقیت آنها کمک می‌کنند. و این عالیست.

– استیم: بله واقعا همینطور است. این تغییر روشیست که افراد باید بدان عمل کنند.

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

– استیم: امنیت یک موضوع واقعا مهم است. یکی از مشتریانی که ما با وی کار می‌کنیم، واقعا در سینه مردم تعداد زیادی قلب مصنوعی کار گذاشته است و به این ترتیب به آنها در زنده ماندن کمک کرده است. با این حال این افراد نیازمند کارهای دیگری روی قلبشان هستند. اولین راهی که آنها از آن استفاده می‌کردند، امکان استفاده از اینترنت یا دسترسی به شبکه را در همه جا مهیا نمی‌کرد. در حال حاضر آنها متوجه شده‌اند که در مواردی دسترسی به اینترنت مفید است. البته به شکلی که آنها بتوانند افرادی در Help Desk داشته باشند که در صورت بروز مشکل برای واکنش سریع، دارای یک دسترسی فوری باشند. یکی از نگرانی‌های جدیِ امنیتی و Locking این است که از افراد مختلف برای سوء استفاده از مردم و یا صرفا ورود به اطلاعاتی که از آن سر در نمی‌آورند جلوگیری شود. چرا که ممکن است آنها کارهایی انجام دهند که به بیمار آسیب برساند.

– خبرنگار: اینجا دقیقا نقطه‌ایست که افراد باید در حوزه تست و توسعه، بسیار آگاه باشند. هر نفر باید درباره چیزی که شما می‌توانید به آن متصل شوید و اینکه چه دسترسی‌هایی در سیستم شما دارد، و اینکه چه کسی به این داده‌ها دسترسی داشته و مالک آنهاست، و ایضا Security آنها را مدیریت می‌کند باید کاملا آگاه باشد. من می‌دانم که Coveros(اولین ارائه دهنده کورس آموزشیِ DevOps) در مورد موضوع Security کار می‌کند. این افراد از کجا می‌توانند در این باره که، چگونه در مورد Security این سیستم‌ها فکر می‌شود، اطلاعاتی به دست آورند؟

– استیم: یکی از اولین جاهایی که همیشه روی آن متوقف می‌شویم در OWASP است. OWASP یک Open Web Application Security Project است. در اینجا اطلاعات زیادی درباره چگونگی امن‌سازیِ Web Applicationهای شما،Web Serviceها و یا سخت‌افزار شما ارائه می‌شود. شما باید دستگاه‌هایی را استفاده کنید و فقط باید روی Security آنها فکر کنید.

– خبرنگار: کار شما در این نقطه آغاز می‌شود یعنی “که من درباره چی فکر کنم”.

– استیم: OWASP.org یک مکان عالی برای شروع است.

– خبرنگار: یک نقطه خوب برای افرادی که به این حوزه ورودی می‌کنند، و درباره آن فکر می‌کنند، این هست که: “من باید در مورد Security چگونه فکر کنم؟”. من فکر می‌کنم یکی از مسائل جالب توجه، که من دوست دارم نظر شما را راجع به آن بدانم، این هست که با حرکت به سمت Agile، اینترنت اشیاء و سیستم‌های Embeded، دنیای تسترها قطعا تغییر می‌کند. در اینجا چیزهای جدیدی وجود دارد که باید در مورد آنها بسیار آگاه باشیم، حتی اگر در آنها ماهر نباشیم، حداقل باید در مورد آنها آگاهی داشته باشیم، و البته Security یک نمونه خوب است.

– استیم: این یک نمونۀ عالیست.

– خبرنگار: ما باید بعضی از آگاهی‌ها را به دست آوریم، و برخی از دانش‌های پایه‌ای را داشته باشیم، تا با استفاده از آنها در مورد افزایش ریسک ذینفعان بالقوه فکر کنیم و یا اینکه تحلیل کنیم چه ریسک‌هایی در مسیر Security وجود دارد. شما نباید Security Tester باشید و یا در این حوزه تخصص داشته باشید، بلکه باید ریسک‌های بالقوه‌ای که در این راستا بروز می‌کنند را بشناسید. تمامی ناحیه‌های دیگری که شما تصور می‌کنید تسترها باید از آنها بر اساس تجربه آگاه باشند، Coveros درباره آنها با دیگر کمپانی‌ها کار کرده و یا …

– استیم: یکی از چیزهایی که ما به صورت خاص در تطابق Agile و DevOps می‌بینیم، تمرکز روی اتوماسیون تست و بررسی‌های اتوماتیک QA متمرکز شده است. یکی از چیزهای ویژه‌ای که شما به صورت خاص در مورد Security با آن مواجه هستید، وجود تعداد زیادی ابزار خوب Security QA است که شما می‌توانید قسمتی از Automated Build Pipeline را با استفاده از آنها ایجاد نمایید. به این ترتیب قادر به استخراج ارزش بوده و خواهید دید که: آیا نرم‌افزار شما برای آسیب‌های امنیتی باز است؟ کجا این مشکل وجود دارد؟ اصلاحات پیشنهادی برای بستن آن موضوع چیست؟

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

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

– استیم: در مورد استفاده از اتوماسیون ما می‌بینیم، تعداد زیادی وبسایت وجود دارد که در مورد اتوماسیون و چگونگیِ آغاز ساخت Pipelineها صحبت می‌کنند، مانند InfoQ و مواردی از این دست. بهترین راه این است که فقط شروع کنید به کنفرانس رفتن، مطالعۀ وبسایت‌هایی که درباره اتوماسیون و چگونگیِ ساخت آنها صحبت می‌کنند و سپس به پیوند سخت‌افزار و نرم‌افزار دقت کنید، که دقیقا همان چیزیست که سیستم‌های Embedded هستند. واقعا نیاز است که شما نگاهی متفاوت به تست داشته باشید، چرا که شما فقط نرم‌افزار را تست نمی‌کنید. شما باید نرم‌افزار و سخت‌افزار را تست کرده، و سپس آنها را با هم تست کنید، درست مثل یک سیستم مجتمع.

– خبرنگار: سیستم‌ داخل سیستم.

– استیم: بله، شما تقریبا همیشه حداقل سه Test Plan دارید. یکی برای نرم‌افزار، یکی برای سخت‌افزار، و یکی برای کل سیستم.

-خبرنگار: بدیهیست که افرادی هستند، که تمایلی به حضور در جلسه فردای شما ندارند، اما ممکن است برخی از افراد نکات، راهنمایی‌ها و مواردی که شما پیرامون این موضوع با مردم در میان می­گذارید را هایلایت کنند.

– استیم: برخی از نکات اصلی به معنی درک فرآیند شماست. چیزی که شما باید از آنجا به سمت ساخت نرم‌افزار و سخت‌افزارتان بروید، Map کردن آنهاست. منظورم Map کردنِ جاییست که شما باید آنرا تست کنید و همچنین چیزی که باید تحت آزمون قرار گیرد. باید گفت چیزی که در زمینه تست برای شما مهم است، چگونگیِ استفاده از دستگاه IoT یا Embedded و نیز ریسک‌های بالقوه‌ایست که ممکن است وجود داشته باشند. Planning منظم نرم‌افزار، سخت‌افزار و سیستم را با چیزهایی که در ذهنتان است انجام دهید.

– خبرنگار: اکنون که ما در مورد سیستم‌های Embedded و تست سخت‌افزار و نرم‌افزار صحبت می‌کنیم، شما افق این ماجرا را از دیدگاه تسترها چگونه می‌بینید؟ در این نوع تست، تسترها باید یک Lab داشته باشند. آنها دستگاه‌های مختلفی در Labهایشان دارند که می‌تواند این دستگاه‌ها را تست کنند. شما درباره اتصال تعداد زیادی وسیله به یکدیگر صحبت کردید. آیا شما صحبتی یا اشاره‌ای داشتید که درشرایطی که نیاز به محیط طبیعی باشد، افراد منازلی را برای انجام تست‌هایشان اجاره کنند، تا با محیطی طبیعی برای رخداد حوادث طرف باشند.

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

– خبرنگار: آنها یک شرایط ساختگی برای آتشسوزی ایجاد می‌کردند.

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

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

– استیم: بله. من در توییتر با نشانی @thomasstiehm و البته در سایت Coveros حضور دارم: www.coveros.com. مکانی خوب برای تماس با من.

– خبرنگار: در حال حاضر همه شما بینندگان دو روش برای ارتباط با تام دارید. تام از اینکه امروز با ما بودی متشکرم.

– استیم: ممنون.

– خبرنگار: واقعا از شما متشکرم.

– استیم: عالی بود.

– خبرنگار: ممنونم.

تحقیق و خبر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *