Differences between Mobile Native Apps and Mobile Web Apps

What is a Mobile Application?

Mobile applications are applications created by companies, developers to do a specific task(for a specific use). These applications are called as mobile native applications or mobile web based applications. These applications either run on mobile devices (native apps) or on websites (mobile web apps).

Mobile Application Types:

  • What is Mobile Native Apps: The applications that reside on the phone or that can be downloaded from OEM stores.
  • What is Mobile Web Based Apps: The applications that can be accessed through Browsers.

Uses of Mobile Applications:

  • Banking: Banking applications are created to access account, money transfer etc.
  • Chatting/Browsing: Chatting applications like Gmail, messenger are used for chatting purpose. Searching and browsing in search engines.
  • Information: Newspaper applications are created to provide latest news.
  • Payment: Utilities (mobile phone, land line, electricity etc) can be paid.
  • Social Networking Websites: Facebook, Twitter, Linked In can be accessed.
  • Online Sales: Products or services can be bought online.
  • Online Trading: Online trading on stocks, futures and options and the latest information will be updated via charts/graphs.
  • GPS: Can be used to find a lost phone or about the person’s vehicle’s location.
  • Games: You can play offline or online.
  • Insurance: You can home insurance quotes, health insurance quotes.
  • Sports: You can watch sports activities.
  • IT: Several applications are created to help the users.

Differences between Mobile Native Apps and Mobile Web Apps:

[ultimatetables 78 /]

 

What is Mobile Ecosystem?

Mobile Ecosystem:

Mobile Ecosystem is collection of multiple devices (mobile phones, Tablet, Phablet etc), software (operating system, development tools, testing tools etc.), companies (device manufacturers, carrier, apps stores, development/testing companies, etc.) etc., and the process by which data (sms, bank transactions etc.), is transferred/shared by a user from one device to another device or by the device itself based on some programs (Birthday, Wedding Messages, calendar).

Data (Text, MultiMedia, VOICE) sharing can be done between devices of the same operating system or different operating systems. Examples: IPhone (IOS) to Windows Phone or IPhone(IOS) to Nexus(Android) or Motorola(Android) to Nexus (Android).

Data can be also shared between multiple devices with the same operating system of the same manufacturer. Example: Apples: IOS: Iphone, Ipad, to Ipod, TV, Laptops.

Process:

  • Mobile is manufactured with necessary software and applications.
  • Users buy phones and subscribe to plans with carriers. If needed, buys/uploads applications for the device.
  • From time to time, new applications or features are uploaded or upgraded in the device as and when the need arises.

Mobile Manufacturers:

They manufacture mobiles.

  • Example: Samsung, BlackBerry, Sony, Nokia, Motorola, Windows Phone, Nexus

Operating System:

This is the important component of a Mobile, which controls/operates all applications that are residing on the mobile phone. Android is open source and IOS is a closed source.

  • Example: IOS, Android, BlackBerry OS, Symbian, Bada etc.

Mobile Ecosystem:

 

Mobile Ecosystem:

Mobile Apps Development Tools:

  • Android Applications are developed with Eclipse, Intellij Idea etc.
  • BlackBerry Applications are developed with Eclipse etc.
  • IOS Applications are developed with XCode, MonoDevelop, AppCode etc.
  • Windows Phone Applications are developed with Microsoft Visual Studio etc.

Please go to relevant websites to get more information on each Tool.

Mobile Website Development Tools:

  • HTML5, CSS3, JavaScript  etc. are used to create mobile websites.

Mobile Apps Testing Tools:

A. Emulators:

Actual device (mobile) operations and functions are simulated on to the computer. Instead of buying several devices (Motorola, Samsung, Micromax etc), we can use emulators for functional testing. Network Connectivity, resolution testing etc cannot be tested 100% with emulators. So for testing to be 100% perfect, devices are needed and again buying several devices will be very costly. For this, you can go to Mobile Cloud environment companies and rent those mobile phone.

B. Mobile Cloud:

Companies rent mobiles and other devices virtually at hourly or weekly basis or monthly basis etc. Applications can be tested by subscribing to those companies.

