آزمایش پشتیبان یک برنامه وب، بخش مهمی از فرآیند توسعه و هرگونه نظارت مستمر است. همچنین، به تست ظاهری نگاه کنید.
توسعه آزمایش محور
در توسعه تست محور (TDD)، الزامات برنامه قبل از اجرای کامل برنامه به موارد آزمایشی ترجمه می شود. در طول توسعه، این تستها ابتدا نوشته میشوند و بهطور متوالی با ساخت اپلیکیشن اجرا میشوند. الزامات واضح (یعنی موارد آزمایش) اطمینان حاصل می کند که کد نهایی به خوبی ساختار یافته است، همه الزامات را برآورده می کند و صحیح است، که به ویژه در مراحل اولیه توسعه مهم است.
یکپارچه سازی مداوم و تست خودکار
آزمایش یکپارچه سازی پیوسته (CI) به طور خودکار آزمایش هایی را در برابر هرگونه تغییر کد اجرا می کند، مانند هنگام بررسی کد یا زمانی که کد در مخزن کد شما ادغام شده است. تست های خودکار کیفیت کلی و اعتماد به کد ارسالی را با کاهش خطرات شکستگی یا رگرسیون در طول توسعه بهبود می بخشد. توصیه می شود برای اطمینان از سلامت برنامه خود یک سیستم تست خودکار برای محیط خود راه اندازی کنید. از سیستمی استفاده کنید که توسط معماری، پلتفرم و زبان شما پشتیبانی می شود و به طور یکپارچه در خط لوله توسعه شما یکپارچه شده است. به عنوان مثال، از GitHub Actions برای یک گردش کار CI یا یک خط لوله CI سفارشی ساخته شده در فضای ابری ، که برای پیکربندی شما سفارشی شده است، استفاده کنید.
درباره اصول تست خودکار و نحوه بهبود تستهای خود بیشتر بیاموزید. درباره آزمایش یکپارچه سازی مداوم و بهترین شیوه ها برای پیاده سازی، راه اندازی و اندازه گیری موفقیت بیشتر بیاموزید.
به عنوان گام بعدی، یک خط لوله تحویل خودکار خودکار (CD) را در نظر بگیرید تا تغییرات و بهروزرسانیها را به طور خودکار در برنامه شما اعمال کند.
تست واحد
تست واحد به آزمایش قطعات کوچک و مستقل از کد به صورت مجزا اشاره دارد. از چارچوب تست واحدی استفاده کنید که برای زبان یا فریم ورک باطن شما توصیه و محبوب است. به عنوان مثال، برای یک برنامه یکپارچه مبتنی بر جاوا، از JUnit استفاده کنید، یا برای یک برنامه بدون سرور مبتنی بر جاوا اسکریپت (از جمله Dart یا TypeScript)، از یک چارچوب ساخته شده برای آزمایش جاوا اسکریپت، مانند Jest استفاده کنید.
اکثر فریم ورک های باطن مدرن دارای منابع اختصاصی برای آزمایش هستند. برای خودکارسازی تست، این ویژگی ها را در خط لوله CI خود ادغام کنید. اطمینان حاصل کنید که آزمون های واحد شما پوشش کد خوبی از برنامه شما ارائه می دهد. اکثر چارچوبهای آزمایشی ویژگیهایی را برای تجزیه و تحلیل و گزارش پوشش تست شما ارائه میکنند و امکان ادغام در خط لوله ساخت شما را فراهم میکنند.
تست یکپارچه سازی
تست یکپارچه سازی به آزمایش ماژول های بزرگتر یا بخش هایی از برنامه شما با هم اشاره دارد. در مقایسه با تست واحد (که بر بخشهای جداگانه کد تمرکز میکند)، تست یکپارچهسازی بر ادغام بخشهای جداگانه معماری شما متمرکز است. این همچنین ممکن است شامل جریانهای سرتاسری باشد که مراحل و ماژولهای متعدد را در سراسر برنامه پوشش میدهد.
آزمایشهای یکپارچهسازی ممکن است ماژولهای مختلفی از برنامه شما را پوشش دهند که ممکن است به تعامل با سرویسهای خارجی مانند ذخیرهسازی داده، سیستمهای فایل یا پرداختها نیاز داشته باشند. ساختار برنامه خود را برای پشتیبانی از انتزاعات برای این سرویس ها از طریق تزریق وابستگی یا ویژگی های مشابه ارائه شده توسط فریمورک باطن خود در نظر بگیرید.
تست رفتار و عملکرد
با نزدیک شدن به باطن (یا ماژول ها یا اجزای جداگانه) به عنوان یک جعبه مات، آزمایش عملکردی بر ورودی و خروجی سیستم تمرکز می کند. در حالی که آزمایش رفتاری ممکن است برای قسمت جلویی رایجتر باشد، اما نقشی حیاتی در تأیید یکپارچگی انتها به انتها یک سیستم باطنی بازی میکند. این نوع تست ها تایید می کنند که سیستم به ورودی های مختلف همانطور که انتظار می رود واکنش نشان می دهد و رفتار می کند.
تست رگرسیون
تست رگرسیون به تست هایی اطلاق می شود که تأیید می کنند برنامه همچنان مطابق انتظار عمل می کند. آزمایشهایی که قبلاً با موفقیت انجام شدهاند برای هرگونه تغییر جدید مجدداً اجرا میشوند تا اطمینان حاصل شود که تغییرات هیچ مشکل قبلی را مجدداً معرفی نکردهاند. از آنجایی که باگها در یک برنامه رفع میشوند، تستهای واحد یا یکپارچهسازی باید اضافه شوند تا اطمینان حاصل شود که باگ تکرار نمیشود. آزمایشهای رگرسیون باید در آزمایشهای معمول و ساخت خط لوله ادغام شوند.
تست دود
تست دود که به آن تست تأیید ساخت نیز میگویند، بر تأیید حیاتیترین عملکردهای برنامه باطن شما تمرکز دارد. فراتر از تست یکپارچه سازی، که برخی از ویژگی ها و وابستگی های خارجی را خلاصه می کند، تست دود موارد استفاده حیاتی را برای برنامه شما پوشش می دهد. تست دود می تواند به عنوان یک لایه اضافی از تأیید قبل از ارتقاء یک برنامه کاربردی به محیط مرحله بندی برای اطمینان از رفتار دقیق عمل کند. تستهای دود ممکن است شامل تستهای واحد خودکار یا تستهای عملکردی دستی باشد که توسط یک تیم QA انجام میشود.
محیط های تولید و صحنه
یک محیط صحنهسازی کپیای از محیط تولید شما است که برای سهولت در آزمایش، جعبهبندی شده است. استقرار اختصاصی خطر مشکلات مربوط به محیط تولید را کاهش می دهد و انجام تضمین کیفیت را آسان تر می کند. محیط مرحله به شما امکان می دهد سیستمی نزدیک به محیط تولید زنده آزمایش کنید.
داشتن یک کپی 1 به 1 از محیط تولید ممکن است به دلیل عواملی مانند هزینه یا پیچیدگی معماری backend امکان پذیر نباشد. در نظر بگیرید که چه بخشهایی از backend مهمترین هستند و آنها را برای یک محیط صحنهسازی بهینه کنید.
آزمایش در برابر دادههای مورد استفاده در تولید، یک مزیت بزرگ برای آزمایش نحوه رفتار برنامه با دادههای دنیای واقعی است. حتماً پیامدهای حفظ حریم خصوصی و نیازهای ذخیرهسازی دادهها را برای چنین محیطی در نظر بگیرید و دادههای مورد استفاده توسط سیستم پشتیبان خود را با دقت طراحی کنید. دسترسی به چنین محیطی باید به شدت کنترل شود، به خصوص اگر از داده های تولید استفاده شود.
مقیاس سیستم خود را در نظر بگیرید و اینکه آیا یک محیط ایستاده برای برنامه شما مناسب است یا خیر. محیطهای استیجینگ که میتوانند بهطور خودکار از طریق یک سیستم تحویل مداوم مستقر شوند، فرصتهای بیشتری را برای آزمایش ساختهای روزانه یا هفتگی و بررسی دقیقتر آنها قبل از انتشار ارائه میدهند.
رویکرد دیگر این است که بیشتر به آزمایشهای یکپارچهسازی مداوم و سیستمهای خودکار تکیه کنیم تا یک محیط مرحلهبندی کاملاً مستقر. گردش کار، سلامت سیستم، پوشش کد و الزامات فنی تیم خود را در نظر بگیرید.