کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Testing اندروید

 

clip_image001

دوره آموزش برنامه نویسی اندروید

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

آموزش تستینگ اندروید

چارچوب اندروید شامل یک چارچوب تستینگ جامع می شود که به شما کمک می کند تا برنامه ی خود و ابزار SDK را از همه ی جنبه ها، شامل ابزاری برای تنظیم و اجرای برنامه های تست، امتحان کنید. اینکه شما در Eclipse با ADT کار می کنید یا در حال کار از روی خط دستور می باشید، SDK در یک مقلد یا دستگاه مورد هدف به شما کمک می کند تا تست های خود را تنظیم و اجرا کنید.

ساختار تست

ساختمان اندروید و ابزار تست پذیرفته اند که پروژه های تست در یک ساختار استاندارد از تستها، گروه های مورد تست، پروژه های تست و پکیج های تست سازماندهی شده اند.

ابزار تستینگ در اندروید

ابزار بسیاری می توانند برای تستینگ برنامه های اندروید استفاده شوند. برخی از آنها رسمی هستند مانند Junit,Monkey  و برخی ابزار گروه سوم هستند که می توانند برای تست برنامه های اندروید استفاده شوند. در این فصل قصد داریم این دو ابزار را برای تست برنامه های اندروید توضیح دهیم.

  1. JUnit
  2. Monkey

JUnit

شما می توانید از JUnit TestCase برای انجام تستینگ های واحد روی گروهی که Android APIs را فرانمی خواند، استفاده کنید. مورد تست نیز گروه پایه برای AndroidTestCase می باشد که می توانید برای تست آبجکت های وابسته ی اندروید از آن استفاده کنید. علاوه بر ارائه ی چارچوب JUnit، مورد تست اندروید موارد دیگری همچون تنظیمات خاص اندروید، teardown و روش های کمکی ارائه می دهد.

برای استفاده از TestCase، گروه خود را با گروه TestCase گسترش داده و روشی را به نام setUp() اجرا کنید، که ترکیب آن به شکل زیر می باشد.

public class MathTest extends TestCase {
       
protected double fValue1
;
       
protected double fValue2
;

       
protected void
setUp() {
               
fValue1= 2.0
;
               
fValue2= 3.0
;
                }
                }

برای هر تست روشی را اجرا کنید که با عضو ثابت به شکل متقابل عمل می کند. نتایج قابل انتظار را با بیانیه هایی بررسی کنید که با فراخوانی assertTrue(String, boolean) با یک Boolean مشخص شده اند.

public void testAdd() {
       
double result= fValue1 + fValue2;
        assertTrue(result ==
5.0
);
        }

این روش مقادیر قابل انتظارتان را از یک تست با نتایج واقعی مقایسه می کند و اگر مقایسه ناموفق باشد، یک استثنا وارد می کند.

زمانی که روش ها تعریف شدند، می توانید آن ها را اجرا کنید. ترکیب آن را می توانید درزیر ببینید.

TestCase test= new MathTest("testAdd");
        test.run();

Monkey

UI/Application Exerciser Monkey که معمولا monkey نامیده می شود، یک ابزار command-line (فرمان خطی)  می باشد که جریان های دروغین- تصادفی از فشار دادن کلیدها، لمس کردن ها و حرکات مربوط به یک دستگاه را ارسال می کند. شما می توانید آن را با ابزار Android Debug Bridge (adb) اجرا کنید.

شما از آن برای stress-test  برنامه ی خود و گزارش خطاها استفاده می کنید. می توانید جریانی از رویدادها را با اجرای ابزار، هر زمان با همان شماره ی تصادفی، تکرار کنید.

ویژگی های Monkey 

Monkey دارای ویژگی های زیادی می باشد، اما همه ی آنها می توانند در این چهار مولفه خلاصه شوند.

1)     گزینه های پیکره بندی اصلی

2)     محدودیت های عملیاتی

3)     نوع رویدادها و تکرار آنها

4)     گزینه های عیب یابی

کاربرد monkey

برای استفاده از monkey ، یک پیام واره ی دستور باز کرده و در مسیر زیر پیش بروید.

