تست نویسی در اندروید + 4 نکته در مورد آن
در توسعه نرم افزار، تست نقش مهمی در ایجاد اطمینان از عملکرد کد و عملیات مطابق انتظار و برآورده کردن الزامات دارد، تست اپلیکیشن را می توان به صورت دستی هم انجام داد، اما تست خودکار به دلیل کارایی و دقت آن بیشتر مورد استفاده قرار می گیرد، تست نوشتن فرآیند ایجاد تست های خودکار برای اطمینان از عملکرد نرم افزار است، در این مقاله به این می پردازیم که تست نویسی در اندروید چیست و چگونه در کاتلین تست بنویسیم، تا انتهای این مقاله با من همراه باشید.
تست نویسی در اندروید
تست نویسی در اندروید، فرآیند ایجاد تست های خودکار است تا اطمینان حاصل شود که نرم افزار مطابق با الزامات و عملکرد های مورد انتظار پیش می رود، تست نویسی به شناسایی اشکالات نرم افزار در مراحل اولیه توسعه کمک می کند و زمان و هزینه رفع آن ها را کاهش می دهد.
قواعد تست نویسی در اندروید
نکاتی که بهتر است برای تست نویسی در اندروید رعایت شود، شامل مواردی که در ادامه گفته می شود است:
- شناسایی و بررسی عملکردی که باید تست شود: اولین قدم در تست نویسی در اندروید و حتی بصورت کلی، شناسایی عملکردی است که باید آزمایش شود، این کار را می توان با بررسی نیازمندی ها یا سناریو های کاربری و شناسایی معیار های برنامه انجام داد.
- ایجاد Test case ها: هنگامی که عملکرد اپلیکیشن مشخص شد، باید Test case ایجاد کنید که تمام سناریوهای ممکن و حتی آیتم هایی که به ندرت استفاده می شوند را تحت پوشش قرار دهد، موارد تست باید جامع باشد و تمام ترکیبات ورودی ممکن را پوشش دهد.
- نوشتن کد تست: پس از انجام موارد بالا، باید کدی را برای خودکار سازی تست ها بنویسید، کد تست به زبان برنامه نویسی نوشته شده است و برای شبیه سازی ورودی کاربر و تایید خروجی استفاده می شود.
- تست ها را اجرا کنید: پس از نوشتن کد تست، باید تست ها را اجرا کنید تا بررسی کنید که عملکردی که اپلیکیشن ارائه می دهد مطابق انتظار کار می کند، برای اجرای خودکار تست ها می توان از ابزار های تست خودکار استفاده کرد.
تست نوشتن در اندروید و کاتلین:
Kotlin یک زبان برنامه نویسی مدرن است که به دلیل سینتکس ساده، null safety بودن و همگام با زبان جاوا در بین توسعه دهندگان اندروید محبوبیت پیدا می کند، کاتلین همچنین از نوشتن تست های واحد و تست های یکپارچه پشتیبانی می کند.
برای نوشتن تست در Kotlin، باید از یک فریم ورک تست استفاده کنید، محبوب ترین فریم ورک های تست در کاتلین Kotlin JUnit و Spec هستند؛ JUnit یک فریم ورک تست نویسی پر کاربرد برای جاوا و کاتلین است، در حالی که Spek یک فریم ورک تست نویسی خاص کاتلین است که نحوی رسا و خوانا تر را ارائه می دهد.
در اینجا نمونه ای از یک مورد آزمایشی نوشته شده در JUnit برای کاتلین را داریم:
import org.junit.Assert.* import org.junit.Test class MyClassTest { @Test fun `test myFunction`() { val myClass = MyClass() val result = myClass.myFunction(2, 3) assertEquals(5, result) } } class MyClass { fun myFunction(a: Int, b: Int): Int { return a + b } }
در این مثال، ما یک کلاس MyClass داریم که دارای یک متد myFunction است که دو پارامتر عدد صحیح را می گیرد و مجموع آن ها را بر می گرداند، ما یک کلاس مختص تست نویسی با نام MyClassTest ایجاد کرده ایم که حاوی تست برای myFunction است، متد تست یک نمونه از کلاس MyClass ایجاد می کند و متد myFunction را با دو عدد صحیح فراخوانی می کند، سپس با استفاده از روش assertEquals تأیید می کند که نتیجه برابر با مقدار مورد انتظار است.
در بخش زیر یک نمونه از تست نویسی با Spek را داریم که برای همان کلاس نوشته شده است:
import org.spekframework.spek2.Spek import org.spekframework.spek2.style.gherkin.Feature import kotlin.test.assertEquals object MyClassSpec: Spek({ Feature("MyClass") { val myClass = MyClass() Scenario("myFunction") { val result = myClass.myFunction(2, 3) Then("the result should be 5") { assertEquals(5, result) } } } }) class MyClass { fun myFunction(a: Int, b: Int): Int { return a + b } }
در این مثال، ما از فریم ورک تست Spek برای نوشتن تست استفاده کرده ایم، ما یک شی Spek MyClassSpec ایجاد کرده ایم که بخش Feature عملکرد مورد آزمایش را تعریف می کند و بلوک Scenario سناریوی خاصی را تعریف می کند، نمونه ای از کلاس MyClass ایجاد می کنیم و متد myFunction را با دو عدد صحیح فراخوانی می کنیم و سپس از متد assertEquals استفاده می کنیم تا بررسی کنیم که نتیجه برابر با مقدار مورد انتظار است.
مقاله پیشنهادی: null safety چیست؟
یکی از مزایای استفاده از Spek این است که یک نحو خوانا و رسا برای نوشتن تست ها ارائه می دهد، نحو به سبک Gherkin که در بلوک های Feature و Scenario استفاده می شود، درک هدف هر تست در اندروید را آسان تر می کند.
نکات تست نویسی در اندروید
در ادامه برخی از بهترین روش ها برای نوشتن تست ها در کاتلین آورده شده است:
کد تست را جدا از کد تولید نگه دارید: کد تست باید جدا از کد تولید نگهداری شود تا از به هم ریختگی و مشکلات نگهداری جلوگیری شود، توصیه می شود برای فایل های آزمایشی یک فهرست آزمایشی جداگانه ایجاد کنید.
از اسم تست توصیفی استفاده کنید: اسم هایی که از آن ها در تست استفاده می کنید باید توصیفی باشند و نشان دهند که چه عملکردی در حال آزمایش است، این امر درک هدف هر مورد در تست نویسی در اندروید را آسان تر می کند.
از مولدهای داده تستی استفاده کنید: از مولدهای داده تستی می توان برای تولید مقادیر ورودی تصادفی یا حاشیه ای برای آزمایش ها استفاده کرد، این کمک می کند تا اطمینان حاصل شود که تست ها همه ورودی ممکن را پوشش می دهند.
موارد کم دسترس در تست: تست ها باید همه موارد و آیتم های درون یک برنامه را پوشش دهند تا اطمینان حاصل شود که نرم افزار در همه سناریو ها به درستی عمل می کند.
تست یکپارچه سازی با Dependency های خارجی: تست ها باید ادغام با Dependency های خارجی مانند پایگاه های داده، API ها و کتابخانه ها را نیز پوشش دهند، این به شناسایی مشکلات مربوط به ادغام در مراحل اولیه توسعه کمک می کند.
تست ها را به طور مکرر اجرا کنید: تست ها باید به طور مکرر در طول توسعه اجرا شوند تا مشکلات را زودتر شناسایی کرده و اطمینان حاصل شود که کد مطابق انتظار عمل می کند.
تفاوت تست نویسی در کاتلین و جاوا:
در حالی که کاتلین و جاوا هر دو زبان های مبتنی بر JVM هستند، تفاوت هایی در نحوه نگارش آزمون ها در هر زبان وجود دارد، در ادامه به برخی از تفاوت های اصلی در این مورد می پردازیم:
Null safety: کاتلین دارای ویژگی های Null safety داخلی است، این مزیت میتواند نوشتن تست ها را آسان تر کند، زیرا نیازی نیست به اندازه جاوا نگران مقادیر null باشید.
قابلیت همکاری: کاتلین کاملاً با جاوا سازگار است، به این معنی که می توانید تست ها را به هر یک از زبان ها بنویسید و از آنها در یک پروژه با هم استفاده کنید.
مختصر بودن: کاتلین سینتکس مختصر و ساده تری نسبت به جاوا دارد که می تواند کد تست را خوانا تر و نوشتن را آسان تر کند.
فریم ورک های تست نویسی: کاتلین دارای فریم ورک های تست نویسی است که مختص خودش هستند، مانند Spek، که نحوی گویا تر ارائه می دهند. با این حال، اکثر فریم ورک های تست جاوا مانند JUnit نیز می توانند در کاتلین استفاده شوند.
تست نوشتن بخش مهمی از توسعه نرم افزار است، چرا که کمک می کند تا اطمینان حاصل شود که کد مطابق انتظار عمل می کند و الزامات را برآورده می کند، تست نویسی در کاتلین شبیه تست نویسی در جاوا است، اما کاتلین دارای مزایایی مانند نال سیفتی و سینتکس مختصر تر است.
استفاده از بهترین روش ها برای نوشتن تست مانند جدا نگه داشتن کد تست از کد تولید، استفاده از نام های تست توصیفی و… میتواند به اطمینان از جامع و مؤثر بودن تست های شما کمک کند.
با پیروی از بهترین شیوه ها و استفاده از فریم ورک های تست نویسی مناسب، میتوانید تست هایی با کیفیت بالا برای اپلیکیشن خود بنویسید و مطمئن شوید که نرمافزار شما مطابق انتظار عمل میکند.
از این که تا انتهای مقاله تست نویسی در اندروید نوری آکادمی با من همراه بودید سپاس گزارم❤.