"My repository, where I post anything that I love, I learned and etc."

11 October 2020

Maven related things

 Assalamualaikum and Annyeong Chingu!


Maven on Mac

Link1 : Maven on MacOS (OSX) (Maven)

Link2 : How to Install Maven on Mac OS (Maven Install)

Link3  : Where is Maven' settings.xml located on mac os? (Maven settings.xml location)

Link4 : Adding and Working With JAR Files in Your Local Maven Setup (Maven add .jar)

Link5 : How to set JAVA_HOME environment variable on Mac OS X 10.9? (Set JAVA_HOME)

Link6 : How to Set $JAVA_HOME environment variable on Mac OS X (Set JAVA_HOME)

Link7 : JAVA_HOME is not working in maven (Set JAVA_HOME)

Link8 : How to set JAVA_HOME environment variable on macOS? (Set JAVA_HOME)

Link9 : Package doesn't exist error in intelliJ (Maven can't find packages)

Link10 : Maven plugins can not be found in IntelliJ (Maven plugins can't be found)

Link11 : HOW TO ADD MAVEN DEPENDENCIES VIA ECLIPSE (Add Maven dependencies)

Link12 : Using Maven within the Eclipse IDE - Tutorial (Add Maven dependencies)


Example Path

Maven settings.xml : /usr/local/Cellar/maven/3.6.3_1/libexec/conf

Java version (current) : 1.8.0_261

jdk : /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/jre



Random IT Command

 Assalamualaikum and Annyeong Chingu!


List Current VM's

$ VBoxManage list vms


Start VM with name

$ VBoxSDL --startvm "VM_Name"


Start VM with UUID

$ VBoxSDL --startvm 1234-4563-4566-a4563-asas5


Maven command

$ mvn -v : List information related to Maven


Mac's command

Cmd + Shift + 4 : Screenshot







Uninstall VirtualBox

 Assalamualaikum and Annyeong Chingu!


Here are some helpful links on uninstalling Virtual Box on Mac.


Link1 : How to Properly Uninstall VirtualBox on Mac (Solved)

Link2 : How to Uninstall VirtualBox on Mac

Link3 : Controlling VirtualBox from the Command Line

Link4 : Remove virtual machine


Genymotion - The virtual device got no IP Address issue

 Assalamualaikum and Annyeong Chingu!


Here are some references that might be helpful in resolving Genymotion device have no IP address issue.


Link1 : Genymotion - The virtual device got no IP Address

Link2 : Genymotion: The virtual device got no IP address?

Link3 : Genymotion “The virtual device got no IP address”

Link4 : "Virtual Device got no IP address" Genymotion

Link5 : Trying to setup Genymotion to test Android apps and keep getting errors

Link6 : Genymotion: The virtual device got no IP address?

Link7 : Can't start VM using VBoxSDL --startvm UUID in command line => Fixed in SVN






Random IT Knowledge #01

 Assalamualaikum and Annyeong Chingu!


[Where I put random IT knowledge. LOLs]


Type of Parameters (Payload)

Link1 : API reference tutorial


How to Right Click on Mac

Link1 : How to Right Click on Mac

Link2 : How to Use Right-Click in macOS

All about Charles Proxy tools

 Assalamualaikum and Annyeong chingu!


I think I want to dedicate this post for links related to Charles Proxy tools that I found it to be quite helpful (at least for me. los).


Charles with GenyMotion

Link1 : Charles Proxy in your Genymotion Android emulator

Link2 : SSL Proxy with Genymotion and Charles

Link3 : Charles Proxy with Genymotion: monitoring https

Link4 : Using Genymotion With Charles Proxy

Link5 : Setup Charles Proxy with Android Emulator



Charles with iOS

Link1 : Charles proxy tutorial for ios



Charles Tutorial

Link1 : Charles Proxy Tutorial for iOS

Link2 : Charles Tips and Tricks for iOS Devs: Mocking

Link3 : How to Rewrite rule in Charles Proxy to modify quest param



How to Create New AVD (Virtual Device) In Emulator in Android Studio

 Assalamualaikum and Annyeong Chingu!


I'll just put link first. If there are any other links or references that I find it to be helpful, I'll update back this post. 


Link1 : Create avd virtual device emulator android studio

Unable to set proxy on iPhone issue

 Assalamualaikum and Annyeong Chingu!


Last Friday, I encountered problem where I'm unable to set proxy manually on my iPhone. The solution is simple. Just 'Forget the Network' and re-connect back. And you will able to set the proxy again. 


Other Helpful Links 

Link1 : Charles proxy doesnt work on my ios device

Link2 : How to set up manual http proxy on devices with ios

Link3 : Can't save Wi-Fi proxy



Cloned Project didn't detect Getter and Setter (Lombok/ TestNG)

 Assalamualaikum and Annyeong Chingu!


Last week I encountered problem with the cloned project, where there are always error on '.getXXXX()' and '.setXXXX()' function. I'm quite confused at first, I kept thinking why there are always error, when I try to search across the repository for that specific function, sometimes the function is there but seems like it doesn't connect with each other. Later on the evening I found that, Lombok package wasn't installed yet. Lols. So the solution is simple, install Lombok packages. Yea, that simple. Lols.


Other References

Link1 : Lombok added but getters and setters not recognized in intellij idea

Link2 : Can not find getter and setter

Link3 : IntelliJ IDEA Lombok Not Working


How to clone GitLab project on IntelliJ / Eclipse

 Assalamualaikum and Annyeong chingu!


This post more towards on how to clone your GitLab project on IntelliJ as I never had experience using IntelliJ before. Most of the time I use Visual Studio Code. Lols. So how to clone? Refer below steps :


1. Click File > New > Project from Version Control > Git

2. Enter clone URI (copy project URI from GitLab)




Other References :


Link3 : IntelliJ IDEA first-time setup, and cloning a repository

Link4 : Cloning a repository from GitLab

Link5 : Set up a Git repository

Link6 : Configuring GitLab on Intellij



Cloning GitLab Project into Eclipse

Link1 : Eclipse & Gitlab Tutorial

Link2 : How can I start a project on GitLab repo with Eclipse?

Link3 : How to add GitLab repository in Eclipse?

Link4 : Checkout code using Eclipse Git



Type of Testing (Unit | Widget | Integration | CI)

 Assalamualaikum dan Annyeong chingu!


Hari tu sempat baca an article kat website official for Flutter and I find it quite interesting and the definition given is quite simple and easy to understand.



Unit tests

A unit test tests a single function, method, or class. The goal of a unit test is to verify the correctness of a unit of logic under a variety of conditions. External dependencies of the unit under test are generally mocked out. Unit tests generally don’t read from or write to disk, render to screen, or receive user actions from outside the process running the test. For more information regarding unit tests, you can view the following recipes or run flutter test --help in your terminal.



Widget tests

A widget test (in other UI frameworks referred to as component test) tests a single widget. The goal of a widget test is to verify that the widget’s UI looks and interacts as expected. Testing a widget involves multiple classes and requires a test environment that provides the appropriate widget lifecycle context.

For example, the Widget being tested should be able to receive and respond to user actions and events, perform layout, and instantiate child widgets. A widget test is therefore more comprehensive than a unit test. However, like a unit test, a widget test’s environment is replaced with an implementation much simpler than a full-blown UI system.



Integration tests

An integration test tests a complete app or a large part of an app. The goal of an integration test is to verify that all the widgets and services being tested work together as expected. Furthermore, you can use integration tests to verify your app’s performance.

Generally, an integration test runs on a real device or an OS emulator, such as iOS Simulator or Android Emulator. The app under test is typically isolated from the test driver code to avoid skewing the results.



Continuous integration services

Continuous integration (CI) services allow you to run your tests automatically when pushing new code changes. This provides timely feedback on whether the code changes work as expected and do not introduce bugs.


Sources 


Other Resources for Flutter Testing :

Link1 : Flutter automated testing step by step guide

Link2 : Flutter automated tests get started

Link3 : Flutter driver integration testing flutter app automation

Link4 : Automation Testing of Flutter app with Flutter driver

Link5 : How to automate Flutter app using Flutter driver

Link6 : Running automated Flutter driver test in Android emulator

Link7 : Automation testing in flutter

Link8 : Integration tests codemagic

Link9 : Flutter app testing with appium flutter driver

Link10 : Automate flutter app using appium flutter driver


04 October 2020

Charles Proxy with Android Simulator (Genymotion)

 Assalamualaikum and annyeong chingu!



Last week, I manage to debug my Android device in Genymotion using Charles. It was my first time hearing about the Charles proxy. My friend explains that Charles proxy, basically was used to debug the mobile device (whether iOS/Android or real/simulators device).



Since I encountered some problem while testing the app in Genymotion device, I decided to connect Charles with my Android device (on Genymotion) to investigate what was the real problem that causing me, unable to make an order in the app.



At first I try googling about it. Found the solutions but most of it, more towards connecting Charles to real device. There are tutorials on connecting Charles to device on Genymotion, but somehow the steps are not really that clear (or maybe I'm too dumb to understand. Lols). 



But maybe not. I think its because my mindset at that time seems like in negative state. Yup. While googling, this was on my mind : 

"Does this step really works? Seems the steps is incomplete? Is it worth the time for me to try it, or will I just waste my time trying solutions that might not even works?"


So negative right? Lols. However I manage to push myself to try the solutions first and not worrying about the outcome (whether the solutions is a failure or success). But... I didn't follow steps on stackoverflow.com as usual. I try to follow tutorial on Confluence (made by my colleagues last year - i just entered the company this year).


At first, I got confused on the steps. I mean the title is for both simulators and real devices, but however the sub section description is more towards real device. So I got confused. Lols. But hell no, too early to give up. Let me try it first. After following the tutorial according to my understanding, I finally able to connect the Charles to device on Genymotion. Lols. I think the tutorial is correct, maybe only the title need to be updated. Below are the steps to connect Charles to device on Genymotion.


1. Download and install Charles at https://www.charlesproxy.com/download/latest-release (But my case, I use the 4.2.5 version as jar files on step 2 only available till this version)

2. Follow instruction on https://github.com/100apps/charles-hacking to obtain license. Search and click folder with same Charles version that you had download earlier.

3. Once clicking the folder, download the jar files. (Remember : Download the same version or else it won't work)

4. Once downloaded, go to :

Applications/Charles/Contents/Java

5. Replace the charles.jar in the current directory with the one that had been downloaded from github.

6.  Once done, open the Charles Proxy

7. Click Proxy > SSL Proxying Settings

8. Click 'Add' button and add your host to the list of Locations. (Ensure 'Enable SSL Proxying' already ticked in order to add). Add '*' in the list of Locations.

9. Click OK

10. Again go to Charles, click 

Help > SSL Proxying > Install Charles Root certificate on a Mobile Device or Remote Browser 

11. Click OK on 'Configure your device to use Charles as its HTTP proxy on XXX.XXX.X.XXX:8888, then browse to chls.pro/ssl to download and install the certificate' pop-up message.

12. Go to your device in Genymotion. (Ensure connect to the same wi-fi)

13. Go to Settings > Wi-Fi > Press and hold the Wi-Fi menu

14. Select 'Modify Network' > 'Show Advanced Options'

15. Select 'Proxy Settings' > 'Manual'. Follow exactly the instruction  as displayed on step 11 pop up message

16. Set proxy to 'XXX.XXX.X.XXX' (as displayed on step 11 pop up message)

17. Set port to '8888' and click Save

18. Click 'Allow' on pop-up displayed on Charles proxy

19. Open the device browser. Navigate to 'chls.pro/ssl'. Download the certificate.

20. Go to settings and allow the certificate to be installed

21. Once the installation success, there will be prompt to create your own pin on the device.

22. Done



Problem Unable to start Device in Genymotion

 Assalamualaikum and Annyeong chingu!

Last week I was assigned a task that requires me to test on Android device. Since I dont have an Android device, I need to use Android device in Genymotion emulator. At first, it work just fine, but a moment later, I'm unable to start the device. Either through Genymotion nor the Virtual Box itself. I googled, found some solutions, but somehow I still unable to start the device. The error message shows something like, I need to start the device by running the command to start the virtual machine and include the device UUID/Name in the command.


So below is the step that I do to solve the problem :

1) Type VBoxManage list vms in terminal to list all available virtual machine

2) Then type VBoxSDL --startvm <Device UUID> / VBoxSDL --startvm "VM_Name" in terminal

3) Once the virtual box up and running, start the device on the Genymotion itself.


