تکنولوژی

بهترين راه شناخت سريع گرهگاه‌هاي يك برنامه چيس؟

همکاران سیستم – «شناسايي سريع گرهگاه»( Rapid Bottleneck Identification) شيوه‌اي جديد در آزمايش کارايي برنامه‌هاي کاربردي است که به دست‌اندرکاران «کنترل کيفيت» امکان مي‌دهد تا خيلي سريع محدوديت‌هاي کارايي يک برنامه تحت وب را آشکار سازند و اثر اين محدوديت‌ها بر کاربر نهايي را تشخيص دهند.

مقدمه
شما مي‌خواهيد يک برنامه‌ي کاربردي تحت وب را که برايتان خيلي حياتي است راه‌اندازي کنيد. اطمينان يافتن از خوب بودن کارايي برنامه بسيار مهم است اما فرصت كم داريد. چطور مي‌توان به بهترين وجه برنامه را آزمايش کرد و ضمناً ضرب‌الاجل کاري را هم در نظر داشت؟
«شناسايي سريع رهگاه»( Rapid Bottleneck Identification) شيوه‌اي جديد در آزمايش کارايي برنامه‌هاي کاربردي است که به دست‌اندرکاران «کنترل کيفيت» امکان مي‌دهد تا خيلي سريع محدوديت‌هاي کارايي يک برنامه تحت وب را آشکار سازند و اثر اين محدوديت‌ها بر کاربر نهايي را تشخيص دهند. شيوه «شناسايي سريع گرهگاه» که طي ساليان متمادي و از خلال آزمايش برنامه‌هاي مختلف در همه‌ي انواع پلاتفرم‌ها شکل‌گرفته، بطور چشمگيري از مراحل آزمايش بارگذاري مي‌کاهد و در عين حال امکان آزمايش بيشتر (و کامل‌تر) را فراهم مي‌آورد. سازمان‌ها با استفاده از اين رويکرد مي‌توانند کيفيت برنامه‌هاي کاربردي را بهبود بخشند آنچه را مشتري تجربه مي‌کند ارتقا دهند، و از هزينه‌هاي بکارگيري سيستم‌هاي جديد بکاهند.

آزمايش کارايي يعني چه؟
آزمايش کارايي را مي‌توان بطور کلي چنين تعريف کرد: «آزمايش اينکه آيا يک سيستم يا جزئي از سيستم داراي آن کارايي خاصي که بايد باشد هست يا نه». اما هر برنامه‌ي کاربردي دست‌کم يک گرهگاه دارد. اساسا کمتر سيستمي مي‌توان يافت که از همان ابتدا،‌ کارايي مورد انتظار را داشته باشد. براي نشان دادن اين حقيقت، بهتر است تعريف مجددي از آزمايش کارايي ارائه دهيم: «آزمايشي براي جدا کردن و مشخص کردن آن دسته از مشکلات سيستم و برنامه‌ي کاربردي (گرهگاه‌ها) که نمي‌گذارد کارايي سيستم و برنامه هماني باشد که انتظار مي‌رود».
اين تغيير نگرش فلسفي (يعني به جاي اينکه آزمايش را يک ارزيابي کلي تلقي کنيم، آن را يک جستجوي فعال براي يافتن و تشخيص مشکل و حل آن بدانيم) باعث شد تا شيوه جديدي به نام «شناسايي سريع گرهگاه» خلق شود. «شناسايي سريع گرهگاه» تلفيقي است از يک درک جامع از گرهگاه‌ها،‌ همراه با يک شيوه آزمايشي که سازمان‌ها را قادر مي‌سازد تا برنامه‌هاي کاربردي تحت وب با کيفيت خلق کنند.

درک گرهگاه‌ها، توان عملياتي، و مسئله همزماني
پيش از پرداختن به خصوصيات شيوه «شناسايي سريع گرهگاه‌ها»، نخست درکي مشترک از گرهگاه (و اينکه کجاها پيدا مي‌شوند) بايد داشته باشيم. همچنين خط تمايزي بکشيم ميان آزمايش «توان عملياتي» و آزمايش «بهره‌برداري همزمان».

