Ticker

6/recent/ticker-posts

Types of Software Testing

What is Software Testing?

Software testing is a process used to identify the corretness.completeness and quality of developed computer software. It includes a set of activities conducted with the intent of finding errors in software


✅White Box Testing

🔻White-box(or clear-box)testing implies having access to the code, being able to see it and review

🔻 Static white box testing is the process of carefully and methodically reviewing the software design, architecture, or code for bugs without executing it. 

🔻The reason to perform static white box testing is to find bugs early.

🔻A benefit of performing SWBT to BBT by getting the info from these testers.

🔻Unfortunately SWBT is not always done because testers thing it's too time consuming.too costly or not aductive.


🔻Classification of White Box Testing

          🔻Static Testing

             ðŸ”»Structural Testing

✅Static White Box Testing

💥Inspections

🔻 Inspections are the most formal type of reviews.

🔻They are highly structured and require training for each participant.

🔻Presenter is not original programmer

🔻Other participants are called inspectors.

🔻 Each is tasked with reviewing the code from a different perspective, such as, a tester, or a product support person

🔻Most formal and structured

🔻 Other roles (moderator, recorder)

🔻 Re-inspect if necessary

🔻Good for code and design docs

✅Structural White Box Testing

▸ Structural testing, also known as glass box testing or white box testing is an approach where the tests are derived from the knowledge of the software's structure or internal implementation.

▸ The other names of structural testing includes clear box testing, open box testing, logic driven testing or path driven testing.

💥Structural White Box Testing

✅Code Functional Testing

FUNCTIONAL TESTING is a type of software testing that validates the software system against the functional requirements /specifications.

 The purpose of Functional tests is to test each function of the software application, by providing appropriate input, verifying the output against the Functional requirements.

✅Static White Box Testing

💥Structured Walkthroughs

▸ WT are the next step up in formality from peer review.

▸ In WT the prgmrs who wrote the code formally presents( walk through) it to a small group of five or other prgmrs and testers. > The reviewers should receive copies of the s/w in advance of the review so they can examine it and write comments and question that they want to ask at the review.

The presenter reads code or function and reviewer ask query and this is very imp as compare to PR.

✅Static White Box Testing

Technical review

▸ A Technical review is a static white-box testing technique which is conducted to spot the defects early in the life cycle that cannot be detected by black box testing techniques.

✅Technical Review Characteristics:

▸ Technical Reviews are documented and uses a defect detection process that has peers and technical specialist as part of the review process.

▸ The Review process doesn't involve management participation.

▸ It is usually led by trained moderator who is NOT the author. I

▸ The report is prepared with the list of issues that needs to be addressed.


✅Dynamic White Box Testing

▸ Since its dynamic, it must be about testing a running pgm and since its white box, it must be about looking inside the box; examining the code, and watching it as it runs.

▸ DWBT, is using information you gain from seeing what the code does and how it works to determine what to test, what not to test, and how to approach the testing.

▸ Also called as Structural testing

✅DWBT Vs Debugging

> These may appear similar because they both involve dealing with software bugs and looking at the code, but they are very different in their goals.

> The goal of DWBT is to find bugs.

> The goal of debugging is to fix them. 

> WBT tells where is bug and DEBUGGING determines what causing the bugs and fix it.


✅Structural White Box Testing

> Structural testing, also known as glass box testing or white box testing is an approach where the tests are derived from the knowledge of the software's structure or internal implementation.

The other names of structural testing includes clear box testing, open box testing, logic driven testing or path driven testing.

✅Structural White Box Testing

💥Code Functional Testing

FUNCTIONAL TESTING is a type of software testing that validates the software system against the functional requirements / specifications. 

The purpose of Functional tests is to test each function of the software application, by providing appropriate input, verifying the output against the Functional requirements.

✅Code Coverage Testing :

▸ Code coverage is a software testing metric or also termed as a Code Coverage Testing which helps in determining how much code of the source is tested which helps in accessing quality of test suite and analyzing how comprehensively a software is verified. 

► Actually in simple code coverage refers to the degree of which the source code of the software code has been tested.

✅Code Complexity Testing

> Cyclomatic Complexity in Software Testing is a testing metric used for measuring the complexity of a software program.

 It is a quantitative measure of independent paths in the source code of a software program.