Done.


Mobile Testing related #01

 Assalamualaikum dan Annyeong Chingu,

For this week task, I decide to read about mobile app testing to add more knowledge in order to understand more and in some way help me in having more ideas in creating test scenarios for certain features for the mobile app. So below are some part that I extract from different articles that I found good for me to know.


Things to consider while testing the mobile app :

1) If internet connection is required, does the app ask you to turn WiFi/data on if it’s not already?

2) Does the app allow user to save / upload files correctly?

3) Test the app on varied OS versions

4) Test the app on various device screen resolutions

5) Test the app whether able to be installed / uninstalled correctly

6) Interrupt testing- Able to receive the calls while running the application.

7) Compatibility testing – able to attach the photo in message from gallery

8) Test by changing the port and IP addresses to make sure the device is getting connected and disconnected properly.

9) Test by making calls and sending messages to other devices. Make calls and send messages while the app is running in the background

10) Test on different mobile browsers like Chrome/Firefox/Opera/Safari

11) Application launching without having network

12) Orientation of app if it supports

13) Testing application performance on a different kind of devices and network scenarios

14) Testing the application response how it is responding


Abbreviations :

1) apk – Android Application Package File
2) exe – Executable Files
3) iPA –iOS App Store Package
4) prc – Palm Resource Compiler
5) jad – Java Application Descriptor
6) adb – Android Debug Bridge
7) aapt – Android Asset Packing Tool