گرهگاه‌ها ـ موانع اصلي کارايي
هر يك از اجزاء سيستم ـ نظير سخت‌افزارها، نرم‌افزارها، يا پهناي باند ـ که محدوديت‌هاي مشخصي بر سر راه جريان داده‌ها يا سرعت پردازش ايجاد کنند در واقع باعث ايجاد گرهگاه مي‌شوند. در برنامه‌هاي کاربردي تحت وب، گرهگاه‌ها باعث مي‌شوند که يا توان عملياتي بر روي داده‌ها محدود شود يا تعداد کساني که به برنامه وصل مي‌شوند در سطح محدودي بمانند. اين امر، بطور مستقيم بر کارايي و قابليت گسترش سيستم لطمه مي‌زند. اين مشکلات و گرهگاه‌ها در همه سطوح سيستم رخ مي‌دهد؛ از جمله در سطح شبکه، سرور وب، سرور برنامه و سرور بانک اطلاعاتي. بر اساس تجربه ما در آزمايش برنامه‌هاي کاربردي مشتريان، پراکندگي گرهگاه‌ها در اجزاء مختلف سيستم به اين شكل است: شبکه: 30 درصد؛ سرور(هاي) وب: 10 درصد؛ سرور(هاي) برنامه کاربردي: 40 درصد؛ سرور(هاي) بانک‌هاي اطلاعاتي: 20 درصد.

آزمايش در شرايط پيچيده
به‌طور كلي نحوه و شيوه‌اي که براي آزمايش انتخاب مي‌کنيد به شكل مستقيم بر دشواري يا آساني شناسايي گرهگاه‌ها و رفع آن اثر مي‌گذارد. متأسفانه، بسياري از روال‌هايي که براي آزمايش برنامه انتخاب مي‌شود مبتني بر پيچيده‌ترين حالت بهره‌برداري از برنامه است. در اين نوع آزمايش‌ها، آزمايش‌کنندگان مي‌کوشند وضعيتي درست شبيه وقتي که برنامه در عمل مورد بهره‌برداري قرار مي‌گيرد، ايجاد کنند. اين به معني آن است که انواع و اقسام تعاملات کاربران با برنامه شبيه‌سازي شوند. اين کار مانعي بزرگ بر سر راه آزمايش ايجاد مي‌کند، زيرا سناريوهايي که داراي پيچيدگي‌هاي بيشتر و مستلزم تعاملات مختلف و متعدد هستند، گرهگاه‌هاي بيشتري را در جريان آزمايش به ميان مي‌آورند که به دشواري مي‌توان علت ريشه‌اي آن‌ها را دريافت.
بطور مثال، در نتايج آزمايش يک برنامه تجارت الکترونيکي ستاندارد، گرهگاه برنامه آن جايي است که تقريباً 2000 کاربر بطور همزمان به برنامه وصل مي‌شوند. در اين آزمايش، سناريوي استفاده از برنامه عبارت است از مرور کردن، جستجو کردن، و اضافه کردن چند قلم کالا به سبد خريد براي اينکه بعداً يکجا خريده شود. در اينجا، هرچند فقط سه تعامل کاربران با برنامه مورد آزمايش قرار گرفته است،‌ اما هر يک از اين تعاملات، با تمام سطوح برنامه ارتباط مي‌يابد ـ و هر يک از آن‌ها مي‌تواند باعث يک گرهگاه شود. در موضوع‌هاي پيچيده‌تر، گرهگاه ممکن است به خاطر مسئله‌اي سيستمي هم ايجاد شود. خلاصه اينکه هر چه متغيرهاي بيشتري در يک آزمايش وجود داشته باد تعيين علت مشکل دشوارتر خواهد بود.
وقتي ممكن باشد كه در هر لايه‌اي از شبکه مشكلي پيدا شود، و احتمال بودن آن در يك لايه خيلي بيشتر از احتمال بودن آن در لايه ديگر نباشد، از کجا مي‌توان فهميد که چکار بايد کرد؟ در سطرهاي بعد به اين پرسش پاسخ مي‌دهيم.

