Obecnie coraz więcej firm decyduje się na wytwarzanie oprogramowania z uwzględnieniem urządzeń mobilnych. To podejście wiąże się z wyzwaniem zapewnienia projektom możliwie jak najlepszej jakości. Dlatego wiedza odnośnie tajników testowania aplikacji mobilnych może już wkrótce przydać się niemal każdemu testerowi.
W swojej prezentacji postaram się poruszyć następujące zagadnienia:
Specyfika testowania aplikacji mobilnych, czyli testy inne niż wszystkie
Narzędzia pracy testera aplikacji mobilnych
Co daje nam automatyzacja testów oraz jakie podejście wybrać?
Zestawienie najpopularniejszych narzędzi do automatyzacji testów oraz ich charakterystyka
Robotium/Espresso
Uruchamianie testów automatycznych na wielu urządzeniach jednocześnie
Uczestnicy mojej prezentacji będą mieli okazję dowiedzieć się, czym różni się podejście do testowania aplikacji mobilnych od innych testów.
Podczas prezentacji postaram się omówić różne narzędzia do automatyzacji testów. Zaprezentuję także przykładowe testy napisane z wykorzystaniem jednego z najpopularniejszych frameworków do automatyzacji testów aplikacji na urządzenia z systemem Android (Espresso lub Robotium).
5. Testowanie mobilne | Sieć
http://www.clker.com/cliparts/s/s/I/5/6/b/wireless-router-hi.png
6. ● Real user conditions as
important as real devices
● Network performance,
battery consumption,
memory usage are leading
causes of poor performance
Testowanie mobilne | Sieć
https://www.youtube.com/watch?v=nOFel7yNAsE
7. Testowanie mobilne | Sieć
http://techvidhya.in/ http://learnabouttelecom.blogspot.com/
2012/06/gsm-core-network-base-station-subsystem.html
8. Testowanie mobilne | Symulator
https://github.com/Polidea/Cellular-Data-Network-Simulator
Cellular Data Network Simulator
Features
● Easy to use web and mobile interface
● Simulate: bandwidth, delay, loss, corruption,
occasional loss of signal
● Can capture the traffic and send it to CloudShark
● Apply limits per-device
● Works well in environment with multiple devices and
multiple testers
● Works well as virtual machine bridged with separate
wireless network
Requirements
● OpenWrt device running on Barrier
Breaker - can be router or virtual machine
● Two network interfaces - one for WAN and
one for WIFI/LAN
11. Testowanie mobilne | Fragmentacja
http://developer.android.com
Any versions with less than 0.1% distribution are not shown.
12. Testowanie mobilne | Urządzenia
Xiaomi success inspires every man and
his dog to make smartphones in china
http://www.reuters.com/article/2015/07/13/us-china-
smartphones-idUSKCN0PN2HA20150713
13. Testowanie mobilne | Urządzenia
http://opensignal.com/reports/2015/08/android-fragmentation/
27. Espresso
ViewMatchers - allows you to locate a view in the current view hierarchy
ViewActions - allows you to interact with views
ViewAssertions - allows you to assert the state of a view
check something
find Something
do something
30. Espresso
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ChangeTextBehaviorTest {
...
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
MainActivity.class);
@Test
public void changeText_sameActivity() {
onView(withId(R.id.editTextUserInput))
.perform(typeText(STRING_TO_BE_TYPED), closeSoftKeyboard());
onView(withId(R.id.changeTextBt)).perform(click());
onView(withId(R.id.textToBeChanged)).check(matches(withText(STRING_TO_BE_TYPED)));
}
}
https://goo.gl/U2Qsi9
Check that text was changed
Find EditText view
Start Activity under test
Type text, close keyboard
then press the button