Example:

  • DeviceAnywhere (http://www.deviceanywhere.com/mobile-application-testing-overview.html)
  • Perfecto Mobile: www.perfectomobile.com

C. Mobile Testing Tools:

Jamo Solutions, Perfecto Mobile, Device Anywhere Pro.

Mobile Stores:

Application created can be uploaded in stores after getting approval from those stores and applications can be sold. Applications can also be downloaded at free of cost or on paid basis.

  • Examples: play.google.com, store.apple.com

Mobile Ad Companies:

They display advertisements on the mobiles. Example: Google’s AdMob.

Carrier/Network:

Carriers carry Voice data (calling), text data (sms), and multimedia data etc from one device to another device through Networks. Users subscribe to different plans available with Carriers.

 

 

Career Path of a Software Tester

Organization Hierarchy Chart:

The organization hierarchy mentioned below will not be the same in all companies and differ from each other. We have placed only few titles in the chart.

Career Path and salary of a Software Tester:

Career Path and salary of a Software Tester:

A software tester begins his /her career as a trainee and gets molded as a senior software tester or software testing lead after 4 to 5 years of experience. Playing a lead role involves additional responsibilities like metrics collection, review, training the junior resources etc apart from testing. and involve in project management, quality assurance, process management, SDLC models selection, administration etc. The mapping between career path of a tester and experience in the below mentioned table is based on my experience and it will vary from company to company.

[ultimatetables 74 /]

Pay Scale of a Software Tester:

The salary range of a software tester working in USA mentioned in the above table is a ball park number. Salary will be different from company to company and will be based on US TAX TERMS like w2 (with benefits and without benefits), h1b processing fee, green card processing fee, health insurance, vacation, duration of the project, role in the project, location, sign on bonus, relocation expenses, bench period etc agreed by the candidate and the employer.

When a candidate works on billing rate per hour with an employer, then the amount that is earned will be more since the employer will the pay only the billing rate agreed and will not care about the benefits of the candidate. A middle level software tester can get $40 to $60 per hour and a senior level tester/lead can get between $50 and $70 etc.

 

Mobile Applications Introduction

Mobile Applications Introduction:

Earlier, Mobile phones were introduced into the market with calling facility and minimum features (calculator, calendar, phone book) that reside on the mobile phone. Based on the evolution of new technologies like 2G, 3G, 4G etc. in telecommunication systems, several functions of other devices like Camera (taking pictures), Video Recorder (taking videos), MP3 Players (music player) , Bluetooth (transfer of voice and text data) etc. have been embedded in mobile phone thereby making it’s possibilities endless. By connecting to internet and with browsers, mobile phones can be used to search on the internet, mobile browsing, GPS (graphical positioning system), login to websites/email applications like Gmail, Yahoo etc.

With inbuilt programs/applications on mobile phones, sms, video calling, video conferencing, and multimedia messaging systems are also possible. With hybrid applications that come along with the phone, mobile can also be used to chat (e.g. Google Chat, Yahoo Messenger).

Mobile Phone Types:

  • Feature Phones: With basic features like calling, calendar, clock etc.
  • Smart Phones: With additional features by using internet.
  • Touch Phones: Same like smart phones but with touch operations.

Generation Types:

[ultimatetables 75 /]

For easy mobile browsing, many organizations have created mobile browsing websites also.

Examples of Mobile Websites:

[ultimatetables 76 /]

The latest smart trend is that the OEMs (Original Equipment Manufacturers) like Apple, Microsoft, Google, BlackBerry, Nokia, Samsung, Motorola, HTC, Sony  have developed (developing) several applications which can be downloadable (free or paid) from their stores;  To have an edge in the market, automotive, BFSI (banking, financial services and insurance), health insurance, manufacturing, media/ entertainment and retail organizations have developed new applications that reside in the OEM stores.

Mobile Manufacturers and Mobile Applications Stores:

[ultimatetables 77 /]

Moreover individuals also create applications and its available either as free or paid in OEM stores.

 

Software Testing Job Titles

How to search for software testing consultant jobs in job boards?

In Software Testing, QA means QUALITY ASSURANCE and QC means QUALITY CONTROL. QA and QC are different processes or procedures in testing. Even though QC is relevant to testing, employers post most of their requirements as QA in job boards. When employers flash their requirements to their staffing vendors, they mention it as QA. The best search in job boards will be “QA” or “Tester” When you search for job opening, please read job descriptions and if you are eligible, submit your resume.

Software testing job titles are either based on the technology (C++ QA tester) or domain (Manual tester with insurance background) or technology/domain (PeopleSoft HRMS tester).

Software testing job titles are either based on the technology (C++ QA tester) or domain (Manual tester with insurance background) or technology/domain (PeopleSoft HRMS tester).

The word “Tester” was searched in www.Dice.com and few results of software testing job titles are shown below:

  • ASR Automation Tester
  • Automated Developer/Tester
  • Automation Tester
  • Data Interface, ETL Tester – ETL Tester, PeopleSoft HR Modules
  • Developer/Tester
  • ETL Tester
  • Java J2EE _Selenium Tester
  • LTE Tester
  • Mobile Tester – Senior
  • Multiple QTP and perf tester positions
  • Penetration Tester
  • PeopleSoft HRMS Tester
  • PeopleSoft Tester
  • QA Compliance Tester
  • QA Tester
  • QA Tester (Drupal & Demandware – no back-end!)
  • QA/EDI Tester
  • Quality Assurance Tester
  • Scrum Tester
  • Selenium Tester
  • Senior Tester with previous Java development experience
  • Software Tester
  • Software Tester (Automated) – QA Analyst
  • Sr QA Tester
  • Telecome Drive Tester
  • Webservices Tester
  • WiFi Telecom Tester

The word “Manual Tester” was searched in www.Dice.com and few results software testing job titles are shown below:

  • Manual Tester
  • Manual Tester – Mobile Devices
  • Manual Tester – Universal User Interface (UUI)
  • Manual Tester (Lockbox Experience)
  • Manual Tester (Unix Background)
  • Manual tester With Experience in Mobile Application Testing, Web Ap
  • Manual Tester with Insurance background
  • Manual Tester/Automation Tester
  • Manual Tester-Fulltime Position
  • QA – Manual Tester with some automation-Immediate Need
  • QA Automation / Manual Tester
  • QA Manual Tester
  • QA Manual Tester (TSYS)
  • QA Tester/BA Analyst/Manual Tester in Houston, TX (westside)
  • QA with XBOX experience
  • Quality Assurance Engineer I – Analyst
  • Quality Assurance Engineer II – Analyst
  • Senior Manual Tester with Programming skills
  • Sr. Manual Tester
  • Test Engineer
  • Web Tester / SQL

The word “QA” was searched in www.Dice.com and few results of QA software testing job titles are shown below.

  • BI QA Analyst
  • BI QA Analyst (SQLServer/Informatica/Cognos)
  • ETL Tester / Datawarehouse Tester / QA Tester
  • Hardware QA Technician
  • Healthcare QA
  • Looking for a combo programmer and QA pro with Web Services Testing and Unix Shell Scripting
  • Mid / Sr. QA Engineer (Automation)
  • POS Systems QA Analyst
  • QA Analyst
  • QA Analyst – .NET, C#, Test Automation
  • QA Automation Engineer
  • QA Engineer
  • QA Engineer – QA Engineer, Web Automation Testing, Java
  • QA Engineer – Storage background desired
  • QA Engineer for mobile or desktop applications
  • QA Lead
  • QA Support Analyst
  • QA Testing Consultant
  • QA Testing Lead
  • QA with Dev exp. in is Trading or OTC or Swaps
  • Senior QA Consultant
  • Senior QA Engineer – Release Engineering, Software Quality Assur
  • Senior QA Testing Specialist
  • Software QA Engineer

 

Open Source Testing Software List

Open Source Software Testing Tools List:

There are several OPEN SOURCE TESTING TOOLS available and we have mentioned only the extensively used tools mentioned by Gartner i.e. Gartner’s Magic Quadrant for Integrated Software Quality Suites published on 11th July 2013 (www.gartner.com). To get more details about the product, follow the respective links mentioned alongside each tool.

Proprietary Software: Here you have to pay some amount, buy the product (Source code is not provided). Only executable version of the software is provided.

Trial Version Software: You can use it until the expiry date of the trial version (Source code is not provided).

Cloud Based Software: You can use it if you pay the amount on a monthly basis or quarterly basis or yearly basis (Source code is not provided).

What is OpenSource Software?

In open source software, you get the source code at free of cost. You can use the software (AS IS) for your requirements. If you want to add some more features, you can change the code, redistribute it or you can use it for your own requirement. For more information about Open Source Software, please visit Open Source Software.

Open Source Testing Tools:

[ultimatetables 73 /]

 

Software Testing Tools List

Software Testing/QA/Mobile Tools List:

There are several TESTING TOOLS available from different software developing companies and we have mentioned only the popular tools available in the market. This document was created from Gartner’s Magic Quadrant for Integrated Software Quality Suites published on 11th July 2013(www.gartner.com). To get more details about the product, we have mentioned their website URLs alongside.

Leaders: HP, IBM, Microsoft, Oracle, Soasta, Microfocus

Visionaries: Tricentis, Original Software, WorkSoft, SmartBear, Telerik

Niche Players: Parasoft, Smartesoft, Automation Anywhere

Challengers: CA Technologies.

Testing Tools can be broadly classified as:

Test Management Tools

Performance Testing Tools

Functional and Regression Testing Tools

Software Testing Tools List:

Company Name: HP

Website: www.hp.com

[ultimatetables 55 /]


Company Name: Microsoft

Website: www.Microsoft.com

[ultimatetables 56 /]


Company Name: IBM

Website: www.IBM.com

[ultimatetables 57 /]


Company Name: MicroFocus

Website: www.MicroFocus.com

[ultimatetables 58 /]


Company Name: Oracle

Website: www.Oracle.com

[ultimatetables 59 /]


Company Name: SOASTA

Website: www.SOASTA.com

[ultimatetables 60 /]


Company Name: ParaSoft

Website: www.ParaSoft.com

[ultimatetables 61 /]


Company Name: WorkSoft

Website: www.WorkSoft.com

[ultimatetables 62 /]


Company Name: Tricentis

Website: www.Tricentis.com

[ultimatetables 63 /]


Company Name: Original Software

Website: www.Origsoft.com

[ultimatetables 64 /]


Company Name: SmarteSoft

Website: www.SmarteSoft.com

[ultimatetables 65 /]


Company Name: SmartBear Software

Website: www.Smartbear.com

[ultimatetables 66 /]


Company Name: SeaPine Software

Website: www.Seapine.com

[ultimatetables 67 /]


Company Name: Automation Anywhere Inc.

Website: www.AutomationAnywhere.com

[ultimatetables 68 /]


Company Name: CA Technologies

Website: www.CA.com

[ultimatetables 69 /]


Company Name: Atlassian

Website: www.Atlassian.com

[ultimatetables 70 /]


Company Name: TeleRik

Website: www.TeleRik.com

[ultimatetables 71 /]


Company Name: option3.io

Website: https://www.option3.io/jiffy-test

[ultimatetables 88 /]


Other Popular Software Testing Tools:

[ultimatetables 72 /]

 

What is Bug Life Cycle in Software Testing?

What is Defect/Bug Life Cycle in Defect Tracking?

A defect in a Software testing process will undergo different status like New, Open, Assigned, Rejected, Fixed, Reopen, ReTest, Closed, Deferred etc. before being considered as Closed or Rejected or Deferred.

So there are 3 different situations possible here in any manual or automated testing in Defect Management.

  • New – Closed
  • New – Rejected
  • New – Deferred (Postponed)

The time taken for the defect to be closed or rejected or deferred is called as a BUG LIFE CYCLE.

Explanation for Status:

[ultimatetables 53 /]

Defect Tracking:

With the email application example, we will explain the Defect/bug life cycle about how a new defect is created and tracked.

Once the email application development is completed, the tester tests the login page. While testing the login page, the tester founds out that the username field allows duplicate names. So the tester logs in to Test Management Software and registers a new defect.

Role of a Test Lead, Tester, Development Lead and Developer (DBA) in closing the defect:

[ultimatetables 54 /]

Other situations that arise during the handling of defects:

  • Tester reports to Testing Lead about a defect and Test Lead rejects it.
  • Test Lead is okay with the defect created by tester and reports the defect to the Development Lead and Development Lead rejects it.
  • Test Lead, Developer Lead is okay with defect and Developer works on the defect and reports to Testing Lead that the defect has been resolved. Again, Tester retests and reports that the defect has not been resolved and not closed. So, he reopens the defects once again.
  • Based on the priority or severity (The severity of the defect may be low, medium, high, critical and cosmetic etc. ) of the defect, the defect may not be closed at all or it may be deferred (postponed).

Defect/Bug Life Cycle Flow Chart:

Defect/Bug Life Cycle Flow Chart

 

Software Testing Methods,Types and Levels

Software Testing Methods:

In a software development life cycle (SDLC), a project is split into modules (also known as components or unit). This helps the BAs, SMEs, Developers and team and testers to work efficiently on that unit. In Data Models also, the entire project is split as subject areas (units). This will help the data modeling team to generate sql code for each subject area and share it with DBA team, print out for each subject area, and for understanding the business needs also.

In Software Testing Life Cycle unit testing, integration testing, system testing and acceptance called levels of testing:

Examples:

  • Telecommunication: When you subscribe with a service provider for phone facilities: Service Request, Service Order, Tickets are three different modules and data flows between them.
  • Home Mortgage: When you a buy a home in Loan: In USA, Loan Origination, Appraisal, Underwriting, Loan Approval, Loan Disbursement are different modules and data flows between them. After the payment is done usually banks pledge the loan with Fannie Mae or Freddie Mac, where data flows between systems.
  • Retail Transactions: When something is bought and when you pay for that, data flows from one system to another system. From your bank, payment gateways (www.ccvenue.com, www.ebs.in, www.payu.in) or payment system (PayPal) help to transfer the money to another system in a secured way.

Step1 – Unit Testing:

The testing is conducted by the developer whether functions related to the module are properly working.

Step2 – Integration Testing:

This is mainly used for checking the data flow between the entities or modules or Systems (Business to Business (B2B) transactions or Business to Customer (B2C)) transactions. This testing is conducted by the Testers.

Step3 – System Testing:

This testing is used mainly to check whether all functional and non-functional behavior of the system is working properly.

Step4 – Acceptance Testing:

This testing is done by the development team and users who use the application.

  • Alpha Testing: It is done by the developers or tester in a development environment.
  • Beta Testing: It is done by the client (customer) in their premises i.e. outside the development environment. BAs, SMEs test it and they share their feedback to development team. If there are any defects it will be rectified by development team.
  • User Acceptance Testing: This is the final testing done by the client (Business Users – BAs and SMEs) and they sign off. Then the product is released to actual users.

Other Testing Methods:

Regression Testing:

Whenever there are any updates (addition, deletion, modification), regression testing is done to whether the system behaves in a proper ways.

Example: Assume a table has composite primary keys and its primary keys are migrated to several child tables. When there is a need to delete one of the columns of the composite primary key, then that column will be deleted in the child tables also. To check whether there is any impact, again testing is done, which is called regression testing.

Smoke Testing:

There are several requirements in a project and each requirement has many functions. Build Team sets up the testing environment and before testing all functionalities, some basic functionalities are tested (smoke testing) and if it is okay, then detailed testing is done. If basic functionalities are not okay, then resources will be wasted in detailed testing. To avoid this smoke testing is done earlier.

White Box Testing:

Development Team writes code (source code) for different requirements. The tester understands and tests the source code to find out whether the programming logic, syntax is correct to meet the expectations of the system.

Black Box Testing:

Only functional behavior of the system is tested by the tester. There is no need to understand the source code.

Installation Testing:

Companies develop new products, then releases patch, versions etc to the customers. A customer, who already has the product, should upgrade their version to the latest updates. This testing focuses on the different problems that may arise when a product or an application is installed/uninstalled/re-installed/upgraded.

 

Manual and Automated Testing

What is Manual and Automated Testing in Software Testing?

Manual Testing:

In a web based email application, a manual tester tests the application based on test data, test scenarios provided in TEST CASE document and doesn’t use any automation tools.

Example:

For the login page, a manual tester will be testing the following and verify whether there are any defects in the screen.

  • URL of the login page: When the URL is typed in the web browser, whether it navigates to the right page.
  • Whether the login page contains username, password fields and LOG IN button.
  • By typing incorrect information in the username or password or username/password and clicking the LOG IN button.
  • By providing no information in username/password.
  • By typing correct information in username and password fields.

If there are any defects, then the tester will record the information in a Test Management Tool. Example (HP’s QUALITY CENTER; previously called as TEST DIRECTOR). Until the defect is closed, the tester will follow up with other teams and close it. Note: Closing of a defect depends upon the priority of the issue.

Automated Testing:

Testing done by using software without human intervention is called automated testing. Functionality Testing and non-Functionality testing can be done with the help of these tools.

When you type mail.yahoo.com or www.gmail.com in the web browser, at times, these pages will not open quickly. Either it will be delayed or it will not open at all. The reason is that it is not able to withstand the load.

Load Testing/Stress: In this testing, the automated tool creates “n” (example: One Million users) number of virtual users and concurrently these user will login to the email application. If all users are able to login correctly and access the information, then everything looks okay. If there is a time delay or some errors or if it doesn’t open, then the tester figures out that the email application is not able to withstand the load/stress.

Volume Testing: To determine whether the system can handle huge volumes of data. Here the automated software enters data.

1 2