دو موضوع اصلي: توان عملياتي، ميزان بهره‌برداري همزمان
توان عملياتي عبارت است از مقدار جرياني از داده‌ها که يک سيستم مي‌تواند پشتيباني کند. واحد اندازه‌گيري آن معمولاً تماس در ثانيه(Hit per second)، صفحه در ثانيه (Pages per second)، و مگابيت در ثانيه (Megabits per second) است.
ميزان بهره‌برداري همزمان عبارت است از شمار کاربرا مستقلي که بطور همزمان به برنامه وصل مي‌شوند و از آن استفاده مي‌کنند. تجربه‌ي ما نشان مي‌دهد که بيشتر مشکلات کارايي سيستم‌ها و برنامه‌ها، ناشي از محدوديت در توان عملياتي است. با اين حال، مسائل همزماني به لحاظ کارايي برنامه بسيار مهم هستند. شناسايي و منفک کردن اين مسائل حتي مي‌تواند دشواري را پيچيده‌تر هم كند.

آزمايش توان عملياتي
به اين ترتيب براي آزمايش توان عملياتي بايد شمار کاربران متصل به سيستم به حداقل، و مقدار کاري که توسط اين کاربران انجام مي‌شود به حداکثر برسد. به اين شكل، سيستم و برنامه به نهايت حد ظرفيت خود نزديك مي‌شود و همه مسائل و مشکلا آشکار مي‌گردند.
براي آزمايش توان عملياتي در سطح سيستم، مي‌توان فايل‌هاي اصلي را به منظور انجام آزمايش، به سرور وب و سرور برنامه افزود. سپس مي‌توان آزمايش بارگذاري را انجام داد تا با درخواست اين فايل‌هاي آزمايشي حداکثر توان عملياتي سيستم براي هر يک از لايه‌ها ارزيابي شود. بطور معمول، آزمايش‌کنندگان از يک فايل تصويري بزرگ براي آزمايش ميزان پهناي باند (برحسب مگابيت در ثانيه)، و از يک فايل متني يا يک فايل تصويري کوچک براي آزمايش ميزان تماس (برحست تماس در ثانيه) و از يک صفحه برنامه بسيار ساده ـ مثلاً يک صفحه‌ي «خوش‌آمديد» ـ براي آزمايش ميزان بهره‌برداري ا صفحه (برحسب صفحه در ثانيه) استفاده مي‌کنند. اگر سيستم نتواند از پس ضرورت‌هاي ابتدايي کارايي برنامه (يعني درخواست همين صفحات آزمايشي ساده) برآيد، آزمايش بايد متوقف شود و پيش از هر کار ديگري نخست خود سيستم بهبود يابد؛ حالا چه از طريق تغيير تنظيمات، يا از طريق افزايش ظرفيت سخت‌افزار و يا اختصاص پهناي باند بيشتر.
آزمايش توان عملياتي واقعي برنامه‌ي کاربردي، مستلزم رجوع به صفحات اصلي و تعاملات کاربر در خود برنامه با تأخير زماني اندک ميان درخواست‌هاست، تا از اين طريق حدّ ظرفيت اجزاء مختلف برنامه بر حسب «صفحه در هر ثانيه» پيدا شود. به روشني پيداست که صفحات يا تعامل‌هايي که ضعيف‌ترين توان عملياتي را داشته باشند محتاج بيشترين تنظيم هستند.

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

تفاوت بين آزمايش توان عملياتي و آزمايش همزماني
مجموعه باري که از بار آزمايشي صد کاربر فرضي با يک ثانيه «زمان تأمل»( Think time) ايجاد مي‌شود، معادل مجموعه باري نيست که از بار آزمايشي هزار کاربر فرضي با ده ثانيه «زمان تأمل» ايجاد مي‌شود. همچنان که در نمودار شماره 1 نشان داده مي‌شود، اين دو آزمايش از لحاظ توان عملياتي عين هم هستند اما از لحاظ همزماني بسيار متفاوتند.

