Suyash Dubey | Posted on | 2 min Read

The efficiency of the software development life cycle is what differentiates a successful app delivery to a faulty one. The industry is emphasizing on the need to increase the productivity of the development process with speedy deployment. This can be achieved with continuous integration and continuous delivery. In agile development, there is a constant need to test the code regularly with continuous integrations of the builds. Jenkins helps in optimizing the CI/CD process. So let’s start with Continuous integration and then we will move on to the role of Jenkins in achieve continuous integration.
 

What is Continuous Integration

 
Continuous integration is a process in which multiple commits are made every day and each commit code is built and tested immediately. Once the test is passed the build is tested for deployment and then it is sent to production. A CI/CD pipeline consists of Continuous Integration server like Jenkins, Source Control tool, Build tool, and an automation testing framework like Selenium, Appium, etc. There are many benefits of continuous integration and according to the project requirement, the development team can choose the best continuous integration tools.

What is Continuous Integration
 

What is Jenkins

 
Jenkins is an open-source server-based application written in Java used to achieve continuous integration in an automated fashion. It is popular because it makes monitoring the repeated task which arises during the development phase. While working on the project, Jenkins automation will continuously test the builds and recognize the errors in the early stages of the development. Jenkins speed up the software development process by automating the build and test quickly.
 

Why CI needs Jenkins

 
When a team of developers works on a project and uses a shared repository, some might take 20 days and others might take 25 days to complete. When the developers were done with their coding, they used to commit at the same time and then the build was tested. This way a single build was done after many days. But with Jenkins, build, and testing of code can be done many times in a day. Once the testing is done then the source will be deployed into the test server. Jenkins will notify the developers if the build fails.
 
Since the code was built all at once, some developers would have to wait for others to complete which is not efficient. It was difficult to detect and fix bugs for multiple commits. Now with Jenkins, once the developer commits, the code is built immediately and thus it is easy to find the code that causes build failure.
 
Earlier the code build and test process were done manually and this was the reason for more number of errors. This is rectified by the automated build and testing in Jenkins.
 
One more issue was that code was deployed when all the bugs were fixed and this made the development cycle slow. Jenkins helps speed up the process as the code is deployed after every build and test.
 

Advantages and Disadvantages

 
The best thing about Jenkins is that it is open source and the community takes feedback from the users for enhancement of the project. In every three months, there is a stable release and there are more than 320 plugins are published in its plugins database. It also supports cloud-based architecture and it can be integrated with cloud-based platforms.
 
Some flaws include its outdated user interface and lack in the overall user experience in some ways. It runs on a server which requires more maintenance and skills to install, configure and monitor the activity. There will be some issues with the setting changes and the continuous integration will break which will need developers attention.
 

Use of Jenkins to Achieve CI/CD Pipeline with pCloudy

Here we can see a sample app code that will be used in this process.
 
Use of Jenkins to Achieve CI/CD Pipeline with pCloudy
 
This app is also hosted on Git as shown in the figure.
 
Hosted on Git

Go to the configuration page in Jenkins for this project.
 
Jenkins 4

We have configured it to pCloudySampleAndroidApp. Jenkins will pick up this project from the location and build it. Then we need to get the Github access and branch to pick the code. The source control mechanism should be polled with a schedule.
 
In this build, we will build the android studio project using Gradle wrapper.
 
Jenkins 4
 
Here we can see the location of the Gradle wrapper and the task that needs to be performed by Gradle.
 
Next step is to integrate Jenkins and the plugin can be taken from the pCloudy website.
 
Jenkins 5
 
In Step 1, we have mentioned the URL of the device cloud followed by the user name and the API key. You can retrieve your API access key by going to the settings page in pcloudy.
 
Jenkins 6
 
In step 2 we need to provide the command line path where we have mentioned the Appium Jar file which has the test cases. Next, you need to give the path of the app that has been build by Jenkins and then mention the automation duration.
 
In step 3, we can choose the device on which we want to run the Appium. So you can select the Android version and select the preferred device with desired specifications. We selected two devices for the process.
 
Jenkins 7
 
Now we can go back to the code and check how the entire configuration comes together.
 
Jenkins 8
 
After making the changes in the code, go to the version control system and add a commit.
 
Jenkins 9
 
After that push the code. Once the push is successful you can check in the Git if it is showing the code change.
 
Jenkins 10
 
Now again go to Jenkins and click on “Build Now”.
 
Jenkins 11

In the next screen, we can see the initiation of Gradle Daemon.
 
Jenkins 12
 
Now go to active sessions in device.pcloudy to see the live view of the activity in the devices.
 
Jenkins 13
 
So this is how you can make changes in the code and push the code into Git from where Jenkins download the code and upload the build into pCloudy. This process takes a few minutes and we were also able to see the test activity live which is an advantage of integrating the Jenkins based build system with pCloudy’s automation.
 

