“A Beginner’s Guide to Software testing!” [Part — 1]

Nidhi Shetty
TestVagrant
Published in
5 min readOct 19, 2020

Developing a good software product has many integral parts to it, one of which is to test the product thoroughly. If the product doesn’t work efficiently enough, the chances of it not doing well in the market are stronger.

This is where automation testing plays an important role and has a good number of benefits over manual testing, such as :
1. Reducing the cost
2. Human effort and error
3. Providing better reliability
4. Better test coverage.

It has been about a year since I started my journey into software testing and almost every day ever since I have gotten to learn something new. The fact that there is always scope for learning, experimenting, and new challenges is what makes it such an interesting field to be in.
However, it can be a vast subject to be lost, and not knowing where to start from can be a thing as a beginner. So let me make this easy by sharing the topics that I went through in my initial Bootcamp days which could bring you up to speed and is also a great way to start!

Test Pyramid

Grouping together different types of automation tests into different buckets based on their granularity to create a balanced portfolio is Test Pyramid.
Tests on the lower levels are easier to write, maintain and are quicker to run. At the same time, the tests on the upper levels are harder to maintain and are slower to run. Therefore you should have lots of unit tests, some integration tests and very few E2E tests.

Testing techniques

Blackbox testing

Blackbox testing is a software testing technique where we test the functionality of an application. Here the design, internal structure, and implementation are unknown. We provide the input and observe the output generated by the system under test. This helps us in understanding how the system behaves in expected and unexpected user actions.

Whitebox testing
Whitebox testing (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing or Structural Testing) is a software testing method wherein we validate the code structure, internal structures, design and the working of the software rather than just the functionality of the system.

GreyBox testing

Grey box testing is a combination of Blackbox testing and White Box testing. It is carried out when there is only a partial understanding of the ​internal structure of the system under test.

Grey Box Testing Techniques used are -

Regression testing: Regression testing is done to ensure that the recent code changes have not affected the already existing functionalities of the application.

● Matrix testing: ​In matrix testing, all the variables in the application are defined. It helps in finding variables that are not being used.

● Pattern testing: ​Pattern testing involves the analysis of previous defects.​It determines the cause of the failure by digging into the code.

● Orthogonal Array Testing: ​This technique is used when ​maximum coverage is needed with very few test cases, and test data is large. Test data have n number of permutations and combinations.

Unit Testing

Unit testing is a software testing method where individual units of software/source code are tested. It usually has one or a few inputs and usually a single output. It validates that each function of the software performs as designed.

Integration Testing

Integration testing is done by integrating different software modules of a system. It helps us check for faults when independently developed units of software are integrated.

ShiftLeft testing

It is the practice of involving software testing in the earlier stages of the software development life cycle. This can save a lot of time and effort, fix bugs at an early stage, and also gives us better design quality.

Exploratory testing

Exploratory testing is a type of testing where test cases are not known in advance, and the system is checked on the fly.
It involves an investigation of the system or application, helping in understanding it better and also in the improvement of test design.

Performance testing

Performance testing is used to test the speed, response time, reliability, resource usage, scalability of a software program under various workloads​.
Load Runner, Apache JMeter, LoadView, LoadRunner are few performance testing tools.

Jmeter

Jmeter is a pure Java open source software that is used for ​analyzing and measuring the performance of different software services and products.
It is used for performance testing, loading testing, and functional testing of web applications. It can also stimulate a heavy load on a server by creating a good number of virtual concurrent users to the webserver.

Test management tools

Test management tools are used to store information on how testing is to be done, plan testing activities, and report the status of these activities.
The tools have different approaches to testing and thus have different sets of features.

SOAP

SOAP stands for Simple Object Access Protocol. It is a protocol that helps in the exchange of data between programs built on different platforms and different programming languages.

In SOAP, the WSDL file provides the client with the necessary information which can be used to understand what services the web service can offer.

REST

Rest stands for Representational State Transfer. The services built on the REST architecture is called a RESTful service.
It has become a logical choice for building APIs. It enables users to connect and interact with cloud services efficiently.

REST is stateless, which means that the server does not store any state about the client session on the server-side.

So these were a few buzz words on testing to start with. We shall continue our journey into the software testing world in the part 2 blog!

Happy reading! 😄

--

--