Thursday 7 July 2016

When You Should Choose Manual vs. Automated Testing?

Manual and Automation testing, these are two types of testing, we can use both methods, but depends on project requirement, budget and also which is benefited to the project.



Manual and Automation testing both has overlap between the capabilities but no one can replace the other.

Manual Testing:
These is a testing process in which we can do manually and find the defect without the usage of tools or automation script. 

Following are the types of testing types are performed manually during the testing life cycle (STLC) : 

Acceptance Testing: This type of testing done by User or a customer and verifies that the system meets the customer specified requirements or not. 

White Box Testing (Glass box Testing): This type of testing based on information of the internal logic of an application’s code. It works on Internal working code of the system. Testing are based on coverage of code statements, branches, paths, conditions.

Black Box Testing: These testing done from any non-technical tester No need to knowledge on any internal code/part of the system. It is a testing method to test functionalities and requirements of the system. 

Unit Testing: It is use to test specific component of software or module, specially this testing done by developer and not by testers, because it needs thorough knowledge of the internal programming design and code.

System Testing: It is a technique to test whole system as per requirements.

Integration Testing: This testing done after integrate the modules to verify the functionality is working fine. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially applicable to client/server and distributed systems.

Manual Tester need to think and act an End user perspective and tester need to be very patient, creative and open minded.

Automation Testing:
Regression testing which are repetitive actions going to automated, automation makes use of specialized tools like selenium, QTP etc. To control the execution of tests and compares actual result against the expected result.

Testing Tools like selenium webdriver , QTP not only help us to perform regression tests but also helps us to automate data set up generation, product installation, GUI interaction, defect logging, etc.

Typically, there are 3 test automation frameworks that are adopted while automating the applications.

Data Driven Automation Framework: In data driven Framework , while Test case logic resides in Test Scripts, the Test Data is separated and kept outside the Test Scripts.Test Data is read from the external files like Excel Files, Text Files, CSV Files etc and are loaded into the variables inside the Test Script. Variables are used both for Input values and for Verification values.

Keyword Driven Automation Framework (Table-Driven): The Keyword-Driven framework requires the development of data tables and keywords, independent of the test automation tool used to execute them . Tests can be designed with or without the Application. In this framework test, the functionality of the application-under-test is documented in a table as well as in step-by-step instructions for each test that’s why it is also known as Table-Driven framework.

Hybrid Automation Framework: As the name suggests this framework is the combination of one or more frameworks like data-driven and keyword driven from their strengths and trying to mitigate their weaknesses. This hybrid test automation framework is what most frameworks evolve into over time and multiple projects. Typically maximum industry uses Keyword Framework in combination of Function decomposition method.

Popular Tools that are used for Functional automation:

1. QTP

2. Rational Robot

3. Coded UI

4. Selenium

Popular Tools that are used for Non-Functional automation:

1. Jmeter

2. Load Runner

3. Burp Suite

In Automation you will take a look at your code, change it and continue to run tests until the actual and expected result are not verify. In this method which uses automation tools to run the tests that repeat predefined actions, match with real result. If the project prospects and results align, your project is behaving as it should, and you are likely defect free. If the two don’t align, still, there is a problem that requires to be addressed.

Conclusion:
After knowing about of manual and automation testing, For excellence software testing, both testing methods are required and both should be studied sensibly because those values characterize the core of Software QA. Now its easy to choose that which type of testing is useful in a particular situation. Same kind of testing we can not use in all situations, so that make a right decision before start the any testing can save your lots of time and offer improve results inclusive.


About Author:
Roshni Deshmukh is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: roshni.deshmukh@spluspl.com

Friday 1 July 2016

Role of a Business Analyst in UAT

Introduction 

A Business Analyst plays a vital role in any software development phase. BA does requirements gathering for development of software. It is very critical to understand the business needs and the kind of components which need to go in the system to be built. For this purpose to be served; the business analyst needs to step into the user’s shoes, have a thorough knowledge of the domain and be detail oriented. UAT is one of the important phases of software development life cycle, after which on receiving a sign-off, the system goes live. Once the software or the system is developed, it undergoes various stages of testing and UAT is one of the testing stages performed by the business users. The ultimate goal is to build a system which meets the requirements specified by the business and a system which is bug-free.

Importance of Business Analyst in UAT
  • The Business Analyst is a bridge between the business side and the development team. The development team solely relies on a BA to develop the software as far as the functionality and the components of the system are concerned. A gap in understanding can lead to gaps in the system. There are various important reasons for involving a business analyst in UAT.
  • As already stated above, BA understands the functional working of the software and has the know-how to validate the system. The fact that the system has been built as per the requirements specification, doesn’t make it acceptable. A sign-off from the stakeholders is necessary for this. BA and the stakeholders work mutually towards this.
  • When testing comes into picture; test cases are prepared which are performed during UAT by the business users. Test cases help in getting a real time understanding of the functioning of the system developed. A business analyst helps in achieving this.
  • UAT checks the effectiveness and efficiency of the system. When a BA is involved in UAT, he can help clear the doubts and questions of the users during testing sessions, as he is the one with end-to-end functional knowledge of the system.
  • UAT also helps in zeroing down if any new feature or functionality needs to be incorporated in the software. The rationale behind the necessity of the new feature is evaluated by the business analyst and Change Advisory Board together, along with other business stakeholders.
  • If any errors are discovered during UAT, which impose risk on the working of the system and have a high impact on the functioning of other modules, they are rectified or undergo change management (depending on the severity of the error). A business analyst helps in determining the severity of the errors.
  • UAT helps the users in checking if the system is running smoothly as per the specifications and expectations. This helps in avoiding any drastic changes to the system once it has gone live. The presence of a BA helps in ensuring the precision of the software.

Conclusion

The involvement of a business analyst depends on the type of organisation and the type of project. In any case, it is important that a business analyst has commendable analytical skills, should wear his thinking cap when decision making is concerned, should be detail oriented and knowledgeable about the business domain. If not, then a good research work always helps. Having a business analyst involved during User Acceptance Testing will not only help in making the business users properly understand the working of the system, but also aid in supporting the training, find out the loopholes and give a proper solution or a mitigation plan for the same.

About Author:
Devika Vaghela is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: devika.vaghela@spluspl.com