تست دستی خود را ارتقا دهید 🕵️

Summarize this content to 400 words in Persian Lang
تست دستی یک راه حل عالی برای نرم افزارهای کوچک و به سرعت در حال تکامل است. این به تیم اجازه می دهد تا روی ارائه ارزش تجاری تمرکز کند و در عین حال تلاش برای خودکارسازی را به حداقل برساند.با این حال، این شغلی است که به رغم سادگی ظاهری، به مهارت نیاز دارد. من بهعنوان یک آزمایشکننده تمام وقت کار کردهام و حتی پس از تغییر به نقش توسعهدهنده، به کار بر روی مهارتهای آزمایشی خود ادامه دادم تا با وقتم کارآمدتر شوم.
اینها نکاتی است که برای شما دارم در صورتی که نمیدانید چگونه آزمایش خود را به سطح بعدی ببرید، چه نقش شما باشد، چه میخواهید ویژگیهای با کیفیت بالاتری را به عنوان یک توسعهدهنده ارائه دهید یا فقط میخواهید شکافها را پر کنید. تیم شما
محصول را بشناسید، برنامه داشته باشید
اول از همه، یکی از بزرگترین نقاط قوت یک تستر دستی این است که آنها به طور منظم به برنامه نزدیک می شوند که گویی یک کاربر نهایی هستند. و البته، شناخت واقعی کاربر نهایی و محصول ضروری است. چه کسی قرار است از آن استفاده کند؟ کجا؟ برای انجام چه کاری؟
یکی از اصول تست نرم افزار (خوب) این است که تمام تست ها باید برنامه ریزی شوند. ما زمان و حوصله کافی برای آزمایش کامل هر گوشه از برنامه را نداریم، بنابراین سعی کنید همه چیزهایی را که باید آزمایش کنید مشخص کنید، مطمئن شوید که در زمینه های حیاتی دقیق تر هستید:
جایی که بیشترین ارزش را به کاربران ارائه می دهید
در ماژول های جدید
در مناطقی که در گذشته مشکل ساز بوده اند (ردیابی این موارد عالی است!)
در ماژولهایی که میدانید تعریف ویژگی به یک اندازه نبوده است یا توسعه آن با عجله انجام شده است
من نمی توانم به اندازه کافی روی این موضوع تاکید کنم، به خصوص اگر تیم شما یک آزمایش کننده تمام وقت نداشته باشد و شما نیاز به دستکاری بین وظایف مختلف داشته باشید، به شما این امکان را می دهد که با برنامه ریزی خود کارآمدتر و پس از گذراندن آزمون ها اعتماد به نفس بیشتری داشته باشید.
تلاش خود را متمرکز کنید
در حین آزمایش و برنامه «گم شدن» آسان است و در حین استفاده از ویژگیهای مختلف فقط سر و کله میزنید. در تجربه من، دانستن انواع مختلف تستهایی که انجام میدهید و نزدیک شدن به آنها با نیت روشن واقعاً مفید است. به عنوان مثال، اگر من پاسخگویی را آزمایش می کنم، تمام جریان را فقط به دنبال مشکلات رابط کاربری می گردم، و اگر لازم باشد منطق تجاری را نیز آزمایش کنم، دوباره کل جریان را بررسی می کنم، تا سعی نکنم همه چیز را به صورت یکجا انجام دهم. جارو زدن
در اینجا مرتبط ترین انواع آزمایشی است که من با آنها برخورد می کنم:
تست دود
این تستی است که بررسی می کند که آیا برنامه یا ماژول حتی شروع می شود یا خیر. این نوع تست باید خودکار باشد و اگر تست دود ناموفق باشد، توجه داشته باشید که ممکن است یک پرچم قرمز در این فرآیند باشد که باید مورد توجه قرار گیرد، زیرا ما حتی نمیتوانیم نسخهای را اجرا کنیم که شروع نمیشود.
تست سلامت
این یک بررسی سریع برای مشاهده در سطح بالایی است که آیا برنامه یا ماژول کار می کند یا خیر. اغلب برای بررسی اینکه آیا استقرار به درستی کار کرده و برنامه برای آزمایش بیشتر و عمدی آماده است یا خیر استفاده می شود. من دوست دارم یک آزمایش سریع عقل انجام دهم تا در وقت خود صرفه جویی کنم تا سناریوهای پیچیده ای را برای ویژگی هایی که حتی به طور کامل اجرا نشده یا دارای برخی خطاهای آشکار است آماده نکنم.
تست رگرسیون
پس از اصلاح کد، همه ماژول های مرتبط را بررسی می کنیم تا ببینیم آیا هیچ چیز غیرمنتظره ای نیز تغییر نکرده است (اگر B را اضافه کنیم، آیا A هنوز کار می کند؟). تست رگرسیون زمانی که برنامه رشد میکند بیشترین زمان را میگیرد و بهمنظور صرفهجویی در زمان تست دستی، هدف اصلی اتوماسیون است.
تست اکتشافی
این یک رویکرد بدون اسکریپت است که در آن مهارتها و خلاقیت آزمایشکننده به منظور یافتن راههای جدید برای شکستن برنامه یا یافتن گلوگاههای عملکرد مورد آزمایش قرار میگیرد. هدف این است که برنامه را به هر طریقی بهبود بخشید. این با “آزمایش میمون” بدنام متفاوت است به این معنا که آزمایش اکتشافی هنوز برنامه ریزی شده است و شما باید به درستی زمان را برای آن اختصاص دهید. از سوی دیگر، آزمایش میمون، فقط آزمایش برنامه است، اغلب بیهدف، برای هر زمانی که امیدوارید چیزی شکسته شود.اینجاست که من اکثر الزامات غیر کاربردی را بررسی می کنم، زیرا نوشتن سناریوهای آنها اغلب خسته کننده است.
تست عملکردی
تستهای اصلی، اینجاست که بررسی میکنیم همه معیارهای پذیرش رعایت شدهاند، برنامه کاری را که باید انجام میدهد و هر مورد مرزی را که فکر میکنیم پاک میکنیم. مهم است که این تستها برای ارجاع بیشتر به خوبی مستند شوند، بهویژه برای اینکه بتوانیم رگرسیونها را پیدا کنیم (یعنی: ما این سناریوها را بهعنوان «تستهای رگرسیون» دوباره اجرا میکنیم و متوجه میشویم که نتایج تغییر کرده است)
تست عملکرد
اینها تستهایی هستند که در آن بررسی میکنید برنامه میتواند حجم کاری مورد انتظار را مدیریت کند. اغلب باید تصمیم بگیرید که حجم کاری مورد انتظار چقدر است: آیا این همان کاری است که کاربران عادی انجام خواهند داد؟ یا همان چیزی است که برنامه اجازه می دهد؟
یک مثال واضح این است: شما یک بازار دارید و می توانید محصولاتی را به سبد خرید خود اضافه کنید. به عنوان یک کاربر معمولی، سعی میکنید مثلاً کمتر از 20 محصول در سبد خرید خود داشته باشید و سعی کنید برنامه به اندازه کافی سریع باشد. اما به احتمال زیاد اعتبار سنجی سخت محدودیت سبد خرید بسیار بالاتر است، شاید برنامه پس از محصول صدم عقب بماند.
هر دو دیدگاه مهم هستند و اولویت ها با تکامل محصول تغییر خواهند کرد، بخش مهم این است که بینش هایی در مورد محدودیت های برنامه به دست آوریم و آن را در ذهن داشته باشیم. فقط مطمئن شوید که هر محدودیتی که دارید، در صورت ظاهر شدن یک بازیگر بدخواه، کسب و کار را در معرض خطر قرار نمی دهد.
سازگاری
زمانی است که ما آزمایش می کنیم که برنامه در پلتفرم ها و دستگاه های مختلف کار می کند. اغلب نیازی به انجام آزمایشهای جامع از این نوع نیست، مگر برای ویژگیهای خاصی که پلتفرم ممکن است مرتبط باشد.
بهتر از تست های خودکار باشید
به خاطر داشته باشید که تستر دستی فقط یک جایگزین ارزانتر برای تستهای خودکار نیست. با آزمایش یک انسان، برنامه می تواند ارزش و بینش واقعی را ارائه دهد که هیچ اتوماسیونی نمی تواند جایگزین آن شود.یک تستر تحلیلی می تواند ابهامات و تناقضات را در مشخصات عملکردی پیدا کنید، جریان هایی را که درست به نظر نمی رسند را شناسایی کنید، با اطمینان طرح را آزمایش کنید و اهداف تجاری را که ماژول قصد دارد به آنها دست یابد در نظر داشته باشید.علاوه بر این، یافتن یک باگ یا یک نقطه بهبود میتواند فقط شروع کار باشد، یک آزمایشکننده درگیر در محصول میتواند به اولویتبندی، تعریف و، چرا که نه، در واقع اصلاح برخی موارد کمک کند.
با تیم خود کار کنید
در نهایت، ارتباط با همه نقش ها کلیدی است، در مورد چگونگی پیدایش هر ماژول بدانید. اگر بخشی از فرآیند عجله داشت یا دچار تغییرات دائمی شد، می توانید با تنظیم برنامه آزمایشی آن را جبران کنید. با داشتن بک لاگ باگ می توانید الگوهایی را بیابید و با توسعه دهندگان کار کنید تا به آنها کمک کنید بدهی های فنی اساسی را برطرف کنند. آموزش شما برای تشخیص موارد لبه ممکن است به تعریف ویژگیها برای توسعه آسانتر و نگهداری ارزانتر کمک کند. بهعنوان یک آزمایشکننده، میتوانید تیم را توانمند کنید تا با اطمینان محصولی باکیفیت ارائه کند، علیرغم مشکلات زیادی که ممکن است در طول توسعه ظاهر شود.
نتیجه گیری
تیمهایی در هر شکل و اندازهای وجود دارند و امیدوارم بتوانید چیزی مفید را برای کار خود به کار ببرید! من فقط می خواهم این یادداشت را به پایان برسانم و به این نکته اشاره کنم که به هیچ وجه فکر نمی کنم از آزمون های خودکار صرف نظر شود. آنچه من پیشنهاد می کنم ارتباط خوب است تا استراتژی های تست خودکار و دستی بتوانند به طور منسجم برای پر کردن شکاف یکدیگر عمل کنند.
تست دستی یک راه حل عالی برای نرم افزارهای کوچک و به سرعت در حال تکامل است. این به تیم اجازه می دهد تا روی ارائه ارزش تجاری تمرکز کند و در عین حال تلاش برای خودکارسازی را به حداقل برساند.
با این حال، این شغلی است که به رغم سادگی ظاهری، به مهارت نیاز دارد. من بهعنوان یک آزمایشکننده تمام وقت کار کردهام و حتی پس از تغییر به نقش توسعهدهنده، به کار بر روی مهارتهای آزمایشی خود ادامه دادم تا با وقتم کارآمدتر شوم.
اینها نکاتی است که برای شما دارم در صورتی که نمیدانید چگونه آزمایش خود را به سطح بعدی ببرید، چه نقش شما باشد، چه میخواهید ویژگیهای با کیفیت بالاتری را به عنوان یک توسعهدهنده ارائه دهید یا فقط میخواهید شکافها را پر کنید. تیم شما
محصول را بشناسید، برنامه داشته باشید
اول از همه، یکی از بزرگترین نقاط قوت یک تستر دستی این است که آنها به طور منظم به برنامه نزدیک می شوند که گویی یک کاربر نهایی هستند. و البته، شناخت واقعی کاربر نهایی و محصول ضروری است. چه کسی قرار است از آن استفاده کند؟ کجا؟ برای انجام چه کاری؟
یکی از اصول تست نرم افزار (خوب) این است که تمام تست ها باید برنامه ریزی شوند. ما زمان و حوصله کافی برای آزمایش کامل هر گوشه از برنامه را نداریم، بنابراین سعی کنید همه چیزهایی را که باید آزمایش کنید مشخص کنید، مطمئن شوید که در زمینه های حیاتی دقیق تر هستید:
- جایی که بیشترین ارزش را به کاربران ارائه می دهید
- در ماژول های جدید
- در مناطقی که در گذشته مشکل ساز بوده اند (ردیابی این موارد عالی است!)
- در ماژولهایی که میدانید تعریف ویژگی به یک اندازه نبوده است یا توسعه آن با عجله انجام شده است
من نمی توانم به اندازه کافی روی این موضوع تاکید کنم، به خصوص اگر تیم شما یک آزمایش کننده تمام وقت نداشته باشد و شما نیاز به دستکاری بین وظایف مختلف داشته باشید، به شما این امکان را می دهد که با برنامه ریزی خود کارآمدتر و پس از گذراندن آزمون ها اعتماد به نفس بیشتری داشته باشید.
تلاش خود را متمرکز کنید
در حین آزمایش و برنامه «گم شدن» آسان است و در حین استفاده از ویژگیهای مختلف فقط سر و کله میزنید. در تجربه من، دانستن انواع مختلف تستهایی که انجام میدهید و نزدیک شدن به آنها با نیت روشن واقعاً مفید است. به عنوان مثال، اگر من پاسخگویی را آزمایش می کنم، تمام جریان را فقط به دنبال مشکلات رابط کاربری می گردم، و اگر لازم باشد منطق تجاری را نیز آزمایش کنم، دوباره کل جریان را بررسی می کنم، تا سعی نکنم همه چیز را به صورت یکجا انجام دهم. جارو زدن
در اینجا مرتبط ترین انواع آزمایشی است که من با آنها برخورد می کنم:
تست دود
این تستی است که بررسی می کند که آیا برنامه یا ماژول حتی شروع می شود یا خیر. این نوع تست باید خودکار باشد و اگر تست دود ناموفق باشد، توجه داشته باشید که ممکن است یک پرچم قرمز در این فرآیند باشد که باید مورد توجه قرار گیرد، زیرا ما حتی نمیتوانیم نسخهای را اجرا کنیم که شروع نمیشود.
تست سلامت
این یک بررسی سریع برای مشاهده در سطح بالایی است که آیا برنامه یا ماژول کار می کند یا خیر. اغلب برای بررسی اینکه آیا استقرار به درستی کار کرده و برنامه برای آزمایش بیشتر و عمدی آماده است یا خیر استفاده می شود. من دوست دارم یک آزمایش سریع عقل انجام دهم تا در وقت خود صرفه جویی کنم تا سناریوهای پیچیده ای را برای ویژگی هایی که حتی به طور کامل اجرا نشده یا دارای برخی خطاهای آشکار است آماده نکنم.
تست رگرسیون
پس از اصلاح کد، همه ماژول های مرتبط را بررسی می کنیم تا ببینیم آیا هیچ چیز غیرمنتظره ای نیز تغییر نکرده است (اگر B را اضافه کنیم، آیا A هنوز کار می کند؟). تست رگرسیون زمانی که برنامه رشد میکند بیشترین زمان را میگیرد و بهمنظور صرفهجویی در زمان تست دستی، هدف اصلی اتوماسیون است.
تست اکتشافی
این یک رویکرد بدون اسکریپت است که در آن مهارتها و خلاقیت آزمایشکننده به منظور یافتن راههای جدید برای شکستن برنامه یا یافتن گلوگاههای عملکرد مورد آزمایش قرار میگیرد. هدف این است که برنامه را به هر طریقی بهبود بخشید. این با “آزمایش میمون” بدنام متفاوت است به این معنا که آزمایش اکتشافی هنوز برنامه ریزی شده است و شما باید به درستی زمان را برای آن اختصاص دهید. از سوی دیگر، آزمایش میمون، فقط آزمایش برنامه است، اغلب بیهدف، برای هر زمانی که امیدوارید چیزی شکسته شود.
اینجاست که من اکثر الزامات غیر کاربردی را بررسی می کنم، زیرا نوشتن سناریوهای آنها اغلب خسته کننده است.
تست عملکردی
تستهای اصلی، اینجاست که بررسی میکنیم همه معیارهای پذیرش رعایت شدهاند، برنامه کاری را که باید انجام میدهد و هر مورد مرزی را که فکر میکنیم پاک میکنیم. مهم است که این تستها برای ارجاع بیشتر به خوبی مستند شوند، بهویژه برای اینکه بتوانیم رگرسیونها را پیدا کنیم (یعنی: ما این سناریوها را بهعنوان «تستهای رگرسیون» دوباره اجرا میکنیم و متوجه میشویم که نتایج تغییر کرده است)
تست عملکرد
اینها تستهایی هستند که در آن بررسی میکنید برنامه میتواند حجم کاری مورد انتظار را مدیریت کند. اغلب باید تصمیم بگیرید که حجم کاری مورد انتظار چقدر است: آیا این همان کاری است که کاربران عادی انجام خواهند داد؟ یا همان چیزی است که برنامه اجازه می دهد؟
یک مثال واضح این است: شما یک بازار دارید و می توانید محصولاتی را به سبد خرید خود اضافه کنید. به عنوان یک کاربر معمولی، سعی میکنید مثلاً کمتر از 20 محصول در سبد خرید خود داشته باشید و سعی کنید برنامه به اندازه کافی سریع باشد. اما به احتمال زیاد اعتبار سنجی سخت محدودیت سبد خرید بسیار بالاتر است، شاید برنامه پس از محصول صدم عقب بماند.
هر دو دیدگاه مهم هستند و اولویت ها با تکامل محصول تغییر خواهند کرد، بخش مهم این است که بینش هایی در مورد محدودیت های برنامه به دست آوریم و آن را در ذهن داشته باشیم. فقط مطمئن شوید که هر محدودیتی که دارید، در صورت ظاهر شدن یک بازیگر بدخواه، کسب و کار را در معرض خطر قرار نمی دهد.
سازگاری
زمانی است که ما آزمایش می کنیم که برنامه در پلتفرم ها و دستگاه های مختلف کار می کند. اغلب نیازی به انجام آزمایشهای جامع از این نوع نیست، مگر برای ویژگیهای خاصی که پلتفرم ممکن است مرتبط باشد.
بهتر از تست های خودکار باشید
به خاطر داشته باشید که تستر دستی فقط یک جایگزین ارزانتر برای تستهای خودکار نیست. با آزمایش یک انسان، برنامه می تواند ارزش و بینش واقعی را ارائه دهد که هیچ اتوماسیونی نمی تواند جایگزین آن شود.
یک تستر تحلیلی می تواند ابهامات و تناقضات را در مشخصات عملکردی پیدا کنید، جریان هایی را که درست به نظر نمی رسند را شناسایی کنید، با اطمینان طرح را آزمایش کنید و اهداف تجاری را که ماژول قصد دارد به آنها دست یابد در نظر داشته باشید.
علاوه بر این، یافتن یک باگ یا یک نقطه بهبود میتواند فقط شروع کار باشد، یک آزمایشکننده درگیر در محصول میتواند به اولویتبندی، تعریف و، چرا که نه، در واقع اصلاح برخی موارد کمک کند.
با تیم خود کار کنید
در نهایت، ارتباط با همه نقش ها کلیدی است، در مورد چگونگی پیدایش هر ماژول بدانید. اگر بخشی از فرآیند عجله داشت یا دچار تغییرات دائمی شد، می توانید با تنظیم برنامه آزمایشی آن را جبران کنید. با داشتن بک لاگ باگ می توانید الگوهایی را بیابید و با توسعه دهندگان کار کنید تا به آنها کمک کنید بدهی های فنی اساسی را برطرف کنند. آموزش شما برای تشخیص موارد لبه ممکن است به تعریف ویژگیها برای توسعه آسانتر و نگهداری ارزانتر کمک کند. بهعنوان یک آزمایشکننده، میتوانید تیم را توانمند کنید تا با اطمینان محصولی باکیفیت ارائه کند، علیرغم مشکلات زیادی که ممکن است در طول توسعه ظاهر شود.
نتیجه گیری
تیمهایی در هر شکل و اندازهای وجود دارند و امیدوارم بتوانید چیزی مفید را برای کار خود به کار ببرید! من فقط می خواهم این یادداشت را به پایان برسانم و به این نکته اشاره کنم که به هیچ وجه فکر نمی کنم از آزمون های خودکار صرف نظر شود. آنچه من پیشنهاد می کنم ارتباط خوب است تا استراتژی های تست خودکار و دستی بتوانند به طور منسجم برای پر کردن شکاف یکدیگر عمل کنند.