در سناريوي اول، آزمايش توان عملياتي، گرهگاه برنامه 50 صفحه در ثانيه است. اما در سناريوي دوم، آزمايش همزماني با همان ميزان تعامل، گرهگاه برنامه 25 صفحه در ثانيه است. تنها تفاوت ميان اين دو آزمايش در تعداد کاربران سيستم و طول «زمان تأمل» کاربران بر روي صفحات است. در آزمايش توان عملياتي با تعداد کاربران کمتر و «زمان تأمل» کوتاه‌تر، برنامه داراي توان عملياتي بيشتري است؛ آزمايش دوم نشان مي‌دهد که برنامه از لحاظ همزماني دچار محدوديت است. اگر آزمايش‌کنندگان فقط توان عملياتي را آزمايش کرده بودند، مسئله همزماني تا وقتي که برنامه به مرحله بهره‌برداري واقعي نمي‌رسيد آشکار نمي‌شد.

آزمايش با رويکرد «شناسايي سريع گرهگاه»
آزمايش‌کنندگان کارايي برنامه‌ها از ديرباز، توجه اصلي‌شان به استفاده همزمان کاربران به عنوا ملاک اصلي ثبات برنامه‌ها بود. اما با توجه به اينکه بيشتر مشکلات برنامه‌اي و مسائل در سطح سيستم، در جريان آزمايش‌هاي توان عملياتي پيدا شد، لزوم يک رويکرد جديد احساس شد.
اساس متدولوژي «تشخيص سريع گرهگاه» بر اين سه اصل استوار است:
• تمام برنامه‌هاي کاربردي تحت وب گرهگاه دارند.
• اين گرهگاه‌ها را تنها يکي‌يکي مي‌توان آشکار کرد.
• توجه اصلي معطوف به جاهايي بايد باشد که بيشتر احتمال رخ دادن گرهگاه در آنجاهاست.
در متدولوژي «شناسايي سريع گرهگاه»، با وجود اذعان به اهميت آزمايش همزماني، تمرکز اصلي براي از ميان برداشتن عام‌ترين گرهگاه‌ها، نخست روي آزمايش توان عملياتي است. پس از آن به آزمايش همزماني پرداخته مي‌شود؛ تا از اين طريق، کارآيي تحت شرايطي که منعکس‌کننده‌ي شمار واقعيِ کاربراني است که انتظار مي‌رود در يك آن از برنامه استفاده کنند، ‌مورد ارزيابي قرار گيرد. آزمايش «شناسايي سريع گرهگاه» با آزمايش‌هايي ساده شروع مي‌شود و سپس به آزمايش‌هاي پيچيده‌تر مي‌رسد بطوريکه وقتي يک مسئله آشكار مي‌شود، غيرمحتمل بودن همه علت‌هاي احتمالي ديگر معلوم شده است. تمرکز توجه روي آزمايش توان عملياتي، و به دنبال آن آزمايش همزماني و استفاده از يک رويکرد ساختمند براي فرايند آزمايش، تضمين مي‌کند که گرهگاه‌ها به سرعت تشخيص داده شود، اين امر باعث افزايش کارآمدي و کاهش هزينه‌ها مي‌شود.

مزاياي آزمايش «شناسايي سريع گرهگاه»
متدولوژي «شناسايي سريع گرهگاه» امکان آزمايش سريع و در عين حال کاملي را فراهم مي‌آورد که بطور منظم همه مسائل سيستم و برنامه را آشکار مي‌سازد؛ هم مسائل ساده و هم مسائل پيچيده.