Severity of Bugs : 

Critical: Your phone system crash when testing particular feature in your device
Block: Unable to do anything though phone is on unless you reboot your device
Major: Unable to perform a function of a particular feature
Minor: Under minor bugs usually GUI bugs fall.


How to test CPU Usage on mobile apps?

Use advanced apps like CPU Monitor, CPU-Z, CPU Stats, etc. (able to record all details about the processes running on mobile devices)


What are the pre-requisites to run Appium?

* Install Eclipse
* Android SDK
* JDK (Java Development Kit)
* TestNg for Eclipse
* Selenium Server JAR
* Appium Client Library
* APK App Info - Google Play
* js (included in Current Appium versions)
* Appium for Windows


What is GPRS?

GPRS is General Packet Radio Service which works on a mobile network with the help of IP transmissions. GPRS provides the transmission of IP packets over existing cellular networks. It provides you internet services on mobile.


How can you perform A/B testing on iOS applications?

Configuration: 
Prepare 2 versions of the iOS app, namely A and B.

Define Success Metrics: 
Identify the objective and the metrics against which the success of the app will be measured.

Execution: 
Test both the versions simultaneously.

Analysis:
Evaluate and identify the better version to release.


When do you use Compatibility testing?

Compatibility testing is done to check if the app is compatible with different :