android->sdk->platform-tools

زمانی که در مسیر هستید، دستگاه خود را به کامپیوتر متصل کنید و فرمان زیر را اجرا کنید.

adb shell monkey -v 100

این فرمان می تواند شامل مراحل زیر باشد.

adb - Android Debug Bridge ابزاری است که برای اتصال و ارسال فرمان ها از دسک تاپ لب تاب یا کامپیوتر به دستگاه تلفن اندروید شما استفاده می شود.

shell – shell یک اینترفیس روی دستگاه می باشد که دستورات ما را به زبان دستورات سیستم ترجمه می کند.

monkey – monkey ابزاری برای تستینگ می باشد.

V- v مخفف روش verbose می باشد.

100 عدد تکرارها و یا تعداد رویدادهایی است که قرار است برای تستینگ ارسال شوند.

این مسئله در تصویر هم نشان داده شده است.

در دستور بالا ابزار monkey را روی برنامه ی  UI پیش فرض اندروید اجرا کنید. اکنون در اینجا کارهای لازم برای اجرای آن روی برنامه ی خود را مشاهده می کنید.

ابتدا کد مثال را که در بخش مثال دستگاهتان ارائه شده، اجرا کنید. پس از اجرا مراحل کاربرد monkey را دنبال کرده و در انتها این فرمان را تایپ کنید.

adb shell monkey -p com.example.test -v 500‎‎

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

مثال

این مثال استفاده از testing را توضیح می دهد. این مثال یک برنامه ی پایه ایجاد می کند که می تواند برای monkey استفاده شود.

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

مراحل

توضیحات

1

برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان Test  تحت بسته ی com.example.test نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.

2

فایل src/MainActivity.java را برای افزودن کد فعالیت تغییر دهید.

3

لی اوت XML فایل res/layout/activity_main.xml را تغییر دهید و اگر لازم است مولفه ی GUI به آن اضافه کنید.

4

فایل src/MainActivity2.java را برای افزودن کد فعالیت ایجاد کنید.

5

لی اوت XML فایل res/layout/activity_main_activity2.xml را تغییر دهید و اگر لازم است مولفه ی GUI به آن اضافه کنید.

6

فایل res/values/string.xml را تغییر داده و مولفه های رشته ی لازم را به آن اضافه کنید.

7

برنامه را اجرا کنید و یک دستگاه اجرایی اندروید انتخاب کرده و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.

در اینجا محتوای src/com.example.test/MainActivity.java می باشد.

package com.example.test;
       
import android.app.Activity;
       
import android.content.Intent;
       
import android.os.Bundle;
       
import android.view.Menu;
       
import android.view.View;
public class MainActivity extends Activity {
           @Override
          
protected void onCreate(Bundle savedInstanceState) {
                     
super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main);
                   }
                  
public void activity2(View view){
                      Intent intent =
new Intent(this,com.example.test.MainActivity2.class);
                      startActivity(intent);
                   }
                   @Override
          
public boolean onCreateOptionsMenu(Menu menu) {
                     
// Inflate the menu; this adds items to the action bar if it is present.
               
      getMenuInflater().inflate(R.menu.main, menu);
                     
return true;
                   }
                }

در اینجا محتوای src/com.example.test/MainActivity2.java می باشد.

package com.example.test;
       
import android.app.Activity;
       
import android.content.Intent;
       
import android.os.Bundle;
       
import android.view.Menu;
       
import android.view.View;
public class MainActivity2 extends Activity {
           @Override
          
protected void onCreate(Bundle savedInstanceState) {
                     
super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main_activity2);
                   }
                  
public void activity1(View view){
                      Intent intent =
new Intent(this,com.example.test.MainActivity.class);
                      startActivity(intent);
                   }
                   @Override
          
public boolean onCreateOptionsMenu(Menu menu) {
                     
// Inflate the menu; this adds items to the action bar if it is present.
               
      getMenuInflater().inflate(R.menu.main_activity2, menu);
                     
return true;
                   }
                }