کاهش زمان آزمايش
در مرحله اول، با تمرکز توجه بر روي آزمايش توان عملياتي چقدر در زمان صرفه‌جويي مي‌کنيد؟ به عنوان نمونه سيستمي را در نظر بگيريد که قرار است 5هزار کاربرِ همزمان را جوابگو باشد؛ کاربراني که هر کدام بطور متوسط 45 ثانيه روي هر صفحه مي‌مانند. اگر برناه داراي گرهگاهي باشد که قابليت گسترش آن را در حد 25 صفحه در ثانيه متوقف کند، از طريق آزمايش همزماني هنگامي که تعداد کاربران به 1125 نفر برسد (25 صفحه در هر ثانيه ضربدر 45 ثانيه براي هر صفحه) وجود اين گرهگاه معلوم خواهد شد.
براي اينکه داده‌هاي به‌دست آمده از آزمايش گمراه‌کننده نباشد، آزمايش همزماني بايد به تدريج و آهسته جلو برود. به عنوان مثال، ممکن است در نظر بگيريد که هر پنج ثانيه يک کاربر اضافه مي‌شود. در اين مثال، گرهگاه ممکن است بعد از 5625 ثانيه يا 94 دقيقه (1125 کاربر ضربدر هر 5 ثانيه يک کاربر) رخ بدهد. اما، براي اطمينان يافتن از صحت چنين گرهگاهي، آزمايش را بايد تا عد از اين نقطه هم ادامه داد تا ثابت شود که توان عملياتي با اضافه شدن کاربران بالا نمي‌رود. در آزمايش توان عملياتي اين مشکل در عرض کمتر از 60 ثانيه معلوم مي‌شود.

از ميان برداشتن پيچيدگي اوليه آزمايش
به‌طور معمول آزمايش کارايي با سناريوهاي بيش ‌از اندازه پيچيده شروع مي‌شود؛ سناريوهايي که در آن‌ها از فرط زيادي عوامل مختلف در آن واحد، گرهگاه‌ها به سادگي از ديد پنهان مي‌مانند. در متدولوژي «شناسايي سريع گرهگاه» از آزمايش در سطح سيستم شروع مي‌شود که آن را مي‌توان حتي پيش از راه‌اندازي برنامه کاربردي آغاز کرد.

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

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

آزمايش «شناسايي سريع گرهگاه» براي يافتن گرهگاه‌هاي مشترک سيستم
هر آزمايشِ کارايي نخست با ارزيابي ساختار اصلي شبکه که برنامه را پشتيباني مي‌کند بايد آغاز شود. اگر اين سيستم اصلي نتواند بار کاربري مورد انتظار بر روي سيستم را تحمل کند، حتي يک برنامه کاربردي بي‌نهايت قابل انعطاف هم دچار گرهگاه خواهد شد. آزمايش‌هاي اصلي در سطح سيستم بايد انجام شود تا از درست بودن وضعيت پهناي باند، ميزان تماس، و اتصالات اطمينان حاصل شود. افزون بر اين، آزمايش‌هاي ساده‌ي صفحات برنامه نيز بايد انجام شود؛ به‌طور مثال صفحات ساده «خوش‌آمديد».

