Checkout our demo site to practice selenium https://magento.softwaretestingboard.com/

0 like 0 dislike
1.0k views
by Expert (572 points)
retagged by
I am new to software testing. I have been a test automation engineer all the time. I would like to know different types of testing as a newbie.

2 Answers

1 like 0 dislike
by Expert (570 points)

What is Software Testing?

Software testing is a process for verifying any functionality with respect to the intended behavior of any application/ software. The analysis is performed for ensuring that the software system is defect free and working as per requirement.

The software component or system component is verified for evaluation of properties of interest.
Software testing also identifies the errors, gaps or any discrepancy with the actual requirements in a software. It can be either done manually or using automation tools.

In case of Manual Testing, most of the software testing services work on following types of testing:

1. White box testing : It is the technique of testing internal structures of application Also known as Glass box Testing.

2. Ad-hoc testing : It is type of testing technique which can be performed by any manual testing services without any document or any test case.


3. Integration Testing : When the small modules of an application are integrated together, then there is requirement of integration testing to validate their impact on each other and their performance and reliability.


4. Functional Testing : A functional test could conclude that the software meets its specifications. However, it doesn’t verify if it actually works for the user. The functional dimension is only one of many

5. System Testing : It is a testing technique performed by qa company to test the complete system as per the specified requirements.

6. Stress Testing : A stress test is a test that pushes an application beyond normal load conditions.

7. Performance Testing : It is a type of testing technique in which stability, performance, scalability and/or throughput of your web application(s) is measured by the qa company

8. Usability Testing : Under Usability testing, the software testing services perform from their client’s perspective, for evaluation of user-friendliness? This done to evaluate that how easily the client can learn the functionality of software and how skillfully can the client perform. It is part of black box testing.

9. Acceptance Testing :User Acceptance Tests consist of a set of test steps, which verify if specific requirements are working for the user.

10. Regression Testing: Regression testing is a type of software testing which verifies that software, which was previously developed and tested, still performs correctly after it was changed or interfaced with other software.

11. Beta Testing: Beta Testing is also known as field testing. It takes place at customer’s site. It is performed by the customer to test the application as per the requirement.

by Expert (572 points)
Thank you, Sumit.
0 like 0 dislike
by The go-to Tester (181 points)

Software Testing basics
 
Let me explain you based on my experience. I will try to simplify as much as possible. My explanation given below will not be definition. It will be more of a knowledge transfer as per my professional experience.
 
What is testing?
Testing is a process where we test some product to identify defects. This will be done by the new comer to the testing industry most of the time. Here product can be a Mobile app, Web application, Desktop application, ETL based application or it can be anything. 
 
What is QA?
QA is a process to verify that we have a proper development process in place and the developed product is usable. The QA guy will be mostly involved in writing test cases and making sure that product is the usable stage and all acceptance criteria are met.
 
What is a test case?
A test case is set of instructions/steps you follow in order to test an application. Eg. Simple login functionality for an eCommerce app can have 6 different test cases to test it. The test case should be subjective and any new comer should be able to execute tests case. It should have very detailed instructions. Refer to the screenshot below. 
 
There are many types of testing. But below are set of low-level testing techniques/terms usually being followed in the industry.
Unit Testing: This is done by the developer. He/She will write code to test their own code. The tester/QA does not really have to worry about this part.
Smoke Testing: This is a basic testing we do on a product to make sure that product is testable.
Regression Testing: In regression testing suite, we are going to have a set of tests which we think we need to execute every time the functionality of a product is changed or new functionality is added. This testing usually is very time-consuming. So before we jump into it, we make sure that product is in testable condition by executing a basic set of test cases selected for smoke testing.
Retesting: This is usually done when one bug is resolved. So as a tester, I raise one bug. Meanwhile, I even select set of test cases through which I identified those bugs. Once the bug is marked as fixed or resolved, I execute those set of test cases to make sure that the bug is not found anymore. If the bug is not related to any test cases, I write new test cases and execute those.
Acceptance Testing / UAT: Once you are done with your testing, your product will be handed over to the business team who got the requirement. They will do their own testing to make sure that they can pass on the product to the client or to the consumer.
 
Apart from above four types of testing, below are few testings we do. All below are usually completely or part of regression testing depending on the product.
Integration Testing: In integration testing, we make sure that all modules of the product are integrated properly. E.g. Verify that Gmail is properly integrated with Google Drive.
Interface & Usability Testing: This is to verify that product retain its interface and functions the same way across all platform combinations. E.g. To verify that eCommerce site loads the same way on all different browsers on all desktop and tablets.
Functional Testing: In functional testing, we make sure that product is functional on specified platforms. Eg. To make sure that user can upload a file from Windows machine and from Mac machine as well with the different combination of browsers. 
System Testing: In system testing, you test the entire system to make sure that it works fine before the UAT.
 
All above was to make sure that the software is functional on different environment/platforms or devices. So, in all, we call those as a functionality testing. Below is list of tests which we perform on the software product where we do not need to know the complete functionality of the product. So we call them nonfunctional tests.
Load Testing/Stress Testing: Here we put the load on the product to make sure that it functions fine. E.g. If you are developing the mobile application, we make sure that after activating all functionalities, it is still functional. In a case of eCommerce application, we verify that the site loads even if 1000s of users are accessing at the same time from different locations.
Compatibility & Migration testing: In this, we make sure that system does not break if migrated to the different platform. If a system is required to not to break. Eg. Java Swing based application is expected to work even if its migrated from windows to Mac/Linux.
Data Conversion Testing: As the name says, e.g. you have all your data into CSV or Excel and those are required to be loaded to MSSQL DB, you have to make sure that all tables and relation ships are created properly.
Security/Penetration testing: If you have an app which faces a large audience, you have to make sure the security of the app by performing various security testing on the same.
Installation testing: Here you make sure that if your system has installation process, it works fine on all different required platforms.
 
Also, people ask me usually what you do in black box testing or white box testing. So, terms black box testing and white box testings are kinds of grouping of test types or test cases. You test the system without an understanding of internal algorithms are black box testing. Eg. Search functionality in eCommerce application. Your test case is part of regression test here. In white box testing, you know how internal algorithm and data flow. Eg. In ETL based product, you should know end to end, how data is extracted and moved to a different table and what business logics are applied. Usually, there is no concept of black box testing nowadays. As, testers are becoming techie and they know the system internally, including algorithms and data flow. So usually we term it as gray box testing.
 
Industry terms.
There are few terms coined by business people and higher level executive like desktop testing, mobile testing, ETL testing, BI testing, etc. So, all those are high-level words where you are given a product, it can be ETL based product, BI product, IOT based product. So when you hear IOT testing, its more like testing an IOT application. As a QA, you have to define what to test and also define your smoke suite and regression suite.
 
Test Automation: So there are many tests which you will be testing, again and again, say all your smoke tests and all your regression tests. Those tests you can automate using various tools like selenium, QTP. The process of automating such tests is called test automation.

by Contributing Tester (32 points)
That's a great answer
by The go-to Tester (181 points)
Thank you, Jitendra.


This site is for software testing professionals, where you can ask all your questions and get answers from 1300+ masters of the profession. Click here to submit yours now!

1.4k questions

1.6k answers

866 comments

1.9k users

...