- Operating systems – (Android & iOS).
- Browsers (Chrome, Firefox, Safari, etc.).
- Devices.
- Network environments- 2G,3G,4G, WIFI.
- Internal hardware.


2 Types of Compatibility Test

1) Backward : Test the behavior of a mobile app with older versions of a software.

2) Forward : Test the behavior of a mobile app with new, developing software and beta versions.


What would you do if your app works well on some devices and crashes on others?

1) Conduct compatibility tests to analyze the application’s performance on multiple devices with different network environments. This will help in the identification of the devices on which the app crashes.

2) Try uninstalling and installing the app and if it still does not function properly, highlight the issue to the developer and suggest fixes.


What are the steps to use the Appium inspector for test automation?

1) Open simulator by clicking on the dock option.

2) Select simulator in device window.

3) Open Appium desktop and keep simulator side by side.

4) Once the inspector starts functioning, select any object on the screen to see the hierarchy and properties of the object.

5) You can select any object by clicking the Select Element button, followed by the Tap button to click on an object.

6) To enter text, press Send Key and to undo actions, press Clear.

7) All actions performed on objects are recorded in the form of a script.

8) Once done, you can copy-paste the script in eclipse editor.


03 October 2020

Medium.com Article TBR

 Assalamualaikum and Annyeong chingu!


