تست بدون منبع QA

آیا می توان فقط با توسعه دهندگان و BA و فاقد منبع QA آزمایش نرم افزار نرم افزاری را انجام داد؟

در اینجا دو تفکر وجود دارد:

یکی این اعتقاد است که همه اشکالات مربوط به کد است و اگر درصد بسیار بالایی از تست را برای کد خود دارید ، در اصل شما نباید اشکالی داشته باشید. همه ما بعنوان آزمایشگر می دانیم که این درست نیست!


اعتقاد دیگر این است که شما تست واحد کافی را انجام می دهید و همچنین آزمایشات پذیرش سیستم و کاربر را برای اطمینان از مناسب بودن برنامه انجام می دهید. اگرچه این ایده خوبی به نظر می رسد ، اما عملی نیست زیرا توسعه دهندگان باید کدگذاری ویژگی های جدید را شروع کنند!

هر دوی این باورها افراطی هستند.


آزمایش کد خود می تواند م beثر باشد ، زیرا به عنوان یک توسعه دهنده می دانید کدام قسمت از کد شما پیچیده است و به احتمال زیاد باگ است ، بنابراین شما بر روی آن قسمت تمرکز می کنید. همچنین ، با دانستن اینکه دیگر QA وجود ندارد ، مجبور هستید که همانطور که یکی از توسعه دهندگان می گوید ، کد کیفیت را بنویسید

در اولین کارم ، QA نداشتم. این من بودم که مطمئن شدم کد خودم قبل از انتشار از کیفیت کافی برخوردار است ، و این جنبه من را چنان وحشت زده کرد که یاد گرفتم کد کیفیت را بنویسم (که در واقع به این معنی است که شما کد خود را کاملاً آزمایش می کنید و کیفیت QA خود را انجام می دهید).

آیا آزمایش توسعه دهنده کافی است؟

من معتقدم که این یک اقدام خوب برای تشویق توسعه دهندگان نرم افزار به مالکیت کیفیت کد خودشان است ، با این حال وقتی کد خود را آزمایش می کنید ، بیش از حد ممکن است کل دسته از اشکالات را از دست بدهید.

شما می توانید در گرفتن انواع اشکالاتی که فکر می کنید بسیار موثر باشید ، اما در وهله اول همیشه این اشکال ساده ترین اشکال است. آزمونهایی که برای خود می نویسید ، هرگز به خوبی قادر به جلب اشتباه در پیش فرضهای شما در مورد آنچه که کد باید انجام دهد ، انواع ورودی هایی که برای کنترل آنها لازم است ، و غیره می شود. از همان مجموعه فرضیات شروع نمی کنم.


کار به عنوان تستر اتوماسیون به این معنی بود که من مجبورم همزمان روی آزمایش و کدگذاری تمرکز کنم و غالباً دست و پنجه نرم می کردم! هنگامی که من تست ها را کد می زدم ، فقط می خواستم اطمینان حاصل کنم که کد اجرا می شود و آزمون را پاس می کنم ، در مورد آزمایش واقعی خیلی اذیت نمی شدم زیرا تمرکز اصلی من روی کدگذاری بود. به زودی فهمیدم که تست های بی فایده را که ارزش خاصی ندارند ، خودکار می کنم.

نکته مهم دیگری که باید توجه داشته باشید این است که تست واحد فقط خطاهای برنامه نویس در کد را می گیرد ، تست واحد خرابی در برنامه را تشخیص نمی دهد ، به این معنی که اگر 100٪ کد داشته باشید ، این به معنای یک برنامه رایگان اشکال نیست.

اگرچه همیشه لازم است که کد شخصی خود را قبل از انتقال از طریق تست واحد آزمایش کنید ، اما مهم است که از دیدگاه رفتاری ، آن دسته دوم را نیز به آن نگاه کنید. اغلب اوقات ما خیلی به کد نزدیک هستیم تا بتوانیم آن را به درستی مورد ضرب و شتم قرار دهیم و آن را در معرض موارد واقعاً عجیب و غریب قرار دهیم ، و افراد دارای کیفیت خوب کاملاً در انجام این کار مهارت دارند آزمایش در سطح سیستم توسط مجموعه دیگری از کاربران مانند آزمایشگران اغلب می تواند اشکالات بسیار جالبی را نشان دهد.

همچنین ، همه چیز در مورد آزمایش عملکرد نیست. ما باید در مورد تست عملکرد ، آزمایش امنیت ، آزمایش قابلیت استفاده و غیره نگران و نگران باشیم ، اگر ما بخواهیم یک نرم افزار با کیفیت بالا منتشر کنیم این مورد لازم است.


چرا ما هنوز به QA احتیاج داریم؟

آزمایشگران گاهی اوقات به عنوان تنگنا برای کل خط لوله انتقال شناخته می شوند. آیا اگر همه چیز بدون دخالت دستی و بدون آزمایشگرهایی که برای جلوگیری از انتشار اشکال ایجاد می کنند ، خودکار باشد خیلی بهتر نیست؟

بخشی از مشکل هنگامی که آزمایشگران به عنوان تنگنا شناخته می شوند ، عدم مالکیت کیفیت در بین توسعه دهندگان است. اگر همه واقعاً احساس می کردند که مسئول کیفیت محصول هستند (نه فقط کد) ، توسعه دهندگان و آزمایش کنندگان برای رسیدن به همان هدف تلاش می کنند.

آزمایش کنندگان می توانند با توسعه دهندگان برای نوشتن تست های واحد بهتر و توسعه دهندگان می توانند به تسترها در نوشتن چک های خودکار کمک کنند و همچنین آزمایش کنندگان را در مورد معماری برنامه آموزش می دهند تا بتوانند آزمایش های خوبی را برای یافتن مناطقی که در هنگام آزمایش سیستم ممکن است شکسته شود ، طراحی کنند.

در یک جهان ایده آل ، آزمایش کنندگان نباید هیچ نقصی پیدا کنند ، یا حداقل نقص های بی اهمیت. وقتی 'تیم QA' وجود دارد که وظیفه آنها یافتن نقص است ، توسعه دهندگان وسوسه انگیز هستند که فقط به آزمایشگرها اعتماد کنند تا تمام نقص ها را پیدا کنند در حالی که توسعه دهندگان بر توسعه و کدگذاری تمرکز دارند.


در حالی که اقدام یاهو در حذف QA و بخش آزمایش توسعه دهندگان را ترغیب می کند تا از کیفیت محصول برخوردار شوند ، اما هنوز برای اطمینان از یک محصول قوی آنقدر خوب نیست. با این اوصاف ، حتی با وجود یک گروه از آزمایشگران ، شما هنوز هم نمی توانید یک نرم افزار بدون اشکال را تضمین کنید ، اما آنچه مهم است این است که اطمینان حاصل کنید که از دیدگاه های مختلف و از دیدگاه های مختلف به این نرم افزار نگاه می کنید و در اینجاست که منافع واقعی داشتن عملکرد QA خوب (در مقابل تیم QA) وجود دارد.

آزمایش کنندگان می توانند اطمینان حاصل کنند که توسعه دهندگان بهترین روش های تضمین کیفیت را دنبال می کنند و در طراحی آزمایش های فنی و بازرگانی کمک می کنند تا مهمترین اشکالات را قبل از انتشار نرم افزار شناسایی کنند.