Technology Gazette Site

Tech Nerd

7 Best Practices For Successful Software Testing

Just like application development, testing plays an important role in a software project lifecycle. Proper execution of software testing can help you determine the success or failure of your project accurately while saving you a huge amount of time and money.

But to ensure a realistic estimation and success of test automation project, it is essential to implement certain best practices. Here are seven software testing best practices every Microsoft development company must follow in order to ensure the accuracy and success of the software project.

Software Testing Best Practices:

Test Case Creation: The process of test case creation starts when the requirements of the software are approved. You must finalize the test case preparation while the coding is still in process so that you do not hustle during QA (Quality Assessment) execution. Use test case type field to understand the test case types while writing the test cases. The test case types can include positive test cases, negative test cases, smoke test cases and regression test cases.

Prepare Regression Test Case List: A new build of software will always have some impact on the existing functionality of the software. As a result, it is important to prepare a regression test case list which ensures that the existing functions of the software are not hampered. Enable the QA team to update the existing test cases and ensure high-quality before you hand over a new release to them. Also, following the below-mentioned practices during a new release is a must.

a) Clear the smoke tests for existing functionality and prepare new smoke tests for the current release.
b) The regression test cases must be updated. So, if the old test cases have become obsolete, mark them as obsolete and add new test cases.

Smoke Testing: Smoke tests are test cases that cover the important areas of software testing. There are about 20- 30 smoke test cases which are basic and should work whenever a new release is prepared. Moreover, a successful smoke test helps you proceed with deep testing. But in case a smoke test fails, the QA must return the build to development team. Some smoke testing best practices you must follow include:

a) Preparing a smoke test set
b) Handing over the smoke test set to the team responsible for merging the code

Further, the smoke test needs to be reviewed to ensure its meets the following:

1. A smoke test should cover all the requirements of the software
2. It should not be ambiguous
3. It should not leave any missing function uncovered during the test
4. It should be an overview of all the major functions and cover each functionality in depth
5. Smoke tests should not be large in numbers

Positive & Negative Testing: Positive testing is where a test is performed to check whether the software meets all the requirements through positive scenarios. Positive test cases are created on the basis of the requirements of the software. On the other hand, negative testing is done to check the software for any negative scenarios. The tester adds error value in the software to be tested. The negative inputs can include wrong date formats, decimals, or colons in number formats.

Performance Testing: Performance test cases are generally prepared to check the performance of the system and how it responds to different types of volume. It is divided into three main parts:

a) Performance test before and after the release of the software to determine whether the release is fast or slow
b) The tester should reboot machine and clear the cache before starting the performance testing
c) Performance testing should be done with different types of accounts for each part of the software where some parts will include large data and some will include small data

Test Case Preparation: The test case must list all the steps of test execution and each step should be easy to understand. Some of the best practices of creating test cases are:

a) Map the test cases with the requirements for better understanding of each test case
b) Each test case should consist a test case name, number, requirement and description
c) Written details of the login information
d) Mention the type of test case, for example, positive test case or negative test case

Test Case Review: While reviewing the test cases, the tester should discuss the test cases and the requirements with the team. Check the test cases for the adequacy of the information. Make sure all the team members understand the test cases and that no test case is missing. If there's any addition or deletion of any test case, mark it as modification. After reviewing all the test cases, mark the document as 'Test Cases Reviewed'.

Every enterprise must evaluate and follow the above-mentioned software testing best practices in order to set long-term goals and successfully achieve them. Does your enterprise follow any best practices for successful software testing, let us know in the comments below.


Navigation Interfaces in Xamarin.Forms

Navigation in mobile apps is a key factor contributing to the usability of the app. Confusing navigation can quickly frustrate any user and lead to bad reviews. Mobile apps need to accommodate a lot of data and views with limited screen estate, unlike desktop apps where you can have multiple views on one screen. This presents a challenge for developers and designers to come up with elegant navigation interfaces.

Xamarin application developers often face this challenge. Thankfully, Xamarin Forms has robust out-of-the-box capabilities for making navigation easy across mobile platforms and devices.

Xamarin Forms provides a number of navigation experiences like Content Page, Master Detail Page, Navigation Page, Tabbed Page, Carousel Page and Modal Page. This gives developers plenty of options to choose from and build UIs that are easy to navigate. These options can be combined to build complex navigation interfaces.

