Software testing how many types




















Nowadays, software applications are used everywhere -- hospital, traffic, shops, business organizations, etc. So not testing the software at all is dangerous. Delivering or launching an application without testing it very well will cause many small or big problems for the users. Looking to learn Software Testing?

Udemy's The Complete Software Testing Bootcamp online course will surely prove to a great starting point for you. Software testing is generally classified into two main broad categories: functional testing and non-functional testing. There is also another general type of testing called maintenance testing. Functional testing involves the testing of the functional aspects of a software application.

Functional tests are performed both manually and using automation tools. For this kind of testing, manual testing is easy, but you should use tools when necessary. Non-functional testing is the testing of non-functional aspects of an application, such as performance, reliability, usability, security, and so on.

Non-functional tests are performed after the functional tests. Functional tests also improve the quality, but with non-functional tests, you have the opportunity to make your software even better. Non-functional testing allows you to polish the software.

This kind of testing is not about whether the software works or not. Non-functional tests are not generally run manually. So these tests are usually executed using tools. Testing each component or module of your software project is known as unit testing. To perform this kind of testing, knowledge of programming is necessary. So only programmers do this kind of tests, not testers.

You have to do a great deal of unit testing as you should test each and every unit of code in your project. After integrating the modules, you need to see if the combined modules work together or not. This type of testing is known as integration testing. You need to perform fewer integration tests than unit tests.

Some good tools for unit and integration testing are Jasmine , Mocha , etc. End-to-end testing is the functional testing of the entire software system. When you test the complete software system, such testing is called end-to-end testing. You need to perform fewer end-to-end tests than integration tests. The aim of UI tests is to check whether the user interfaces have been developed according to what is described in the requirements specifications document.

Some great automated user interface testing tools are Monkey test for Android , Saucelabs , and Protractor. Testing whether your software is accessible to disabled people or not is termed as accessible testing. For this type of tests, you need to check if disabled people such as those who are color blind, blind, and deaf can use your application. The right choice of color and contrast need to be made to make your software accessible to color-blind people.

Alpha testing is a kind of testing to look for all the errors and issues in the entire software. Alpha testing is run before the beta testing, which means that after performing alpha testing, you need to run beta testing. Alpha testing is not performed in the real environment. Rather, this kind of tests is done by creating a virtual environment that resembles a real environment. As said earlier, beta testing takes place after alpha testing.

Beta testing is done before the launch of the product. It is carried out in a real user environment by a limited number of actual customers or users, in order to be certain that the software is completely error-free and it functions smoothly. After collecting feedback and constructive criticism from those users, some changes are made to make the software better. So when the software is under beta testing, it is called beta version of the software.

After this testing is complete, the software is released to the public. As the name suggests, ad-hoc testing is a kind of testing that is performed in an ad-hoc manner, without using any test cases, plans, documentation, or systems.

Unlike all other types of testing, this kind of testing is not carried out in a systematic manner. Although finding errors can be difficult without using test cases, there are technical issues that are easily detected through an ad-hoc test, but are hard to find through other testing approaches that use test cases. Compatibility testing involves compatibility checking of the software with different operating systems, web browsers, network environments, hardware, and so on.

It checks whether the developed software application is working fine with different configurations. To give you a few examples, if the software is a Windows app, it should be checked whether it is compatible with different versions of the Windows operating system. Backward compatibility testing is carried out to test if a brand new or an updated version of an application is compatible with the previous versions of the environments such as operating systems and web browsers on which the software runs.

Sometimes, some application is updated specifically to match the standard and style of a newer, more modern environment. In that case, support for backward compatibility is necessary. Backward compatibility testing ensures that all those who are using the older versions of a particular environment can use your software. As the name says, browser compatibility testing checks a web application for browser compatibility.

More specifically, it is tested whether the web app can easily be accessed from all versions of the major web browsers. Integration testing is testing in which a group of components is combined to produce output. In this we ignore internal working mechanism and focuse on what is the output? In this we focus on internal mechanism i. Regression Testing Every time a new module is added leads to changes in the program.

This type of testing makes sure that the whole component works properly even after adding components to the complete program. Example In school record suppose we have module staff, students and finance combining these modules and checking if on integration these module works fine is regression testing 4. Smoke Testing This test is done to make sure that software under testing is ready or stable for further testing It is called a smoke test as the testing an initial pass is done to check if it did not catch the fire or smoke in the initial switch on.

Skip to content. Change Language. Related Articles. Table of Contents. Save Article. This gives rise to the need for cross-browser testing , which includes checking the compatibility of the application on different browsers. Instead, it comes in many different variations, which you can categorize according to several criteria.

For instance, you can categorize testing types into manual or automated testing. When it comes to the automated variety, tests can be code-based or codeless —and you can also have hybrid approaches that mix the best of both worlds. Tests can also be categorized regarding how much they know about the internal implementation of the system under test. Regarding this criterium, we can classify tests as white-box, black-box or grey-box.

Finally, we can also group tests into functional and non-functional tests, depending on whether they validate the business requirements for the application. Functional testing verifies each function of an application or software.

The tester verifies functionality with a specified set of requirements. Testing the behavior of the software is the main concern. Non-functional testing considers parameters such as reliability, usability, and performance. A non-functional test might be checking how many users can log in to the system at the same time.

Based on the amount of information you know about the product to test it, software testing can be divided into different types: Black-box testing, White-box testing, and Grey-box testing. In this type of testing, you have the least amount of information on how the product is built. You would use the product as an end user would.

This type of testing can only happen when the code is executed. Hence, dynamic testing is used. Dynamic testing is the type where you have to execute the code and test the product while the code execution is in process. In white-box testing , you have most of the information about the product. White-box testing is mostly used to make the code better. Finding inefficiencies in code, poor coding practices, unnecessary lines of code are identified in this type of testing.

Most of the code optimization and security fixes happen as a result of this testing. It rather focuses on how it can be made better. You can make a lot of improvements to your product but the last few steps to make it perfect is difficult. Making it perfect requires a thorough inspection.

This is known as static testing. In this type of testing, you have partial information about the product. But your partial knowledge of the product would help you identify such bugs. Like any other process, software testing can also be divided into different phases. This sequence of phases is often known as the software testing life cycle.

Every process starts with planning. In this phase, you collect all the required details about the product. You collect a list of tasks that has to be tested first. Then you have the prioritize your checklist of tasks. If a complete team is involved, then division of tasks can also be done in this phase.

Once you know what you have to do, you have to build the foundation for testing. This includes preparing the test environment, collecting test-cases, researching product features and test-cases. Gathering tools and techniques for testing and getting familiar with them should also be done here. This is when you actually run tests on the product. You execute test-cases and collect the results. Then you compare the results with the expected result and see if the product is working as expected or not.

You make a note of all the successful and failed tests and test-cases. This is the last phase of software testing where you have to document all your findings and submit it to the concerned personnel. Test-case failures are of most interest here. A proper and clear explanation of tests run and outputs should be mentioned. For complex tests, steps to reproduce the error, screenshots, and whatever is helpful should be mentioned. As we know, in the current age of machines, everything that involves manual effort is slowly automated.

And the same thing is happening in the testing domain. There are two different ways of performing software testing—manual and automation. Manual labor in any field requires a lot of time and effort. Manual testing is a process in which testers examine different features of an application. Here, the tester performs the process without using any tools or test scripts.



0コメント

  • 1000 / 1000