▸ Cyclomatic complexity is a source code complexity measurement that is being correlated to a number of coding errors.

 It is calculated by developing a Control Flow Graph of the code that measures the number of linearly-independent paths through a program module.


Black Box Testing

Knowing the specified function that a product has been

designed to perform, test to see if that function is fully operational and error free

Includes tests that are conducted at the software interface

Not concerned with internal logical structure of the software

Requirements based Testing

. Requirements-based testing is a testing approach in which test cases, conditions and data are derived from requirements.

 It includes functional tests and also non functional attributes such as performance, reliability or usability.

Requirements Testing process: 

▸ Testing must be carried out in a timely manner.

▸ Testing process should add value to the software life cycle, hence it needs to be effective.

> Testing the system exhaustively is impossible hence the testing process needs to be efficient as well.

> Testing must provide the overall status of the project, hence it should be manageable.

✅Black Box Testing

✅Positive Testing

Positive Testing is a type of testing which is performed on a software application by providing the valid data sets as an input.

It checks whether the software application behaves as expected with positive inputs or not.

 ▸ Positive testing is performed in order to check whether the software application does exactly what it is expected to do.

> Positive Testing

> For example -

There is a text box in an application which can accept only numbers.

Entering values up to 99999 will be acceptable by the system and any other values apart from this should not be acceptable.

▸ To do positive testing, set the valid input values from 0 to 99999 and check whether the system is accepting the values.

Black Box Testing

Negative Testing

> Negative Testing is a testing method performed on the software application by providing invalid or improper data sets as input.

 It checks whether the software application behaves as expected with the negative or unwanted user inputs. 

The purpose of negative testing is to ensure that the software application does not crash and remains stable with invalid data inputs.


▸ Negative Testing

> For example -

▸ Negative testing can be performed by entering characters A to Z or from a to z. 

Either software system should not accept the values or else it should throw an error message for these invalid data inputs.

In both the testing, the following needs to be considered:

> Input data

An action which needs to be performed

Output Result

Testing Technique used for Positive and Negative Testing:

► Following techniques are used for Positive and negative validation of testing is:

Boundary Value Analysis

>Equivalence Partitioning

✅Boundary Value Analysis:

This is one of the software testing technique in which the test cases are designed to include values at the boundary. If the input data is used within the boundary value

limits, then it is said to be Positive Testing.

If the input data is picked outside the boundary value limits, then it is said to be Negative Testing.


✅Test to pass and test to fail

> Test-to-pass; assume SW minimally works

Don't push capabilities

Don't try to break it

Simple and straightforward test cases

> Would you drive a brand new car model at top speed right off the line?

> Run these first


✅Equivalence Partitioning:

> This is a software testing technique which divides the input data into many partitions. 

Values from each partition must be tested at least once. 

Partitions with valid values are used for Positive Testing. 

While partitions with invalid values are used for negative testing.


✅Gray box testing

▸ Gray box testing is a software testing technique to test a software product or application with partial knowledge of internal structure of the application.

The purpose of grey box testing is to search and identify the defects due to improper code structure or improper use of applications.

Gray Box Testing is a software testing method, which is a combination of both White Box Testing and Black Box Testing method.


✅Techniques used for Grey box Testing are

> Matrix Testing:

This testing technique involves defining all the variables that exist in their programs.

> Regression Testing: 

To check whether the change in the previous version has regressed other aspects of the program in the new version. It will be done by testing strategies like retest all, retest risky use cases, retest within a firewall.

> Orthogonal Array Testing or OAT:

It provides maximum code coverage with minimum test cases.

> Pattern Testing: 

This testing is performed on the historical data of the previous system defects. Unlike black box testing, gray box testing digs within the code and determines why the failure happened


✅Benefits of Grey box Testing are

Grey-box testing provides combined benefits of both white-box and black-box testing

> It is based on functional specification, UML Diagrams, Database Diagrams or architectural view

> Grey-box tester handles can design complex test scenario more intelligently

> The added advantage of grey-box testing is that it maintains the boundary between independent testers and developers

✅Limitations of Grey box Testing are

>In grey-box testing, complete white box testing cannot be done due to inaccessible source code/binaries.

> It is difficult to associate defects when we perform

>Grey-box testing for a distributed system.

Post a Comment

0 Comments