برنامه کاربردي
بعد از اطمينان يافتن از اينکه ساختار سيستم جوابگوي پايه‌‌اي‌ترين نيازهاي کاربران نهايي هست، بايد به سراغ خود برنامه کاربردي برويم. در اينجا نيز بار ديگر بايد از ساده‌ترين موارد آزمايشي شروع کنيم.
اگر آزمايش تا اينجا بدون پيدا شدن مشکلات سيستمي پيش رفته است ( يا مشکلات يش‌آمده حل شده‌اند)، ديگر هر مشکلي که باقي مانده باشد علت آن در خود برنامه است. بطور مثال، اگر آزمايش يک صفحه برنامه تا 100 صفحه در ثانيه را جواب داده و صفحه اصلي برنامه با گرهگاه 10 صفحه در ثانيه مواجه است، مشکل در قسمت فراخواني برنامه براي نمايش صفحه اصلي است.
در اين نقطه، آزمايش صفحه آزمايشي برنامه دو نکته ارزشمند در اختيار ما مي‌گذارد. نخست اينکه چون ما مي‌دانيم که خود سيستم از اين بابت گرهگاهي ندارد، مقصر اصلي تنها مي‌تواند کدهايي باشد که در برنامه‌نويسي صفحه اصلي نوشته شده است. نکته دوم اينکه ما مي‌توانيم ببينيم که تنظيم صفحه اصلي چقدر مي‌تواند کاراي را بهبود بخشد. تفاوت بين کارايي صفحه آزمايشي (100 صفحه در ثانيه) و صفحه اصلي (10صفحه در ثانيه) مشخص مي‌کند که حداکثر بهبود کارايي که از تنظيم برنامه مي‌توان به‌دست آورد چقدر است. همچنين، تعاملات چند صفحه‌اي را مي‌توان به تعاملات با صفحات جداگانه تقطيع کرد و کارايي هر صفحه را بطور فردي و سهم آن را در کارايي کل برنامه ارزيابي کرد.
از آنجايي که هر صفحه برنامه‌ي واقعي احتمالاً بيش از صفحه آزمايشي «خوش‌آمديد» به قدرت پردازشي نياز دارد، بديهي است که انتظار مقداري اُفت در کارايي منطقي است. اما، هر چه اين اُفت بيشتر باشد، نياز بيشتري به تنظيم وجود دارد (و احتمالاً دتاورد بيشتري از آن حاصل مي‌شود). اين نکته نيز حائز اهميت است که اگر تفاوت اُفت ميان صفحه آزمايشي و صفحه واقعي برنامه خيلي چشمگير نباشد و با اين حال کارايي کماکان تکافوي نيازهاي اصلي کاربر برنامه را نکند، شما بايد ظرفيت سخت‌افزاري بيشتري به مجموعه خود بيفزاييد.
تا اينجا هيچ اشاره‌اي به زمان پاسخگويي صفحه نشده است. گرچه زمان پاسخگويي يک ملاک اصلي براي کارايي کلي است، اما زمان پاسخگويي براي يک کاربر هماني است که براي هزار يا صدهزار کاربر؛ مگر اينکه گرهگاهي وجود داشته باشد. بنابراين در اين متدولوژي، زمان پاسخگويي فقط اين فايده را دارد که به عنوان يك شاخص نشان مي‌دهد به گرهگاه رسيده‌ايم (وقتي که زمان پاسخگويي کم‌کم افزايش مي‌يابد) يا معياري است براي شکست (وقتي که زمان پاسخگويي از يک حد تعريف شده مي‌گذرد) همراه با صفحات داراي کارايي ضعيف (صفحاتي که دچار خطاها يا زمان پاسخگويي بالا مي‌شوند) که اکثر آن‌ها نياز به بهينه‌سازي کدهاي برنامه دارند.

