نحوه تست محصولات نرم‌افزاری در شرکت مایکروسافت

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

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

نحوه تست محصولات نرم‌افزاری در شرکت مایکروسافت
نحوه تست محصولات نرم‌افزاری در شرکت مایکروسافت

مهندسی توسعه نرم افزار در تست (Software Development Engineer in Test)

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

معمار آزمون (Test Architect)

معمار آزمون در تیم تست تقریبا همان نقشی را دارد که مدیر فنی در تیم تولید دارد. معمار آزمون تصمیماتی می‌گیرد که برروی کیفیت کل یک محصول تاثیر می‌گذارد درحالیکه سایر نقش‌های مربوط به آزمون ممکن است بر روی کیفیت برخی از قابلیت‌های یک محصول تاثیر گذار باشند. وظیفه اصلی معمار آزمون، راهبری فنی آزمون و اتخاذ استراتژی برای سازمان تست خود می‌باشد. طبق آمارهای ارائه شده در حوالی سال 2010، از بین 9000 آزمونگر موجود در شرکت مایکروسافت، 40 نفر از آنها نقش معمار آزمون را برعهده داشته‌اند.

آزمونگر ، آزمونگر ارشد، آزمونگر اصلی، شریک آزمونگر (Tester, Senior Tester, Principal Tester, Partner Tester)

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

مدیر آزمون(Test Manager)

مدیریت آزمون در حوزه آزمون نرم افزار تقریبا نقشی شبیه به مدیریت پروژه در حوزه تولید نرم‌افزار است. حوزه مدیریت آزمون ممکن است برروی گروهی از قابلیت‌های یک محصول، کل یک محصول، یا یک خط تولید محصول باشد و به همین دلیل طبقه بندی‌های زیر در این نقش وجود دارد:
رهبر(Leader)، مدیر(Manager)، متصدی(Director).

تکنیک‌های طراحی استفاده شده در آزمون کارکردی محصولات نرم افزاری مایکروسافت:

در ابتدا شایان ذکر است که از هر دو شیوه آزمون روش سیستماتیک(Systematic) و روش اکتشافی(Exploratory) در تست محصولات نرم افزاری مایکروسافت استفاده شده است. در هر صورت، رویکرد آزمون اکتشافی یعنی Exploratory Testing برای تست پروژ های نرم افزاری پیچیده در مقیاس بالا در شرکت مایکروسافت استفاده نمی‌شود. همچنین از این روش برای تست محصولاتی که عمر طولانی داشته و وارد فاز نگهداشت در طی چندین سال می‌شوند، کمتر استفاده می‌شود.

همچنین طبق آمارهای ارائه شده، روش‌های جعبه سیاه/ رفتارگرا (Black-Box/Behavioral)برای تضمین کیفیت محصولات نرم‌افزاری مایکروسافت کفایت نمی‌کند چرا که بخش قابل توجهی از باگهای سیستم با استفاده از صرف این روش، قابل شناسایی نیستند. همچنین، کیفیت آزمون در روش اخیر به شدت بستگی به شناخت آزمونگر از دامنه سیستم تحت آزمون دارد. لذا از روش‌های جعبه سفید/ساختارگرا (White-Box/Structural) نیز لازم است در تست محصولات استفاده گردد.

در هر صورت، تکنیک های رایج استفاده شده در تست محصولات مایکروسافت عبارتند از:

Equivalent Class Partitioning : که به نوعی همان روش افراز فضای ورودی برای تک تک ورودی‌ها می‌باشد

Boundary Value Analysis : که تمرکز بر روی آزمون مقادیر کرانه‌ای دارد

Combinatorial Analysis : که ترکیب ورودی‌های مختلف را مورد آزمون قرار می‌دهد.

روش‌های مرسوم در آزمون‌های ساختاری عبارتند از Block Testing, Line Testing, Decision Testing, Condition Testing, Basic Path Testing که برای مطالعه آنها می‌توانید به منابع مربوطه مراجعه نمایید.

در شرکت مایکروسافت از روش Model-Based Testing نیز استفاده می‌شود که رایجترین آن آزمون مبتنی بر ماشین حالات است. در این روش، فراورده آزمون مورد نظر در ابتدا مدلسازی می‌شود، سپس آزمون‌های لازم از روی مدل استخراج می‌گردد. ابزارهایی همچون Spec Explorer در این زمینه ارائه شده است که برای تست‌های پروتکل در حوزه امنیت کاربرد زیادی دارند.

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

جالب است بدانیم بیش از 1000000 (یک میلیون) تست-کیس برای تست محصول آفیس طراحی شده است. بخشی از آن‌ها مستند شده و بخش‌هایی مستند نشده است. بخش‌هایی از آن خودکارسازی شده و بخش‌هایی از آن خودکارسازی نشده است. اینکه چه زمانی باید خودکارسازی آزمون انجام شود، به پارامترهایی همچون بازگشت سرمایه‌گذاری (Return On Investment/ROI)، مدت دوره تست(Test lifetime) ، ارزش(Value) و ... بستگی دارد و بحث مشروح آن در این مقاله نمی‌گنجد.

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

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

One-Box, Test-Cluster, Perf-.Scale-Cluster, Integrated-Service-Test-Env, Deployment-Test-Cluster


نویسنده : شرکت مهندس پیشگان آزمون افزار یاس


مراجع

[1]- A.Page, K.Johnston,"How We Test Software at Microsoft",Microsoft Press ©2008 ,ISBN:0735624259 9780735624252