Quality Assurance is a Crucial Step in the Web Development Process
Quality Assurance BitCot
Manual testing is the process of performing a set of manual actions on a system expecting a certain output. When the expected output is not obtained, the result of the test is a failure and a defect is raised for the developer to rectify the same.
Why Manual Testing Is Critical
  • It is the most basic level of testing. Any system needs to be manually tested before being automated.
  • Tests like User Experience testing which are qualitative cannot be automated.
  • Manual testing is easy, inexpensive and simple to plan and execute.
  • Manual testing is preferred often whenever a system undergoes continuous changes.
  • Maintenance of manual systems is much easier compared to automation systems.
  • Every other testing method can only complement the manual method of testing, and can’t replace it.
We at Bitcot thus give utmost priority to manual testing and believe that each system needs to be manually tested thoroughly at least once before being automated.

Test Process Followed by BitCot

The waterfall method of testing has often lead to major losses to organizations mainly because it is inflexible, scope of testing is limited and it does not make the best use of the available time among members. In this context, Agile methodology of software testing does everything that waterfall method does, and more. The Agile method ensures that all the software processes are reversible and iterative.
What is Agile?
  • Divide a project into small independent modules.
  • Classify requirements for each and develop each module.
  • Once development of a module is done, start developing the next independent module while the first is tested by testing team.
  • Repeat Steps 1 to 3 till all the modules of the project are developed.
  • Whenever any issues arise, immediately go back to Step 2 or 3 and change the requirements or re-develop the module and execute step 3.
We at Bitcot follow only the Agile methodology of software development and testing.
Agile Method of Software Testing
  • How? Testing is done in sprints. The time duration of each sprint is decided by the scrum master or the test manager as per the project needs.
  • What? In each sprint, a certain module or set of modules are taken for testing by the testing team, executed and defects are fixed by the Dev team.
  • Why? Testing is done in sprints. The time duration of each sprint is decided by the scrum master or the test manager as per the project needs.

Stages in Agile Software Testing Process

Why Automate

Every software development group tests its products, yet delivered software always has defects. Test engineers strive to catch them before the product is released but they always creep in and they often reappear, even with the best manual testing processes. Automated software testing is the best way to increase the effectiveness, efficiency and coverage of your software testing.

Manual software testing is performed by a human sitting in front of a computer carefully going through application screens, trying various usage and input combinations, comparing the results to the expected behavior and recording their observations. Manual tests are repeated often during development cycles for source code changes and other situations like multiple operating environments and hardware configurations. An automated testing tool is able to playback pre-recorded and predefined actions, compare the results to the expected behavior and report the success or failure of these manual tests to a test engineer. Once automated tests are created they can easily be repeated and they can be extended to perform tasks impossible with manual testing. Because of this, savvy managers have found that automated software testing is an essential component of successful development projects.

Need for Automation

Saves Money Saves Money
Automation testing can save on the costs of having someone to manually check every functionality of your site after every time a new build has been deployed.
Saves Time Saves Time
Tests that can take many hours to manually verify can be reduced to minutes by running automated scripts and verifying their logs.
Others Benefits Others Benefits
  • Simplifies your testing by automating the critical functionalities of your site.
  • Reduces Human Error since it requires minimum effort to maintain after coding.
  • Real Time Logging enables you to focus on test results immediately.
  • Regression Testing with minimum effort to ensure nothing has broken after any change to a build.

Automation Process Flow

Lifecycle of automation process followed in TSU
Identify Modules to Automate Identification of modules and functionalities to automate is a critical step in any project. Often only critical modules and functionalities are automated.
Writing Automation Scripts Using automation tools such as Selenium and Appium, write automation scripts for the identified modules and functionalities.
Running and Monitoring Logs The automated scripts are to be run periodically and their logs need to be monitored for any issues detected. Issues need to be logged when there is a deviation from the expected result
Update the Code Periodically monitor the changes to the source code and update the code to be consistent with the code.

Automation Tools Used

Automation Tools Used - Selenium

  • Selenium is a web testing tool which uses JavaScript and iframes to embed the test automation engine into the browser.
  • Supports many programming languages Java, Ruby, C# and Python.
  • It allows the same test scripts to be used to test multiple browsers on multiple platforms.
  • Since it is an , there are no Licensing costs associated with it.

Continous Integration Using Saucelabs And App Thwack

  • The recent improvements in automation field has meant that the automation scripts need to be continuously integrated to cloud and available to clients for execution.
  • This has been made possible by several cloud based automation services such as SauceLabs.
  • SauceLabs enable the users to run their Selenium scripts on the cloud by accessing the script on a Virtual Machine and simulate running scripts on multiple browsers and versions at once.
  • SauceLabs provide reports with metadata and console logs while executing the scripts for the user to be able to accurately identify the cause of any issues found.
  • AppThwack helps the users to run the Appium scripts on multiple real remote devices.
  • This helps the code to be executed by a user only by specifying the desired platform name, version name and device name and validating the successful run of scripts including device logs.

Why BitCot for automation?

  • Collective Collective automation experience spanning thousands of man hours.
  • Selenium Use of powerful tools such as Selenium, Calabash and Appium for Web and Mobile automation.
  • Optimization Code modularization and optimization to achieve the most efficient test process.
  • Scripts Scripts can be run on cloud using SauceLabs and execution results are available for clients for monitoring.

Automation By BitCot A Case Study

Automating the most popular new social networking site of 2014
Crunched Timeline TSU was launched to the public on Dec 2014 and we had been given the opportunity to automate only after the website had gone live and had only a few months’ time to complete automation of the entire site .
Defect and Status Reporting The team used JIRA to log the defects using Selenium automation tool in Ruby Language and status was reported on a daily and consolidated weekly reports.
Structured Testing The TSU QA team took only three months to automate the complete functionality of the site and this includes writing some 300 plus test scripts covered over 6700 lines of code.
SauceLabs Integration Once completely optimized the code was uploaded to SauceLabs from where the clients can run the scripts whenever necessary and obtain the pass/fail status from the test logs.

Why BitCot?

Our custom software development team has extensive experience in developing web applications. We develop engaging enterprise quality applications for both startups and industry leading companies, spanning IOT, Healthcare, Insurance, AI, Entertainment. We specialize in using ROR, PHP, Angular, ReactJS, Bootstrap CSS, LESS, to create the most robust and intuitive user interfaces, while at the same time architecting cloud based solutions that have proven to be much easier to manage.