Basically just want to list out the articles on medium.com that I'm interested in but can't read yet as I dont have premium account lols. Hence I put here first so that I can read later on. Maybe. lols


mobile-testing-practices

understanding-dependency-injection-in-android

using-the-two-pointer-technique

summing-root-to-leaf-numbers

overview-of-software-performance-testing-activities

how-i-created-a-planner-book-from-scratch-and-sold-90-in-the-first-week

how-to-make-enough-money-to-retire-in-the-next-5-years

api-testing-using-postman-and-newman

how-i-can-access-the-database-from-protractor

this-one-silly-notebook-will-unlock-50-more-of-your-hidden-potential

dragoon-an-automated-ui-testing-tool

automate-rest-api-testing-with-robot-framework

manipulating-text-files-on-net

the-ultimate-guide-to-master-tree-data-structures-step-by-step

what-happens-after-prisoners-learn-to-code

5-tricks-to-elevate-your-automated-regression-tests

scriptless-automated-testing-is-not-the-same-as-record-and-playback

web-ui-tests-reinforcement-with-webtau-framework-selenium-based

unlocking-the-full-power-of-tests

aggregated-allure-report-using-copy-artifact-jenkins-plugin

using-sliding-window-technique-to-solve-coding-interview-questions

write-better-acceptance-tests-with-gauge

the-subtle-art-of-test-automation-using-docker-compose

welcome-to-the-no-code-software-revolution

a-beginners-guide-to-performance-testing-with-gatling

the-test-pyramid

test-pyramid-in-practice

json-api-testing-from-the-terminal

selenide-in-testing-process-automatisation-through-selenoid-in-the-docker-container

fast-and-reliable-cross-browser-testing-with-playwright

how-to-write-software-test-planning-for-successful-projects

how-one-full-stack-engineer-finally-found-her-way-home

how-to-use-your-notebook-to-track-your-reading

so-you-want-to-become-a-test-automation-engineer

overcome-6-selenium-automation-testing-challenges

android-app-testing-with-continuous-integration

testing-your-web-extension-with-integration-tests

two-books-that-turned-a-26-year-old-programmer-into-a-billionaire

the-problem-with-titles-for-testers

web-ui-tests-reinforcement-with-webtau-framework-selenium-based

scriptless-automated-testing-is-not-the-same-as-record-and-playback

how-a-qa-inflight-meeting-can-boost-your-projects-success

testing-important-lessons-you-can-learn-from-bugs

running-end-to-end-tests-with-github-actions

the-most-important-types-of-qa-testing-for-software-development

unlocking-the-full-power-of-tests

one-algorithm-to-rule-them-all

how-to-write-software-test-planning-for-successful-projects

cypress-how-and-why

visual-testing-with-cypress

steve-jobss-definition-of-smart-will-make-you-rethink-your-actions

applying-composition-to-page-object-model

fast-and-reliable-cross-browser-testing-with-playwright

the-art-of-bug-reporting

a-visual-tutorial-on-every-type-of-test-you-can-write

redefining-using-promises-with-the-page-object-model

automating-complex-end-to-end-tests

levels-of-software-testing

a-simple-effective-test-automation-strategy

how-to-make-time-for-your-passion-project-if-you-are-too-busy-working-for-someone-else

software-qe/the-many-definitions-of-software-testers

new-features-in-serenity-js

separation-of-manual-qa-from-automation-qa

39-websites-that-can-make-you-unbelievably-smarter-just-in-10-minutes-a-day

