اگر شما جزو دولوپرهایی هستید که در حین پیادهسازی پروژههای نرمافزاری اقدام به نوشتن Automated Test میکنید، بایستی بدانید که این کار بسیار روند توسعهٔ نرمافزار شما را اثربخش میسازد و اگر هم جزو آن دسته از دولوپرهایی هستید که قبل از نوشتن کدهای اصلی، ابتدا به ساکن اقدام به نوشتن تست میکنید، بایستی به شما تبریک گفت؛ اما در عین حال سؤال اینجا است که آیا تستهایی که مینویسید خوب هستند؟
برای یافتن پاسخ به این سؤال، بایستی از خود بپرسید که «تستهای نرمافزاری برای چه کسی نوشته میشوند؟» و چنانچه پاسخ به این سؤال چیزهایی همچون «برای خود دولوپر» یا «برای کامپایلر» باشد، این حاکی از آن است که تستهای خوبی ننوشتهاید!
در حقیقت، یک تست نرمافزاری خوب تستی است که به منزلهٔ مستندات پروژه تلقی میگردد و حاکی از آنند که سورسکد چگونه کار میکند. در واقع تستها:
- نقطهٔ شروع اپلیکیشن را به هر دولوپری نشان میدهند.
- کاربرد نرمافزار را برای هر دولوپری تشریح میکنند.
- نتایج قابل انتظار را به هر دولوپری نشان میدهند.
بسته به نوع کاربرد، ما نیاز داریم تا تستهای مختلفی بنویسیم. همچنین دولوپر دیگری که قرار است روی سورسکد ما کار کند، بایستی با مد نظر داشتن سه نکتهٔ فوق، بتواند دقیقاً پی به نوع عملکرد نرمافزار ببرد. از سوی دیگر، هر تست نرمافزاری باید به وضوح رابطهٔ علت-معلولی مابین این سه بخش را شرح دهد.
در حین طراحی تستهای نرمافزاری، حتماً اسمهایی بامسمی برای آنها در نظر بگیرید؛ از سوی دیگر، کاربرد هر تستی بایستی کاملاً مشخص باشد تا دیگر دولوپرها به منظور درک ماهیت تست، مجبور به مهندسی معکوس کردن نباشند.
تست کردن تستها
یک راهکار خوب برای اطمینان حاصل کردن از این که هم سورسکد اصلی و هم تستها به خوبی کار میکنند، تست کردن تستها است بدین صورت که از عمد باگهایی در سورسکد اصلی پروژه ایجاد کرده و تستها را اجرا کنید تا اطمینان حاصل کنید که باگها خیلی سریع توسط تستها یافت میشوند.
همچنین اطمینان حاصل کنید که اکسپشنها و ارورهای معناداری در معرض دید دولوپر قرار میگیرد و دولوپر به سادگی با نگاه کردن به ارور، متوجهٔ ریشهٔ باگ خواهد شد.