The beauty of Xamarin Forms lies in its ability to adapt UIs depending on mobile platforms (Android, iOS or Windows Phone). Using the same code-base you can get native-looking navigation elements on all three platforms. Let's take a look at an example.

Tabbed Page is one of the most common UI and Navigation elements to accommodate a large amount of data into multiple views with clear distinction. Let's say you're developing a reminder app and want to separate your week's reminders into different tabs. This can be easily achieved in Xamarin Forms with a few lines of C# code. The result you'll get is native looking tabbed pages on Android, iOS, and Windows Phone. Tab formats on all the three mobile platforms is as follows:

Android: Tabs are placed at the top and the detail area is below the tabs. Names of the tabs are automatically capitalized. You can use the swipe gesture to switch between the tabs and load the detail area of the corresponding tab. Users can also scroll through the collection of tabs if they don't fit on one screen.

Windows Phone: Windows Phone has an almost identical approach to tabbed layouts as Android with the only major difference being the names of the tabs are shown in lower case.

iOS: With iOS, the tabs are at the bottom and the detail area is loaded on the top. Each tab has an accompanying icon which should be a 90x90 PNG image. For other five tabs, you will see a more tab which can be used for additional tabs.

As it is evident from the example above, each platform treats navigation in a different way and Xamarin being a robust cross-platform app development framework does a great job in keeping it simple for developers.

In more complex mobile applications, you'll need to combine various navigation interfaces to deliver a seamless experience. For instance, hierarchical navigation is implemented to enable the user to navigate through different app pages, forwards and backward, as desired. In Xamarin.Forms it's implemented as LIFO or last-in, first-out stack of page objects. Again on each mobile platform, hierarchical navigation is treated differently and xamarin.forms take care of it out-of-the-box.

Conclusion:
In the end, choosing a navigation type depends on your app's use case. You can develop a simple app using only tabbed navigation or combine hierarchical navigation with modal page and pop-ups and give more depth to navigation on your app.

Let us know your opinions on navigation in Xamarin.Forms through the comments below.























How To Create Connected SharePoint Online Team Sites Faster?

A SharePoint team site is a common portal used among many enterprises. It helps project teams collaborate efficiently while ensuring that the clients have quick, easy access to important documents and action items to complete the project successfully. A lot of enterprises turn to custom SharePoint web development for additional business requirements. Microsoft has made SharePoint team sites stronger than ever by introducing its integration with Office 365 Groups.

There were several enhancements rolled out to SharePoint Online team sites in Office 365. It deeply connects to Office 365 Groups which offers a shared inbox, calendar, OneNote notebook, Planner for task management, a place for files and now a modern team site with lists, pages, libraries, and team news. Enterprises can now create a connected team site directly from the SharePoint home in Office 365 just within seconds.




These capabilities can collectively make your team more adaptable, connected and mobile which is a requisite to succeed in the modern digital era. Now let’s dive into the details of creating new team sites connected to Office 365 Groups at lightning speed:

Creating Connected SharePoint Teams Sites In Seconds:
  • Step 1: Users can create sites connected to Office 365 Groups directly from SharePoint home page. Click on the "Create Site" button on SharePoint homepage in Office 365. A two-step creation wizard will appear from the right
  • Step 2: You need to enter the title of your team site, select whether you want to make your group private or public, select the site classification and then click on next
  • Step 3: Add the details of the owners and members, click on Finish and it's done.
A new SharePoint team site is now up and ready-to-use. The new improvements are more intuitive to adjust to your business needs. Users can create Office 365 Groups by using services like Outlook, Microsoft Teams, Yammer and more to get access to a full-powered SharePoint Online team site.

Controlling of Create Site functionality by Admins:

SharePoint Online admins have granular control over the user availability and behavior of the "Create Site" button or command within Sharepoint home in Office 365.

Admins can either completely hide the "Create Site" button or enable it for users who have required permissions to create sites. There are a couple of other settings an admin can control for the new experience. Let's take a closer look at them.
  • Step 1: You can find the updated site creation settings in the SharePoint Online admin center inside the settings tab
  • Step 2: Admins can select to enable or disable the "Create Site" command
  • Step 3: Furthermore, admins can choose what happens when a new SharePoint site is created. These options include creating a classic site or a site within an Office 365 group
If the admins have enabled the original "Start a Site" feature for users, it's important they review the new settings to make sure it conforms to their business needs.

As the entire SharePoint Online team sites experience become modern, users can quickly and easily adjust to common settings without having to click into a classic site settings page multiple times. Instead, the tasks can be accomplished more intuitively within the context of what the users are doing.