api-testing-with-postman-series-part-2

lets-learn-automation-using-selenium-basic-operations

introduction-to-cypress-and-frontend-testing

https-medium-com-from-a-newbie-to-a-test-automation-rock-star-vol-1

testing-differences-between-tdd-atdd-and-bdd

why-visual-testing-is-more-than-catching-bugs

so-you-want-to-become-a-test-automation-engineer

api-testing-using-postman-and-newman

3-things-i-learned-from-testing-in-javascript

automated-testing-with-cypress

how-i-can-access-the-database-from-protractor

microservices-and-outside-in-tests-using-c-and-docker-compose

the-hitchhikers-guide-to-cypress-end-to-end-testing

my-experience-moving-from-selenium-to-cypress

espresso-framework-creating-ui-tests-using-page-object-model

tutorial-windows-app-automation-using-winappdriver-and-java

could-the-no-code-movement-put-programmers-out-of-a-job

top-3-automation-testing-tools-to-try-in-2019-all-free

what-is-regression-testing-and-why-is-it-important

the-many-definitions-of-software-testers

my-top-10-lessons-in-software-testing

end-to-end-testing-frameworks-introduction

how-to-integrate-e2e-tests-of-web-and-mobile-platforms-using-node-js

load-testing-and-api-testing-using-apache-jmeter

testing-differences-between-tdd-atdd-and-bdd

testing-angular-directives

tests-should-not-be-optional

before-starting-automation-you-should-change-your-mindset

robot-framework-the-basics

espresso-framework-creating-ui-tests-using-page-object-model

building-a-custom-test-step-runner-for-selenium-c-automation-tests

bdd-ui-automation-via-specflow-c-and-selenium

handling-illegalstateexception-can-not-perform-this-action

selenide-in-testing-process-automatisation-through-selenoid-in-the-docker-container

your-contract-tests-are-not-protecting-you

finding-android-components-with-appium

how-to-test-a-graphql

test-automation-creating-mock-objects-using-mockito-simple-guide



Can read directly

running-cross-browser-selenium-tests-in-parallel-using-selenium-grid-and-docker-containers

how-to-dockerize-your-end-to-end-acceptance-tests

pact-testing-in-net-core

test-automation-with-testng-using-page-object-modeling

switching-to-cypress-from-protractor-in-less-than-30-seconds

tests-being-the-soundcheck-for-code

automation-a-failure-story

selenide-in-testing-process-automatisation-through-selenoid-in-the-docker-container

array-rotation-programming-interview-problem-ii

specification-by-example-and-product-quality

c-variables-for-absolute-beginners

exploratory-testing

how-to-mock-the-network-with-nock-and-javascript-to-test-parts-of-a-system-you-need-a-good-design

test-automation-university/tips-for-healthy-page-object-model-classes

considerations-for-an-effective-test-automation-strategy

testers-wildlife

become-a-master-tester-about-test-driven-development-and-automated-tests

step-by-step-writing-e2e-tests-for-your-web-project

how-generative-testing-changed-the-way-we-qa-geckoboard

sweetest-intro

automation-and-performance-testing-using-karate

automate-click-through-testing-with-puppeteer

running-automated-tests-on-aws-devicefarm-in-custom-environment

extracting-logs-from-a-selenium-session

automated-ui-testing-with-xamarin-uitest-and-the-page-object-pattern

4-step-formula-to-learn-anything-in-under-24-hours

how-to-add-end-to-end-tests-to-your-project-with-cypress

how-far-left-can-we-shift-as-software-testers

qa-automation-how-it-can-help-your-product

software-testing-and-the-deming-experiment

automate-click-through-testing-with-puppeteer

e2e-testing-with-testcaf%C3%A9-and-cucumber-js

the-sprint-has-started-and-i-have-a-set-of-user-stories-to-test-now-what

the-practical-uses-of-giphy-in-software-testing

angular-x-jest-snapshot-testing

key-point-to-select-and-develop-automation-framework

exploratory-testing-et-what-when-why-and-how

Zero to hero in python from basic to oops concept