تست یک عنصر حیاتی در توسعه نرم افزار است. همچنین می تواند یک فعالیت پیچیده برای ساختار صحیح و به گونه ای باشد که حداکثر کارایی را پشتیبانی کند. به دلیل این پیچیدگی، بررسی فرآیندها و دستورالعملها برای اطمینان از اینکه بهترین روش را دنبال میکنید، همیشه مفید است و یک مکان عالی برای شروع، ISTQB (هیئت بینالمللی صلاحیت تست نرمافزار) است که هفت اصل اساسی تست را فهرست میکند.
مهم است که هنگام انجام تست، نرم افزار بدون انحراف از هدف، به نتایج تست بهینه دست یابید. اما چگونه تشخیص می دهید که از استراتژی درستی برای تست پیروی می کنید؟ برای آن، باید به برخی از اصول اولیه تست پایبند باشید.
برای درک این موضوع، سناریویی را در نظر بگیرید که در آن فایلی را از پوشه A به پوشه B منتقل می کنید.
به تمام راه های ممکن برای تست این موضوع فکر کنید.
جدا از سناریوهای معمول، می توانید شرایط زیر را نیز تست کنید
در حال تلاش برای انتقال فایل زمانی که باز است
شما حقوق امنیتی برای جایگذاری فایل در پوشه B ندارید
پوشه B در یک درایو مشترک است و ظرفیت ذخیره سازی پر است.
پوشه B قبلاً یک فایل با همین نام دارد، در واقع، لیست بی پایان است
یا فرض کنید 15 فیلد ورودی برای تست دارید که هر کدام دارای 5 مقدار ممکن است، تعداد ترکیب هایی که باید تست شوند 5^15
خواهد بود.
اگر بخواهید کل ترکیب های ممکن را تست کنید، زمان اجرا و هزینه پروژه به طور تصاعدی افزایش می یابد. ما به اصول و استراتژی های خاصی برای بهینه سازی تلاش تست نیاز داریم
هفت اصل اساسی تست چیست؟
این اصول، اصل هایی هستند که توسط ISTQB به عنوان تست و توسعه نرم افزار در طول سالیان تکامل یافته و به عنوان هسته مطلق تست شناخته شده اند. ما در آنوفل نیز از این اصول جهت تست استفاده می کنیم.
اگر درگیر هر جنبه ای از تست نرم افزار هستید، ارزش آن را دارد که این استانداردها را به طور کامل بررسی و درک کنید، و بررسی کنید که آنها را در سازمان و تیم خود دنبال می کنید، زیرا آنها به شما کمک می کنند تا به استانداردهای بالای کیفیت دست یابید و به مشتریان خود اطمینان می دهند که نرم افزار آماده است و اکنون می توانید بدون مشکل از آن استفاده کنید. قبل از هر چیزی اگر دوست دارید یک نقشه تست موفق بنویسید، ما در آنوفل از ابتدا تا انتهای آن را برای شما آماده کردیم.
هفت اصل تست زنی
این مقاله به بررسی این هفت اصل اساسی تست نرم افزار و ملاحظات کلیدی پیرامون رویکرد تست نرم افزار شما می پردازد.
1. تست وجود باگ را نشان می دهد نه عدم وجود آنها
ما نرمافزار را برای کشف باگ تست میکنیم تا بتوان آنها را قبل از استقرار در محیطهای زنده برطرف کرد، این به ما امکان میدهد از کارکرد سیستمهایمان اطمینان داشته باشیم. با این حال، این فرآیند تست تأیید نمی کند که هیچ نرم افزاری کاملاً صحیح و کاملاً عاری از باگ است. تست به کاهش تعداد نقص های کشف نشده در نرم افزار کمک می کند، اما یافتن و حل این مشکلات به خودی خود دلیلی بر این نیست که نرم افزار یا سیستم 100٪ بدون باگ است. این مفهوم باید همیشه توسط تیم ها پذیرفته شود و باید برای مدیریت انتظارات مشتری تلاش کرد.
با این حال، مهم است که به یاد داشته باشید که در حالی که تست وجود باگ ها را نشان می دهد و نه عدم وجود آنها، تست کامل به همه اطمینان می دهد که نرم افزار شکست نخواهد خورد. داشتن یک استراتژی تست جامع که شامل برنامههای تستی کامل، گزارشها و آمار به همراه برنامههای انتشار تستی باشد، میتواند به این امر کمک کند. اطمینان دادن به مشتریان در مورد پیشرفت تست و ایجاد اطمینان از اینکه حوزه های مناسب در حال تست هستند.
علاوه بر این، نظارت و تست مداوم پس از تولید سیستم ها حیاتی است. فکر کردن به مسائل بالقوه ای که ممکن است به وجود بیاید راه خوب دیگری برای کمک به کاهش مشکلات آینده است، به عنوان مثال در نظر گرفتن تست بار در صورتی که سایتی در حال راه اندازی یک کمپین بازاریابی جدید است، بنابراین می توانید مطمئن باشید که نرم افزار در برابر حجم های بزرگتر ترافیک پیش بینی شده مقاومت می کند.
اگر از PHP و لاراول استفاده می کنید، تست معماری یکی از جذاب ترین تست ها هست و می توانید از این مقاله آن را بررسی کنید، و این 9 تا از بهترین روش های تست نیز رعایت کنید.
2. تست جامع غیرممکن است
به همان اندازه که ما دوست داریم باور کنیم یا آرزو کنیم که حقیقت داشته باشد، تست همه چیز، همه ترکیبی از ورودی ها و پیش شرط ها، کاملاً غیرممکن است و همچنین می توانید استدلال کنید که تلاش برای انجام این کار استفاده کارآمد از زمان و بودجه نیست. . با این حال، یکی از مهارتهای تست، ارزیابی ریسکها و برنامهریزی تستهای خود در این زمینه است سپس میتوانید مناطق وسیعی را پوشش دهید، در حالی که مطمئن شوید که مهمترین موارد را تست میکنید. با برنامه ریزی و ارزیابی دقیق، پوشش تست شما می تواند عالی بماند و اطمینان لازم را در نرم افزار شما ایجاد کند، بدون اینکه نیازی به تست تک تک خطوط کد باشد.
3. تست زودهنگام باعث صرفه جویی در زمان و هزینه می شود
تست زودهنگام اساساً در چرخه عمر نرم افزار مهم است. این حتی میتواند به معنای تست الزامات قبل از شروع کدنویسی باشد، برای مثال - اصلاح مسائل در این مرحله بسیار سادهتر و ارزانتر از انجام این کار در پایان چرخه عمر محصول است، که تا آن زمان ممکن است نیاز باشد که کل بخشهای عملکردی دوباره اصلاح شوند.
تست زودهنگام نیز یک اصل اساسی چابک است، که تست را به عنوان یک فعالیت در کل می بیند، نه یک مرحله (که در روش سنتی در پایان است) زیرا حلقه های بازخورد مداوم سریع و به موقع را امکان پذیر می کند. هنگامی که یک تیم با موانع روبرو می شود، بازخورد اولیه یکی از بهترین راه ها برای غلبه بر این موانع است و تست کنندگان برای این امر ضروری هستند. تست را به عنوان «ارائهدهنده اطلاعات» در نظر بگیرید و نقشی ارزشمند.
اساسا، تست زودهنگام حتی می تواند به شما در جلوگیری از نقص در وهله اول کمک کند! برای آشنایی با توسعه تست محور TDD این مقاله جذاب را بررسی کنید.
4. نقص ها با هم خوشه می شوند
این ایده این است که برخی از اجزا یا ماژول های نرم افزار معمولاً دارای بیشترین تعداد باگ هستند یا مسئول اکثر خرابی های عملیاتی هستند. بنابراین، تست باید بر روی این مناطق متمرکز شود (متناسب با تراکم نقص مورد انتظار). اصل پارتو 80:20 را می توان اعمال کرد، 80 درصد نقص ها به دلیل 20 درصد کد است!
این به ویژه در مورد سیستم های بزرگ و پیچیده صادق است، اما تراکم نقص می تواند به دلایل مختلفی متفاوت باشد. مسائل به طور مساوی در کل سیستم توزیع نمی شوند و هر چه یک جزء پیچیده تر باشد، یا وابستگی های شخص ثالث بیشتر باشد، احتمال وجود نقص بیشتر است. به ارث بردن کدهای قدیمی و توسعه ویژگیهای جدید در کامپوننت های خاصی که دستخوش تغییرات مکرر هستند و بنابراین فرارتر هستند نیز میتواند باعث خوشهبندی نقص شود.
دانستن این موضوع می تواند برای تست شما بسیار ارزشمند باشد. اگر یک نقص در یک ماژول/منطقه خاص پیدا کنیم، احتمال زیادی وجود دارد که تعداد بیشتری را در آنجا کشف کنیم. برای مثال، شناسایی اجزای پیچیدهتر، یا مناطقی که وابستگیهای بیشتری دارند یا بیشتر در حال تغییر هستند، میتواند به شما کمک کند تست خود را روی این حوزههای خطرناک متمرکز کنید.
5. مراقب پارادوکس آفت کش ها باشید
استفاده مکرر از همان مخلوط آفت کش برای از بین بردن حشرات در طول کشاورزی به مرور زمان منجر به ایجاد مقاومت حشرات در برابر آفت کش می شود و در نتیجه آفت کش ها روی حشرات بی اثر می شوند. به طور مشابه با تست، اگر همان مجموعه تست های تکراری انجام شود، این روش برای کشف عیوب جدید بی فایده خواهد بود.. مهم است که تستهای خود را مرور کنید و سناریوهای خود را اصلاح یا اضافه کنید تا از بروز پارادوکس آفتکشها جلوگیری کنید، شاید از روشهای مختلف تست، روشها و رویکردهای موازی استفاده کنید.
تسترها نمی توانند به سادگی به تکنیک های تست موجود وابسته باشند. او باید به طور مستمر مراقب بهبود روش های موجود برای مؤثرتر کردن تست باشد. اما حتی پس از این همه عرق و تلاش سخت در تست، هرگز نمی توانید ادعا کنید که محصول شما بدون باگ است.
برای آشنایی با مزایا و رویکرد های تست واحد این مقاله از آنوفل را بررسی کنید. اگر تست خودکار را دوست دارید تجربه کنید این مقاله نیز بررسی کنید.
6. تست وابسته به زمینه است
تست همه چیز در مورد زمینه (کانتکست) است. روشها و انواع تستهای انجامشده میتواند کاملاً به زمینه نرمافزار یا سیستمها بستگی داشته باشد، برای مثال، یک وبسایت تجارت الکترونیک میتواند به انواع مختلف تست و رویکردهای یک برنامه API یا یک برنامه گزارشدهی پایگاه داده نیاز داشته باشد. آنچه را که تست می کنید همیشه روی رویکرد شما تأثیر می گذارد. همه نرم افزارهای توسعه یافته یکسان نیستند. بسته به نوع برنامه ممکن است از رویکرد، روششناسی، تکنیکها و انواع تستهای متفاوتی استفاده کنید.
7. عدم وجود خطا یک مغالطه است
اگر نرم افزار یا سیستم شما غیرقابل استفاده است (یا خواسته های کاربران را برآورده نمی کند) مهم نیست که چه تعداد نقص پیدا و برطرف شده است، هنوز غیر قابل استفاده است. بنابراین، از این نظر، مهم نیست که سیستم شما تا چه حد بدون باگ یا بدون خطا باشد. اگر قابلیت استفاده بسیار ضعیف است که کاربران قادر به پیمایش نیستند، یا و با الزامات تجاری مطابقت ندارد، با وجود داشتن باگ های کمی، شکست خورده است.
بنابراین، اجرای تستهایی که با نیازهای سیستم مرتبط هستند، مهم است. شما همچنین باید نرمافزار خود را با کاربران تست کنید، این کار را میتوان در برابر نمونههای اولیه (در مرحله تست قابلیت استفاده) انجام داد تا بازخوردی را جمعآوری کنید که میتواند برای اطمینان و بهبود قابلیت استفاده استفاده شود. به یاد داشته باشید، فقط به دلیل اینکه ممکن است تعداد کمی از باگ وجود داشته باشد، به این معنی نیست که نرم افزار شما قابل حمل است، برآورده کردن انتظارات و نیازهای مشتری به اندازه تضمین کیفیت مهم است.
برای آشنایی با 5 اصل تست نویسی واحد این مقاله جذاب را از دست ندهید.
نتیجه
به کارگیری این اصول متفکرانه در تست شما می تواند به شما کمک کند کارآمدتر و متمرکزتر شوید و حتی می تواند به بهبود کیفیت استراتژی کلی تست شما کمک کند. علاوه بر این، گاهی اوقات با به کارگیری یک اصل، می بینید که سایر اصول به طور طبیعی در جای خود قرار می گیرند. برای مثال، تست زودهنگام میتواند به کاهش خطای «عدم خطا» کمک کند، اگر تستکنندهها در سطح نیازمندیها درگیر باشند، میتوانید اطمینان حاصل کنید که نرمافزار با نیازها یا انتظارات مشتری مطابقت دارد.
همه این نکات را با هم ترکیب کنید و واقعاً می توانید با استفاده مؤثر و اقتصادی از زمان و تلاش خود به حداکثر کارایی برسید.