Conclusion

 
Jenkins is like the soul of the continuous integration process as it builds and tests the app continuously which makes it easier to integrate changes to the process. Most of the process is automated and this saves time and effort which can be used to perform other tasks related to the delivery. It has some issues like the old UI but the benefits like an active opensource community overshadow the little disadvantages. This is why Jenkins is the most popular CI server among the developers.
 
Related Articles:

  • pCloudy Plugin for Jenkins
  • pCloudy Sponsors Jenkins World 2016
  • Integration of TestNG Project with pCloudy Platform
  • Appium Integration Architecture Redefined! Appium Runs Become Simpler with pCloudy
  • Explore Full Power of pCloudy Platform – Improve Quality, Speed and Efficiency
  • Suyash Dubey | Posted on | 2 min Read

    We are committed to keeping you ahead of others: pCloudy is one of the fastest to release support of iPadOS and iOS 13 beta devices on cloud.
     
    iPhone pCLoudy
    iPhone loaded with iOS 13 on pCloudy
     
    iPad pCloudy
    iPad loaded with iPadOS on pCloudy
     
    ipad version
    iPadOS
     
    iphone V
    iOS 13 beta

     
    Related Articles:

  • iOS 13: New Features And Their Impact On The Apps
  • pCloudy Announces Availability of iOS 11 (beta) Devices on Cloud
  • iOS 12 is Now Available on pCloudy. Go Forth and Test Your Apps Now!
  • How To Install Appium On A Mac Machine
  • iOS Beta Testing Using TestFlight
  • Suyash Dubey | Posted on | 2 min Read

    These days software firms are putting in a lot of effort to attain quality at speed. Whether it’s continuous testing, agile or bringing AI into automation, it is required to refine the software development process to keep up with the rapid technological changes. The best way to do that is to adopt practices like parallel testing which will save time and effort. So let’s get into the details of parallel testing and understand the benefits and challenges faced to implement it into the software development life cycle.
     

    What is Parallel testing?

     

    • Parallel testing is defined as a type of software testing where multiple apps or features are tested simultaneously which reduces time consumption.
    • Mostly it is done when a new version is released for an app. There is a need to check the compatibility of the latest version of different device, browsers and OS combination.
    • For example, if there is a new version of the OS being launched, then there is a need for testing the app to check if all the features are working fine with the new OS version.
    • So parallel testing can be used when the app is to be tested on the different version of the operating system or when there is a new version of the app to be launched.

    To perform parallel testing you can simply create slave projects for the different functionalities of the app and a master project that will run these projects.
     

    Why and When to Perform Parallel Testing

     
    Parallel testing is done to make sure if the new version of the app works fine or to check the consistency between the old and the new version. It can also be done to check the integrity of the new app and the data format between the versions. When a company is moving from the old system to new system and synchronization is performed, it becomes necessary to check the legacy data is imported from one system to another and all the outcomes are defined more accurately especially in the financial domain.
    Parallel Testing

    Benefits of Parallel testing

     
    Parallel testing has become a need for the QA teams as the benefits cannot be neglected. Let’s have a look at some of the benefits of performing parallel testing.

    • Better Development Flow: Better reporting and quick feedback with parallel testing enable testers to share the results with the development team. This practice also boosts the Continuous Integration efforts which lead to the timely delivery of the product. Parallel testing also helps build better communication between the QA team and the developers as the testing and reporting are done in a timely manner.      
    • Less Effort: Needless to say manual testing is very important but doing regression testing again and again on different devices combinations will be time-consuming. Performing parallel testing will reduce the amount of work that you have to put in as you will have to work on one script only. That script will be replicated on multiple devices.
    • Time-Saving: Parallel testing saves your time by a lot and that time can be invested in exploratory testing. Even if you are testing your app on two devices, your testing speed increases by two times. Human error can give you incorrect data so it’s better to use parallel testing for such repetitive testing which can also be boring.
    • Better Test Coverage: The test coverage increases when you test your app on various device browser-OS combinations. The more devices you test your app on the better. This will ensure that the end user gets the best experience irrespective of the device used. In this way, parallel testing ensures better user experience which means better ROI.
    • Less script: You can just write the script once and rerun the test on multiple devices. The older and newer version of your app can be installed on different devices to check compatibility and consistency. The goal is to make sure that the newer version of the app works fine on the latest and the legacy devices similar to the older version with some updates.

     

    Challenges of Parallel testing

     
    Parallel testing has its own sets of challenges and It is always better to get familiar with the issues before making a decision. Although there are solutions to these challenges which are also mentioned below.
     
    Infrastructure Limitations: The cost to set up the test environment can take a toll on the company’s finance as the infrastructure and maintenance will cost a lot. Mobile and networking devices will add to the cost. Also, the company will have to hire highly skilled professionals just to maintain the setup. Instead of this companies can opt for cloud-based services like pCloudy where they will get all the desired devices to test on which can be accessed from anywhere anytime.
     
    Data Dependencies:  It might be difficult to make a strategy for parallel testing if the test cases are dependent on some specific data. So if we take a case of sign up page. There can be test scripts running for a user login but if not done in a sequential manner then any other script might run first which would delete the user credentials form the database. Another script might also run which will require a user to enter the data. In this case, it will be difficult to integrate the scripts into parallel testing due to data dependencies. This is why it is required to write the test scripts which are truly data independent. Therefore the test scripts should have the configured data which is required for the test run and then the scripts can be modified to run in parallel.
     

    Conclusion

     
    To sum up, parallel testing reduces the effort and time spent on testing the app by multiples. It also increases your test coverage and helps provide a better user experience. The best way to do parallel testing is by using the cloud platform as you will not have to invest in the infrastructure and you will be able to access the devices from anywhere anytime. So if your testing team is distributed across the globe, this will be your best option and all that extra money saved in the maintenance can be put to good use for some other feature development process.

     
    Related Articles:

  • A Brief Overview Of Regression Testing
  • 5 Reasons Why pCloudy is The Simplest App Testing Platform
  • pCloudy Mobile App Testing Platform – On Boarding Guide
  • Automation Execution on Multiple Devices in Parallel
  • Testing Mobile Apps on Different Networks
  • Suyash Dubey | Posted on | 2 min Read

    The fans were waiting for the next iOS release and in the WWDC 2019, iOS 13 beta was launched. With the launch of the new iPhone in September 2019, iOS 13 will deliver a deluge of features to your iPhone to take on the Android Q. At the annual Worldwide Developers Conference in San Jose, some new features and some tweaks were announced in the latest version of the iOS to make the user’s life easier.
     

    What to expect with iOS 13?

     
    The latest version of iOS focuses on speed, user-friendliness, and privacy. So let’s go through the iOS 13 features and then we will try to evaluate the impact of the updates on the apps.
     

    Dark Mode

     
    Dark mode can be very useful as you can adjust it to light gray, dark gray or black which will be implemented on all the supported apps. This will also save the battery life for OLED display. So this is a reader-friendly update and the dark mode can be set to turn on at night automatically.
     
    ios 13 release

    QuickPath Keyboard

     
    This feature is widely used in Android phones and there are some popular apps as well for swipe typing. Now iOS has also come up with the QuickPath keyboard where you can type with a single hand by just swiping through the words. You will also get similar word suggestions while you swipe through the keyboard.
     

    Video and Photos

     
    If you have recorded the new feature in wrong orientation then you need not worry, you can change the orientation post-recording and there are more filters and effects to edit the video. There is a new photos tab which will help you so delete duplicate photos and highlight the best snapshots. Portrait lighting, a tool in the camera app helps you to change the focus of light and change the intensity.
     

    Identity Protection

     
    Sign in with Apple allows you to log into apps with mentioning your email ID which will restrict the third party apps to track the user activities. There is also an option to hide or share your email ID and Apple will create a random email ID for an app that forwards to your original email account which will mask your real identity.
     

    Maps

     
    In the new map, you can explore the city roads, parks, and buildings in a 3D 360° view. Google map does not work smoothly when it comes to saved searches and this is why now you can rely on the improved Apple maps for navigation. There is a probability that the 3D 360-degree experience can also be used as a VR feature in the upcoming iPhones.
     

    Impact on the apps

     
    The iPhone apps are packaged in a new way which makes them 50% smaller and makes updates up to 60% smaller. It also increases the performance as this helps app load twice as fast. Also, there is a slight upgrade in the privacy as now you can allow the apps to use the location just once. Apple will send you warnings about the apps which continue to track you in the background. This means that the apps which use location more often like delivery, transport, e-commerce, etc will have to make changes in their code algorithms to provide a better user experience.
     

    Conclusion

     
    There are many other tweaks like memoji profiles in Apple’s messaging app, new fonts in the mail, a new gallery view for notes and support for shared folders, and adding details in the reminders. So now the question is, which iPhones will get the iOS 13? So to clear things, iPhone 6s or later can get the new iOS 13 update. There are speculations that more updates will be announced with the upcoming phone launch. But these new updates were necessary as Android is already leading with some of these features in Android Q.

     
    Related Articles:

  • pCloudy Announces Availability Of iOS 13 (beta) and iPadOS Devices On Cloud
  • pCloudy Announces Availability of iOS 12 Devices on Cloud
  • iOS 12 is Now Available on pCloudy. Go Forth and Test Your Apps Now!
  • pCloudy Announces Availability of iOS 11.3 and 11.4 (beta) Devices on Cloud
  • Android and iOS: Basics and Comparison