آزمايش «شناسايي سريع گرهگاه» براي گره‌گاه‌هاي برنامه
همچون آزمايش‌هايي که در سطح سيستم انجام مي‌شود، در آزمايش برنامه با استفاده از متدولوژي «شناسايي سريع گرهگاه» نيز کار از ساده‌ترين موارد آزمايش شروع مي‌شود و رفته‌رفته به موارد پيچيده‌تر مي‌رسد. به عنوان نموه، در يک برنامه معمولي تجارت الکترونيکي، شما نخست صفحه اول را آزمايش مي‌کنيد و بعد صفحات ديگر و سپس دستورات برنامه را اضافه مي‌کنيد تا سرانجام به آزمايش تعاملات واقعي و کامل برسيد، همه اينها را نخست به صورت تک‌کاربره و سپس در حالت‌هايي با الگوهاي کاربري پيچيده آزمايش مي‌کنيد. در اين آزمايش‌ها، وقتي گام به گام جلو مي‌رويم، هر گونه اُفتي که در زمان پاسخگويي يا در توان عملياتي صفحه پيش بيايد، معلوم است که ناشي از پيچيدگي تازه‌اي است که در گام جديد اضافه شده است؛ همين تشخيص باعث مي‌شود که آسانتر بتوان کدهايي از برنامه را که بايد مورد بررسي قرار گيرد، از ساير دها جدا کرد.
وقتي دستورهاي برنامه و تعاملات با برنامه مورد آزمايش قرار گفت و (در صورت لزوم)‌ بهينه شد، مي‌توان تعامل کاربران با برنامه را با سناريوهاي آزمايش همزماني تلفيق کرد. اين آزمايش‌هاي همزماني بايد روي دو جزء اصلي متمرکز باشد. اول اينکه آزمايش همزماني بايد به درستي منعکس‌کننده‌ي همان کارهايي باشد که کاربران واقعي در سايت انجام مي‌دهند؛ کارهايي همچون مرورکردن، جستجو کردن، ثبت‌نام کردن، وارد شدن، خريد کردن. دوم اينکه گام‌هايي که در اين تعاملات برداشته مي‌شود بايد با همان آهنگي باشد که بازديدکنندگان واقعي با «زمان تأمل» متناسب با هر گام انجام مي‌دهند. اين اطلاعات را مي‌توان با استفاده از يک ابزار ثبت‌کننده‌ي کارها در «کارنامه‌اي» گردآوري کرد. اين کارنامه حاوي اطلاعاتي خواهد بود همچون: مدت هر بار استفاده از برنامه، تعداد صفحات ديده شده در هر بار استفاده از برنامه (براي تعيين سرعت کاربر) و درصد تماس با صفحات (براي تعيين ميزان استفاده واقعي از دستورات برنامه).
هنگامي که طراحي آزمايش برپايه‌ي داده‌هاي واقعي ـ يا بر پايه‌ي فرضيات دقيق در مورد برنامه‌اي که هنوز راه‌اندازي نشده ـ صورت گرفت، آزمايش را بايد به گونه‌اي انجام داد که در انواع سطوح مختلف از ميزان بار کاربري، بتوان اطلاعات ارزشمندي جمع‌آوري کرد. اگر انتظار مي‌رود که سايت پذيراي 1000 کاربر همزمان باشد، پس حائز اهميت است که از آغاز با همه‌ي هزار کاربر کار را شروع نکنيم. به جاي اين، آزمايش را به آهستگي پيش ببريد، در فواصل زماني مشخص يک يا چند کاربر اضافه کنيد تا به هزار کاربر برسيد. اين به شما امکان خواهد داد تا کارايي کلي را در هر سطح از بار کاربري تعيين کنيد. با اين کار،‌ تشخيص مشکلات کارايي (وقتي کم‌کم پيدا مي‌شوند) نيز آسانتر است.

نتيجه‌گيري
در آزمايش‌هاي که با متدولوژي «شناسايي سريع گرهگاه» انجام مي‌شود تمرکز توجه بر روي گرهگاه‌هايي است که اغلب ـ در توان عملياتي ـ پيدا مي‌شوند، به همي دليل اين نوع آزمايش‌ها اثربخش‌ترند. وقتي توان عملياتي بطور کامل مورد آزمايش قرار گرفت، شما مي‌توانيد سيستم و برنامه را از لحاظ همزماني نيز آزمايش كنيد تا کارايي آن را تحت شرايط واقعيِ بار کاربري نيز ارزيابي كرده باشيد. با دنبال کردن يک رويکرد ساختارمند از آزمايش سيستم به آزمايش برنامه و به آهستگي و بطور منظم سراغ موارد پيچيده رفتن، شما مي‌توانيد به سرعت گرهگاه‌ها و علل ريشه‌اي آن‌ها را تشخيص دهيد.
اگرچه در اين مقاله توجه اصلي معطوف به متدولوژي بود، اما بايد توجه داشت که قسمت اعظم اين فرايند را مي‌توان و بايد با استفاده از ابزارهاي آزمايشي اتوماتيک، ب‌صورت خودکار انجام داد. برنامه‌ي Oracle Application Testing Suite يکي از بخش‌هاي اصلي برنامه Oracle Enterprise Manager براي آزمايش کارکرد و آزمايش بارگذاري برنامه‌هاي کاربردي تحت وب است.

منبع : Oracle

نوشته های مشابه

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

دکمه بازگشت به بالا