Dynamic Testing

Dynamic testing is one of the software testing types, where the dynamic behavior of the codes in the software is tested entirely. Simply speaking, verification and validation make the complete test, where the later, that is the validation process is called dynamic testing.

dynamic-testing-demo

In the below article, we shall see with an example, how to carry out dynamic testing.

Let us take an example of a log-in page, where we have two fields for entering the credentials, email and the password. Let us say that we just have to add the local part, such as cherchertech and the address domain @gmail.com will be automatically added.

Also, in the password, while signing up, it is required that it must contain at least one symbol or an uppercase letter, to be accepted as a password. These kinds of dynamic functionality are checked by dynamic testing.

The main objective of dynamic testing is to test each and every part of the software, by directly inputting into its UI or APIs and check whether the value is accepted and whether the desired output is obtained corresponding to the input.

This is totally an end user perspective and the system is tested with end-user inputs.

Dynamic testing can be done when we are with the actual system, and all the input and output can be validated in real time. In simple words, this testing is done directly with the system to find faults and errors directly while the software and the system are active.

As we have understood that dynamic testing is the process of validating all the applications and aspects of the software by realizing the software that real inputs are made and the software is kept under the real working environment.

Static Testing Vs Dynamic Testing

Need for dynamic testing

The main purpose the dynamic testing is to make sure that the software runs well during the test and after the installation also the software must not show any faults or discrepancies.

This testing ensures that the system along with the software is stable after all the inputs have been made to it, after installation and in the intended environment. As it is known that there is rarely any software which is error free and thus the objective is to find major flaws.

The other major properties that the software should provide is the security and consistency of the software. Below we shall describe an example, which will make it clear to you, about the major requirements of dynamic testing:

Let us take an example of banking software. The account checks his balance in the bank's official net banking software and finds the balance to be Rs. 4,000/-.

Now he withdraws an amount of Rs.2500 from the same account. And when he checks his balance after the withdrawal in the evening, he finds that the money has been deducted from the account.

But the next morning, when he receives the mini-statement from the atm, he sees no deduction of money form the account, it showed the same balance in his account, that is, Rs.4,000/- which should have been updated to Rs. 1500.

This is called a problem called inconsistency. This is the major concern of dynamic testing.

The two major types of Dynamic Testing

Dynamic Testing can be classified into two types:

  • White Box Testing
  • Black Box Testing.
White Box Testing:

White box testing is the type of testing, where the testing is involved with the internal design or the internal structure of the system or the software. The sole objective of the white box testing, it to see and analyze how the entire system performs after the code being executed.

white-box-testing-demo

Only the developers of the software or coding professionals are eligible to carry out the white box testing. The person without knowledge of programming is not all are fit to initiate this type of tests. It is strict advice, that only the relevant developer of the software carries out the test.

Black Box Testing:

Black box testing is the technique where the major concern is the input to the desired output. The internal structure and the design of the entire system or the software are not taken into consideration during the black box testing.

This test does not require coding of design/coding professionals to carry out the test. However, the experience is a must while dealing with developing of creating the test cases.

black-box-testing-demo

The sole objective of this testing is to verify the functionalities of the system, and people with no programming knowledge can perform it.

This is ensured in this test, the entire test suite is, deployed and all the functionalities are covered during the test. Only testers or anyone related to software development, having a good idea of the customer requirements and test cases, may execute this kind of test.

It may be noted that the Black box testing can be classified further into two different types:

Functional Testing:

Functional testing is performed, to check whether all the features of the functions are verified and are performing as expected. To carry out this process, this is required that, test cases are developed for individual functions called the functional test cases are written, which are to be input to the functions.

functional-testing-demo

It may be noted, that all the test cases are input to the functions and the actual output is compared with the desired output. For that, there must be an experienced team, which will assure that the function's output is already stored in the stack or any database.

Let us see the different levels of black box testing:

  • Unit Testing: Unit testing, is the smallest functional testing that can be carried out in software testing. This is the smallest block of code, which makes a function and test case are developed for that specified block of test only, called a functional test case. This is carried by developers.
  • Integration Testing: Integration testing, is the process of testing a set of functions or units after their functions being integrated. It should be made sure that the combination of units are testable and not just integrated to initiate integrating testing. This is performed by the team or testers.
  • System Testing: System Testing, is the process of testing the whole system, after all the integration testing is carried out successfully. This is done only when the system is ready to work in the real world. This testing is performed by the testers after the code is released and delivered to the QA team.
  • Acceptance Testing: Acceptance testing, is the testing which is the naive user or the end user perspective of testing. This testing is carried out to check whether all the company or the business requirements are met. This is generally performed by the end-users of the software.
