A. Software testing Methods
Software testing methods are the methodologies that describe the ways in which we can test a particular software product in order to check whether the software is developed in a correct manner to fulfil the functionality and Quality standards.
Following are the major types software testing methods:
Functional Testing method(FTM)
functional testing method is a way to verify the functionality of software. FTM checks whether each functionality of a software is working appropriately, efficiently against the given input or not. FTM checks for the correct data flow in an application. Proper and efficient knowledge of programming is required for functional testing methods.
Following are the examples of functional testing methods:
Unit testing: Unit testing is one of the basic types of testing performed on an application. Unit testing is done on each unit of the software that is being developed. Software is divided into units and each unit is tested separately in unit testing so unit testing helps in finding and fixing the bugs in the early stage of development.
Smoke testing: smoke testing is carried out to check whether a software product is stable or not i.e, all the functionality are working as per the needs or not. Smoke testing doesn't require much panning as smoke testing is carried out in the early phase. After smoke testing, the testing team approves the software product for further testing.
User Acceptance: if the final software product is bug free and passed by the testing team, the software is deployed at the end user site where User acceptance Testing (UAT) is performed against various given inputs to check the software functionality and user/customer satisfaction from the customer's end. Sometimes, the client hires a tester at the client side to perform testing on the client’s behalf at the client end, then this testing is known as Beta Testing.
Integration Testing: Once the software is developed into units and each unit is tested individually, the next phase is to integrate those units into groups and then testing is performed on those integrated units to check whether the integrated units affect the functionality of the whole software or not.
Regression testing: Regression testing is a type of testing that is performed when a new module is added to a software. Whenever a new module is added to a software for any reason, say for the addition of one more functionality to a software. Regression testing checks whether the added module affects the functionality, normal data-flow of the whole software or not.
Non- Functional Testing method(NFTM)
Non-functional testing method is a way to verify whether software meets customer satisfaction or not.NFTM is performed after functional testing methods. NFTM Checks the degree of performance of a software.Proper and efficient knowledge of programming is not much required for non-functional testing methods.
Following are the examples of non-functional testing methods:
Performance Testing: Performance Testing is carried out to check the performance of the system i.e the rate at which system processes the data and gives the expected output against a given input. Performance testing is important as it determines the processing rate of a software is a very crucial thing and should meet customer satisfaction.
Load Testing: Load testing is carried out in order to find the load that the system can handle before it’s breakdown as the number of requests or user processes a server can process per unit of time.
Compliance Testing: Compliance testing is done in order to verify whether the software meets the prescribed standards and rules or not.
Portability Testing: portability testing method is performed to verify whether the developed software is portable to another environment or not and with how much ease and difficulty.
Disaster Recovery Testing: Disaster recovery testing is a very crucial testing as data is the backbone of any organisation and disaster recovery testing verifies whether all the data from the software can be recovered or not in case of any disaster.
B. Different Types of Testing
White Box Testing: White-box testing is a type of testing in which an internal-structure of software is studied and tested. White-box testing requires in-depth knowledge about coding concepts, application functionality. White box testing is based on transparency i.e, the tester has the proper knowledge about the internal structure and functionality of the software application. White box testing is time-consuming, complex and expensive
Some white box testing tools are Parasoft Jtest, EclEmma, NUnit etc.
Black Box Testing: Black box testing is a technique in which the tester checks the expected output based on given inputs. In black-box testing the tester doesn’t have in-depth knowledge about the internal code of the software. Black box testing is less time consuming, lss complex as compared to white box-testing.
Unit Testing: Unit testing is one of the basic types of testing performed on an application. Unit testing is done on each unit of the software that is being developed. Software is divided into units and each unit is tested separately in unit testing so unit testing helps in finding and fixing the bugs in the early stage of development.
Integration Testing: Once the software is developed into units and each unit is tested individually, the next phase is to integrate those units into groups and then testing is performed on those integrated units to check whether the integrated units affect the functionality of the whole software or not.
System Testing: once all the units are integrated into one. The system testing is performed to check the functionality of the system as a whole. System testing checks the system as a whole to validate the functionality of the whole software product.
Acceptance testing: After the final software product is bug free and passed by the testing team, the software is deployed at the end user site where User acceptance Testing (UAT) is performed against various given inputs to check the software functionality and user/customer satisfaction from the customer's end. Sometimes, the client hires a tester at the client side to perform testing on the client’s behalf at the client end, then this testing is known as Beta Testing.
Ad-hoc Testing: Ad-hoc testing is a random non structural testing that is done to find the possible bugs in a software. Since ad-hoc testing is unstructural, ad-hoc testing does not follow any particular sequence of testing. The sole purpose of Ad-hoc testing is to test the application from any point and check for all the possible bugs to fix them.
Regression testing: Regression testing is a type of testing that is performed when a new module is added to a software. Whenever a new module is added to a software for any reason, say for the addition of one more functionality to a software. Regression testing checks whether the added module affects the functionality, normal data-flow of the whole software or not.
C. Types of software bugs
Based on the priority to a bug i.e., how severe a bug is, the bug needs to be resolved in it’s given specific time.
Following are the major types of bugs:
Cosmetic bugs: cosmetic bugs are those bugs that arise due to some format mistakes such as spelling mistakes, syntax error etc.
Cosmetic bugs are generally of low priority as they do not affect the functionality of the software.
Functional Bug: functional bugs are the bugs that affect the functionality of a certain software product.
When a software does work according to its functionality, as it does not give an expected output on the given input. Functionality bugs are of high priority and greatly affects the overall software product.
Performance bug: performance Bugs affects the software application in such a way that it causes the application to run in an insufficient manner and affects the overall user experience with the software product. Performance bug makes the application inconvenient to use. Performance bugs affect the overall software product to a great extent and need to be resolved as soon as possible.
Security bug: Security bugs are another major kind of bug and can lead to a heavy loss for an organisation.
Security bugs create a way for hackers to hack the particular application data and use it in an inefficient way.
Security bugs arise due to loopholes in an application and can cause a high loss.
Security bugs need to be tested deeply and carefully before deployment to software to the end users.
Logical bug: logical bug disturbs the way in which a particular software must work. The user is selecting option-A as input but the software is giving output for option-B.
Logical bugs arise due to incorrect written code or improper implementation of the software design.
Logical bugs are resolved by the developer-team.
D. Structured Query Language (SQL) statements
SQL is a standard language to process a query against a database inorder to get the desired result or data.
Following are some SQL statements that are widely used:
Select: select keyword is used to select some data from a table in the database.
Syntax:
select column1,column2,.........., from tablename;
Example: select name from customers;
( Where name is a column in customers table.)
Select distinct: select distinct is used to select distinct/unique data from a table in the database.
Syntax:
select distinct column1,column2,.........., from tablename;
Example: select distinct name from customers;
Note: Distinct will give only unique names, not repetition. If 3 names are like this ram, rohan, ram, then result will be for ram, rohan i.e., ram is not repeated and is selected distinctly/uniquely.
( Where name is a column in customers table.)
Where: where is used to select some data from a table in the database based on the specified condition.
Syntax:
select column1,column2,.........., from tablename where condition;
Example: select name from customers where customer_id=’4’;
The above query gives the name of customer whose id is 4;
( Where name, customer_id are the columns in the customers table.)
1 Comment(s)