خلاصه: یکی از مراکز مهم پاسخگویی به سوالات در زمینه تست نرمافزار Techwell Hub است که رهبران جامعه نرمافزار از آن برای پاسخگویی به سوالات و مشارکت در جلسات و نشستهای مجازی و حقیق، استفاده میکنند. مایکل بولتون(Michael Bolton)، سخنران و یکی از صاحب نظران در صنعت تست نرم افزار است که نقشی موثر را در ایجاد چالش و بحث در مورد تست اکتشافی(Exploratory Testing)، ابزار و وظایف آزمونگران ایفا کرده است.
مایکل بولتون به افراد مختلف و درگیر در صنعت تست نرمافزار، کمک میکند تا مشکلاتی را حل کنند که تاکنون از حل آن عاجز بودند. ایشان یکی از سخنرانان شناخته شده در این صنعت است که دارای بیش از بیست و پنج سال تجربه، مدیریت و تالیف در مورد نرمافزار است.
در این مقاله بسیار کوتاه که بیشتر ساختار آن به یک سوال و جواب کوتاه شبیه است، نکاتی محوری درباره تست اکتشافی بیان میشود.
آیا تمامی تستها اکتشافی هستند؟
Radovic Ognjen@ میگوید: “چطور تست اکتشافی را گزارش میکنید؟ گاهی اوقات تست اکتشافی راحتتر میتواند تمایز بین تست(Testing) و بررسی کردن(Checking) را مشخص کند.”
michael.a.bolton@ در پاسخ استدلال میکند که کل تست(Testing) اکتشافی است، و بررسی کردن(Checking) میتواند به عنوان بخشی از اکتشاف باشد. سپس به این منظور یک مقیاس ساده در ارتباط با آشپزی ارائه داد: همانطور که میتوان خرد کردن مواد غذایی در هنگام آشپزی به صورت مکانیکی انجام داد، چک کردن و بررسی کردن را نیز میتوان به صورت مکانیکی در تست انجام داد.
وی سپس ادامه میدهد که: در آشپزی، موضوع تست کردن و تصمیمگیری برای چشیدن غذا را نمیتوان اتومات کرد، چون نمیتوان نقطه زمانی اجرای آنرا مشخص کرد. حتی نمیتوانید متصور باشید که باید چه زمانی از چاقو، رنده، و میکسر غذا استفاده کنید. ما از این ابزارها برای خرد کردن کمک میگیریم، درست مانند زمانیکه ما از ابزارها برای تست کمک میگیریم. موضوعی که در این میان مهم است این است که بدانیم این ابزارها نیستند که این کارها را برای ما انجام میدهند، بلکه آنها صرف برای انجام این کارها به ما کمک میکنند.
بنابراین بولتون معتقد است که ابزارها تست نمیکنند، بلکه فقط در تست به ما کمک میکنند.
البته باید گفت دیدگاههای متفاوت با نظر مایکل بولتون در تست اکتشافی نیز وجود دارد. به عنوان نمونه خانم الیزابت هندریکسون(Elisabeth Hendrickson) نویسنده کتاب Explore It معتقد است تست نرمافزار موضوعیست که با کنار هم قرار گرفتن Checking و Exploration معنا و مفهوم مییابد، اما در مقابل مایکل بولتون معتقد است تست یک موجودیت اکتشافی بوده و Checking نیز بخشی از ماهیت اکتشافی تست است.
ابزارها به خودکارسازی Checking کمک میکنند
Mark Waite@ میگوید: “به نظر شما آیا ابزارهایی برای کمک به خودکارسازی Checking در تست نرم افزار وجود دارد که شما آنرا پیشنهاد کنید تا منجر به اکتشاف و مطالعه بیشتر شود؟ من اعتراف می کنم که علاقه خاصی نسبت به “silver bullet”[در فرهنگ عمومی و ادبیات اسطورهای مردم اروپا و آمریکا، گلولهٔ نقرهای گلولهای است که از نقره درست شدهاست و تنها اسلحهای است که قابلیت بهکارگیری در مقابل گرگینه، افسونگر یا سایر هیولاها را دارد. این اصطلاح همچنین یک استعاره برای یک راه ساده و به ظاهر جادویی برای یک مشکل دشوار است: برای مثال، پنیسیلین یک گلوله نقرهای بود که بسیاری از عفونتهای باکتری را درمان کرد] دارم که همه چیز را بهتر و جذابتر میکند. امکان دارد هنوز آن را پیدا نکرده باشید و احتمالا هرگز آن را پیدا نخواهید کرد، اما مطمئنا در طول جستجوی آن چیزهای زیادی را خواهید آموخت.”
واقعیت این است که تنها با یک ابزار نمیتواند برای کنترل خودکار همه موارد استفاده شود. برای پیدا کردن ابزارهایی که به شما در غالب امور کمک میکند، بولتون پیشنهاد میکند که ابتدا باید از خود بپرسید: “من دارم سعی میکنم چه مشکلی را حل کنم؟”
بولتون در ادامه پاسخ خود میگوید که مییایست ابزارها برای بررسی انواع خاصی از مشکلات ساده و به منظور تحقق اهداف مختلف، کمک خود را ارائه دهند.
ما نمیتوانیم نشان دهیم که محصول کار میکند یا خیر
Doug Hoffman@ میگوید: “من نقش نگهبان دروازه(Gatekeeper)[شخصی است که دسترسی به چیزی را اداره میکند برای مثال دروازه شهر را کنترل می کند] برای متوقف کردن یک قطار در نظر میگیرم[در اینجا Gatekeeper همان مسئول میله مانع است که زمان عبور قطار از میان شهر تقاطع خیابان با ریل راهآهن را میبندد]. من به عنوان Gatekeeper جلوی یک کامیون میایستمو دستم را بالا برده و به او میگویم “ایست”. حال همین را به عالم واقعی کار بسط میدهیم. مدیر کنترل تصمیم میگیرد از روی من رد شود، و سیستم با همین وضعیت شروع به کار کند. در حقیقت او برای ایست من هیچ ارزشی قائل نشده است. این دو تفاوت موضوعی و مفهومی در تست را به ذهن متبادر میکند. یکی تست برای نشان دادن آن چیزی که در نظر گرفته شده است، و دیگری تست برای رویت این موضوع که آیا آن کار میکند یا خیر”
همانطور که بولتون میگوید، “ما نمیتوانیم نشان دهیم که یک محصول کار میکند یا نه.” در عوض، آزمونگران میتوانند نشان دهند که چه مشکلی را مشاهده کردهاند یا نشان دهند که یک محصول ظاهرا در برخی شرایط کار میکند. بولتون پیشنهاد میکند که آزمونگران حتما باید دو کار زیر را انجام دهند:
- باید تناقض محصول با مستندات تحلیلی موجود را بیابند.
- چگونگی تناقض محصول با نیازهای واقعی و با هر چیز دیگری که ممکن است برای شخص یا اشخاص مطلوب یا مهم باشد را بیابد.