Non-Functional Testing:

Non-functional testing is the testing which is done not for the verification of the functionality, but for the checking of the non-functional requirements.

Some examples of non-functional requirements are performance, robustness, memory leaks, resource usages, load balancing ability, etc. This test is performed in all test levels.

non-functional-testing

Below we shall discuss all some of the major functional requirements of a software:

  • Performance Testing: Performance testing, is to check the performance of the system, like the response time, resource usage, request handling, feedback, network request efficiency, network load, etc.
  • Recovery Testing: Recovery testing is tricky testing, to check whether the software is able to handle crashes or a system hang. And this checks how much the system is able to recover itself from a deadlock or a crash. It also deals with all the alternative functionalities, in case of recovering itself from deadlock.
  • Security Testing: Security testing is for verifying the security functionality of the system. This checks whether the system is taking care of the unauthorized access, and is able to protect itself from vulnerabilities.
  • Usability Testing: Usability testing is totally concerned, with the ease of access and deals with the properties which are responsible, for making the software more usable.

Static Testing

The Process of Dynamic Testing

To understand the process of Dynamic Testing, we should see the detailed steps which are involved in the Dynamic Testing:

dynamic-testing

As shown in the above diagram, the test design and implementation is the first phase of the dynamic testing. In this process, we should be able to identify, the features to be added, deduce the test conditions, deduce the coverage items, and derive the test cases.

The second phase is the set-up of the test environment. In this phase, we should assure that, that the testing environment is the same as that of the real environment for which the software is developed to perform in.

The third phase is the test execution phase. In this phase test cases are deployed and the test is performed.

The fourth is the bug reporting phase. It is seen whether the test is giving the same result as is expected. If not, then it is considered as a software failure and bug is reported.

Advantages of White Box Testing

Advantages of Dynamic Testing

  • Dynamic Testing is able to pick out defects from the inside, which is not possible in the case of static testing.
  • Dynamic testing covers all the aspects of the software making it an error-free and usable, improving the quality of the software.
  • Dynamic Testing is the only way to enhance the security of the software.
  • Dynamic testing though, time-consuming and expensive, yet it saves the time for iterative testing, which is much better.
  • Dynamic testing is a better choice when before the delivery of the product.
  • Dynamic testing ensures the functionality of the software, though the system may be still faulty at the end, the individual functions are not compromised.

Your link suggestions goes here

Disadvantages of Dynamic Testing:

  • Dynamic testing requires a lot more time than static testing.
  • Dynamic testing is not partitioned, that is, it cannot be carried out partially, that if done or initiated for a particular set of modules, then the entire test should be allowed to be carried out.
  • Dynamic testing uses some automated tools which may overlook many errors which is not good.
  • Dynamic testing requires trained professionals, which is not every time easy to find.
  • Dynamic testing requires the full system to be completely developed before the testing can be initiated.
  • Dynamic testing requires a huge amount of resources in the set-up time, which is sometimes not possible, because of the non-availability of some resources, if the test environment is situated at a remote location.

    Regression Testing Technique

Summary

In Dynamic Testing, the dynamic behavior of the code is analyzed and tested.

For example, form validation, notifications, error reporting, display certain result, user instructions, etc are considered a dynamic part of the software.

Dynamic Testing can also be made real-time testing, for software which requires real-time input. This testing is much more complicated than the static testing because here the software is tested in the running mode and less automation can be done.

Dynamic Testing can be broadly classified into two types of testing- functional testing and non-functional testing.

Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions

Protractor Training

new tutorial I am starting new Protractor training batch on Weekends. Course starts from 24-Aug-2019 [10am IST to 1 pm IST] based on online.

Interested people can confirm the seat by calling to +91 8971673487 or whatsapp to +91 9003381224. You can attend first class(3 hours) for free. Only 10 Seats in Total

Find the course content : View Content