SharePoint team sites and Office 365 Groups has taken integrated content collaboration to a new level, making it easier to create, manage and use the content and information throughout the work cycle. If you have any feedback or ideas in relation to SharePoint team site and Office 365 Groups integration, please leave it in the comments below.


A Quick Payment Gateway Selection Guide For Your Online Business

Payment gateway plays a significant role in the success of an eCommerce transaction. Research shows that 50% of consumers are likely to abandon the transaction if their preferred payment gateway is not available during checkout.



Although a majority of online merchants offer multiple payment gateway options to their customers, it doesn't ensure a successful transaction or conversion. There are dozens of payment gateways available in the market. Which is why finding the right payment gateway for your business and consumers is difficult. We have covered a few factors that you must take into consideration while choosing a payment gateway for your eCommerce store.

4 Factors You Must Take Into Account While Choosing The Right Payment Gateway:

  • Does the Payment Gateway Integrate with your eCommerce platform?
    • A majority of payment gateway providers offer easy or one-click integration. But before deciding on one, you must ensure that the payment gateway supports your current version of the eCommerce platform. Some payment gateways do not have existing plugins or extensions for your platform. This involves a lot of custom development work including an enormous amount of time and resources. The best thing you can do is to have an experienced eCommerce development company to develop your store using an open-source platform that offers wide-ranging extensions or plugins. This extensions/plugins can integrate your store with popular payment gateways quickly and easily.
  • Does the Payment Gateway offer methods your target customers use?
    • From the massively popular Mastercard and Visa to other niche payment methods like Bitcoin, there are several online payment methods that are in use around the world. But each payment gateway does not support all the payment methods out there. Therefore, you need to identify the payment methods your target customers are using and choose the payment gateway that supports those methods. For instance, if you select Stripe as the payment gateway and your target customers transact a lot using PayPal, then it's a bad choice as Stripe doesn't accept PayPal payments.
  • Does the Payment Gateway promise to grow with your business?
    • A growing business requires a payment gateway to be able to keep up with it. If the user engagement of your business increases, the payment gateway must offer or launch products that enable customers to make faster payments. Stripe which is a popular payment gateway recently launched a feature for Twitter users that allows them to complete their purchase directly from a tweet without having to leave the website. By using such innovative features and platforms, you can reach out to more customers while ensuring the growth and success of your business.
  • Does the Payment Gateway promise to improve your checkout UX (user experience)?
    • A payment gateway if correctly chosen can improve your checkout process by reducing the number of steps involved and speeding up the process. If you choose to integrate the globally acclaimed service PayPal Express, you can auto-populate the information of your customers through its API and turn it into a one-click checkout. However, since checkout is the overall transaction success determinant, you must ensure that it is both seamless and easy. Customers usually return to stores that offer a fast and painless checkout process which ultimately results in enhancing your customer retention ratio.
Takeaway:
Customers love options and control in everything they do. Offering just one payment gateway may prevent you from increasing your conversions and revenue. So, keep the above-mentioned points in mind while choosing the payments gateways for your business and lower down the cart abandonment rates.

Does your eCommerce store offer multiple payment methods to customers? Which payment gateways is your store integrated with? Drop your comments below.

5 Tips To Ensure Robust Security Of Your Mobile App

The increasing usage of mobile apps has opened up many opportunities for enterprises. But along with the opportunities come inherent security risks that the enterprises should never overlook or underestimate. Gartner predicts that "By 2017, 75% of mobile security breaches will result from mobile app misconfiguration.

Considering the consequences of security attacks, developers must take right measures to defend their applications against them. As no mobile device or operating system offers complete safety, a single mistake can result in critical data leakage, which can even bring down a business in no time. So, go through the following tips to prepare your mobile app for the evolving mobile app threats on the horizon.



Tips To Safeguard Apps From Mobile Security Threats:

  1. Encrypt your Source Code:
Bugs and vulnerabilities within your mobile app’s source code may lead to a security attack. With the help of malicious code, attackers often repackage the ‘Popular Apps’ into ‘Rogue Apps’ and then publish them. This can ultimately infect a million devices at any given time. This is why encrypting your app source code is important. If your application is built on a language which is easy to read, obfuscate it to make it difficult for attackers to read or interpret. However, encrypting it will assure that your source code remains inaccessible. In case of iOS, Apple already provides built-in encryption for building custom iOS application. But you can even implement other available encryption techniques in iOS to encrypt the user data.

  1. Understand Platform Specific Limitations:
If you are developing an app to work on multiple mobile operating systems, make sure you understand security features and restrictions specific to each platform. Consider various use case scenarios, password support, encryption support, and geo-location support for each operating system to control and distribute your app on the chosen platforms appropriately.

  1. Make Provisions for Data Security:
When an application accesses the confidential data of an enterprise, the unstructured information is usually stored in the device storage. Use mobile data encryption to effectively secure the data in the storage with SQLite Database Encryption Modules or file-level encryption across multiple mobile operating systems.

  1. Secure the Backend:
Most of the backend APIs (Application Programming Interface) assume that an app which has been written to access it can only interact with it. But to safeguard the app against malicious attacks, backend servers must have security measures in place. However, as API authentication and transport mechanisms differ from platform-to-platform, you must ensure that all the APIs are verified on the basis of the operating systems you choose to code for.

  1. Perform In-depth QA & Security Check:
Before deploying your application, test it against the randomly generated security scenarios. You can even take help of a hacker to identify the security backdoors within your application. Microsoft and Google put up Hackathons where hundreds and thousands of hackers participate and find out the security issues in an application for a prize money. But if you develop apps independently, you must go through the documentation in detail and if required seek help from an outsider to find out the hidden backdoors within your app.

Implementing these tips can secure your app against mobile malware and lead to end-user satisfaction driving better business prospects for you. What techniques do you implement to secure your mobile app? Share with us using the comment box below.

3 Features A Great Fitness App Must Have

A global mobile health marketing report states that the mHealth app services market which was worth $4 billion approximately in 2014 is now expected to increase to $26 billion by 2017.

Existing fitness apps include a traditional bunch of features like activity tracking, diet and nutrition control, workout and exercise maintenance, etc. But will every new fitness app comprise of similar features?


Entrepreneurs / Startups who are looking to create useful fitness apps and add value to its customers need to pay extra attention in making the app slightly different. And to do that, you first need to define your direction and learn from other similar fitness apps. However, building cross platform mobile apps is the brilliant way to deliver apps faster than ever. So, let’s take a look at some features you can include while developing an engaging fitness app:

Best Features to Use In Fitness App Development:

  1. Create an account:
Health and fitness apps are about individualism. This is why most users ask for a personal account. You can enable various login options such as logging in via email or social networking sites – Facebook, Twitter, Google+, Instagram. A personal account stores user’s data and progress on a single device. This offers users the convenience to switch between devices and easily track all the activities. Also, linking to social networking sites can combine some social media functions and allow users to share their result with their friends alongside.

  1. Connect app with external devices:
Making your fitness app compatible with as many trackers as possible is really important. The wearable manufacturers and mobile platforms enable developers to link the wearable and mobile apps. Google Fit and Apple's Healthkit are the perfect examples of this. They even allow developers to use their SDKs and APIs while developing fitness apps.

  1. Integrate Geolocation:
Geolocation feature enables a developer to create walking routes for a user, track the current position, and record workouts. You can check Strava which is an excellent fitness app offering route recording to its users. However, other than some great fitness app building tools provided by Apple and Google, TomTom is a navigation and tracking hardware service provider. It offers great navigation and real-time mapping services along with APIs for you to use. Another interesting service is Nokia’s Mobile SDKs which provides a set of interfaces to create high-end native apps powered by flexible and reliable mapping platform. Sounds perfect, right?

Developing a fitness app with these features will not only help you create a great fitness app but also revolutionize the fitness world and make you a bit wealthier. Got any awesome feature ideas for building great fitness apps? Please drop them in the comments below.

3 Effective Ways To Secure Your PhoneGap Mobile App

The ever-exploding use of mobile apps has made the business information more vulnerable to security hacks. While the developers leverage cross-platform technologies like PhoneGap to deliver faster apps, securing the PhoneGap/Cordova applications become more important.

As PhoneGap communicates with each OS by using different APIs, you need to secure your PhoneGap app development codes, documents, and enterprise data. Being a PhoneGap development company, you must follow the best practices mentioned below to secure your mobile app.

3 Best Practices For PhoneGap Mobile App Security:


#1 - Secure Your JavaScript: To keep your sensitive code into your app, ensure that you secure JavaScript as much as possible. As known, JavaScript is not compiled - so the best option is to obfuscate it to the extent it becomes unreadable. You must minify your JavaScript assets using Uglify before submitting your app to the app stores. You can even take it to the next level with the help of a paid service like JScrambler as it goes beyond obfuscation and offers more active protection for your JavaScript assets. While using Telerik AppBuilder, you can specify that some files exist only in debug or release configurations. Besides enabling you to manage your debug/release files, the AppBuilder IDEs also lets you automate the process with AppBuilder CLI and Grunt.

#2 - Load JavaScript Remotely: Another viable thing to do is not include your JavaScript assets in the app. Instead, you can load them remotely when the application starts:

However, this isn’t too secure as a quick scan of your source code can reveal your actual source. A better implementation would be to load the remote JavaScript through a secure API which first authenticates your user:
$.ajax({
type: "POST",
url: "https://my-remote-endpoint.com/authenticate", // authenticate your user
data: { username: username, password: password }, // use the authentication parameters that are best for you
success: function (e) {
// check for a successful authentication, and if so, load the script reference returned from your API
$.getScript(e.scriptUrl);
}
});
You can also supplement it on the server by ensuring that only mobile browsers are trying to access this API. Even though it is really easy for someone to spoof a user agent, it cannot harm to add an additional check on the server. Also, secure all your API calls when necessary.

#3 - Limit Your Exposure: Some other ways you can use to limit your exposure to security threats are:
  • Reducing the access to core Cordova plugins to only the ones your app really needs
  • Avoiding Android Gingerbread (2.3) which is considered to be the most insecure Android version
  • Using the InAppBrowser Cordova plugin that uses device’s native browser security to keep the remote content separate from the app
  • Using the PrivacyScreen plugin to hide app content while switching between apps on iOS and Android
  • Using Touch ID Cordova plugin while developing an app for iOS 8 that provides secure authentication to users

When it comes to security, nothing is full-proof. So, start with limiting your exposure and adding as much sensitive data on your secured server as possible. Work through these best practices and keep your PhoneGap app secure. Also, leave your opinions about these PhoneGap app security best practices in the comments.

Why Is Drupal Development Popular Among Government Agencies?

Drupal made a huge splash when it was chosen to redesign the White House website. Today, more than 150 government websites run on Drupal. Apart from just powering government websites in the U.S., it powers the government sites of countries like Australia, Albania, Zimbabwe, and more. This makes Drupal a proven content management system (CMS) that exquisitely meets the diverse requirements of the government organizations around the globe.

But what makes Drupal popular among so many government organizations? The reason is its flexibility. Drupal is widely known for building and managing very large websites. And governments prefer Drupal development due to its capability of managing a variety of projects. However, there are a number of other factors that make Drupal a choice of CMS among government organizations. So, read through the list below

4 Factors That Make Drupal a Preferred Choice For Government Sector:

1. Cost Effective: Drupal, being an open-source platform, minimizes the initial cost of building or re-building a website. It is often considered as the most cost-effective platform. The software is free to download, use and share. This is the biggest long-term benefit for governments as they can save a huge amount for licensing websites. In addition to that, Drupal is developed by a community of 630,000+ developers and comes with thousands of free modules and extensions. Also, the users contribute and maintain the platform continuously. So, governments do not have to worry about the outdated technology issues.

2. Innovation: As Drupal is community-driven by nature, it helps government agencies to innovate through collaboration. It is essential for government agencies to share the technologies and innovations across other government bodies as they can benefit from it. This also fits well with President Obama’s words, “We will work together to ensure the public trust and establish a system of transparency, public participation, and collaboration." Perhaps, this could be one of the reasons why Drupal was chosen for re-building whitehouse.gov.

3. Security: This is another reason that makes government agencies jump onto Drupal bandwagon. Governments have recognized the superior security an open-source model can offer. With a community of more than thousand developers, the security gaps are quickly identified and remediated. It also provides other security methods like community and automated code review. This makes Drupal an obvious choice as website security is of utmost importance to any government organization.

4. Flexibility & Scalability: Drupal is highly flexible and scalable to fit into various projects. From government agencies to enterprises. Drupal can fulfill requirements of all. Name a feature you require and the Drupal community may have a module already. In case you don’t find it, you can develop and contribute it back to the community.

With all the above-listed reasons, Drupal seems to be an appealing solution for developing government websites. Since the launch of White House site, Drupal has made a special place in the government space for itself. It has also shared all the government projects on its community.

What other benefits do you think Drupal can offer for governments and enterprises? List your answers in the comments.