در اینجا محتوای activity_main.xml می باشد.

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"

                 xmlns:tools="http://schemas.android.com/tools"

                 android:layout_width="match_parent"

                 android:layout_height="match_parent"

                 android:paddingbottom="@dimen/activity_vertical_margin"

                 android:paddingleft="@dimen/activity_horizontal_margin"

                 android:paddingright="@dimen/activity_horizontal_margin"

                 android:paddingtop="@dimen/activity_vertical_margin"

                 tools:context=".MainActivity">

   

       <textview android:id="@+id/textView1"

                   android:layout_width="wrap_content"

                   android:layout_height="wrap_content"

                   android:layout_alignparenttop="true"

                   android:layout_centerhorizontal="true"

                   android:layout_margintop="87dp"

                   android:text="@string/test1"

                   android:textappearance="?android:attr/textAppearanceLarge" />

       <button android:id="@+id/button1"

                 android:layout_width="wrap_content"

                 android:layout_height="wrap_content"

                 android:layout_centerhorizontal="true"

                 android:layout_centervertical="true"

                 android:onclick="activity2"

                 android:text="@string/go2" />

   

</relativelayout>

اینجا محتوای activity_main_activity2.xml را مشاهده می کنید.

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"

                 xmlns:tools="http://schemas.android.com/tools"

                 android:layout_width="match_parent"

                 android:layout_height="match_parent"

                 android:paddingbottom="@dimen/activity_vertical_margin"

                 android:paddingleft="@dimen/activity_horizontal_margin"

                 android:paddingright="@dimen/activity_horizontal_margin"

                 android:paddingtop="@dimen/activity_vertical_margin"

                 tools:context=".MainActivity2">

   

       <textview android:id="@+id/textView1"

                   android:layout_width="wrap_content"

                   android:layout_height="wrap_content"

                   android:layout_alignparenttop="true"

                   android:layout_centerhorizontal="true"

                   android:layout_margintop="125dp"

                   android:text="@string/test2"

                   android:textappearance="?android:attr/textAppearanceLarge" />

       <button android:id="@+id/button1"

                 android:layout_width="wrap_content"

                 android:layout_height="wrap_content"

                 android:layout_centerhorizontal="true"

                 android:layout_centervertical="true"

                 android:onclick="activity1"

                 android:text="@string/go1" />

</relativelayout>

اینجا محتوای Strings.xml  را مشاهده می کنید.

<?xml version="1.0" encoding="utf-8" ?>

<resources>

       <string name="app_name">test</string>

       <string name="action_settings">Settings</string>

       <string name="hello_world">Hello world!</string>

       <string name="test1">This is activity 1</string>

       <string name="test2">This is activity 2</string>

       <string name="go1">Go to activity 1</string>

       <string name="go2">Go to activity 2</string>

       <string name="title_activity_main_activity2">MainActivity2</string>

</resources>

در اینجا محتوای AndroidManifest.xml  را مشاهده می کنید.

<?xml version="1.0" encoding="utf-8" ?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

           package="com.example.test"

           android:versioncode="1"

           android:versionname="1.0">

   

       <uses-sdk android:minsdkversion="8"

                  android:targetsdkversion="14" />

       <application android:allowbackup="true"

                      android:icon="@drawable/ic_launcher"

                      android:label="@string/app_name"

                      android:theme="@style/AppTheme">

       

              <activity android:name="com.example.test.MainActivity"

                          android:label="@string/app_name">

           

                     <intent-filter>

               

                            <action android:name="android.intent.action.MAIN" />

                            <category android:name="android.intent.category.LAUNCHER" />

               

            </intent-filter>

                  </activity>

                  <activity android:name="com.example.test.MainActivity2"

                              android:label="@string/title_activity_main_activity2">

               

                      </activity>

                   </application>       

</manifest> 

اجازه بدهید برنامه ی Android Testing  شما را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run  از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.

موبایل خود را به عنوان یک گزینه انتخاب کرده وسپس آن را چک کنید که صفحه ی برنامه را نمایش می دهد. اکنون مراحل ذکر شده در بالا را زیر بخش monkey ،  برای اجرای تستینگ روی این برنامه، دنبال کنید.

1394/07/27 4016 1637
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...