Pages

Black box design techniques

The below three are black box design techniques:

o   Equivalence Partitioning
o   Boundary Value Analysis
o   Error Guessing

Equivalence Partitioning:

Equivalence partitioning is the black box testing technique.

This technique helps us to divide the set of test condition into a partition that can be considered the same condition.
Advantage of this technique is to reduce required time by testing all the required coverage of the software with fewer test cases than many test cases.

For Example:

Assume, text box called ‘age’ exist in software, as per function it should accept 1 to 100 as age limit, it should not allow to accept less than 1 and numbers greater than 100.


Conditions
Without equivalence partitioning
Using equivalence partitioning
Should accept 1 to 100

Should not accept negative values (-1,0)

Should not accept (> 100)
It’s required to write 100 + test cases.

Test case 1 : To test input number ‘1’,
Test case 2:  To test input number ‘2’,
Test case 3:  To test input number ‘4’…. So on up to 100

Test case 101: For >100
Test case 102: For < 1

It’s enough to write three test cases to test all the condition using equivalence partitioning.

Test case 1: One valid input from 1 to 100.
Test case 2: One invalid input < 1.
Test case 3: One invalid input > 100.



Boundary Value Analysis:

Boundary value analysis is a black box testing technique is used to test the boundary values rather than testing the interior values.

For Example:

Assume, text box called ‘age’ exist in software, as per function it should accept 1 to 100 as age limit, it should not allow to accept less than 1 and numbers greater than 100.


Conditions
Without Boundary Value Analysis
Using Boundary Value Analysis
Should accept 1 to 100

Should not accept negative values (-1,0)

Should not accept (> 100)
It’s required to write 100 + test cases.

Test case 1 : To test input number ‘1’,
Test case 2:  To test input number ‘2’,
Test case 3:  To test input number ‘4’…. So on up to 100

Test case 101: For >100
Test case 102: For < 1

It’s enough to write three test cases to test all the condition using equivalence partitioning.

Test case 1: Input Exact boundary value 1 and 100.

Test case 2: Below the extreme boundary edges of input value 0 and 99.

Test case 3: Above that extreme boundary edges of input value 2 and 101.


Error Guessing:

Error guessing is the black box design technique, which focuses on identifying the defects without having formal documentation. This technique usually performed by the experience tester with enough knowledge on functionality.


Spiral Model

Spiral model is the combination of waterfall and iterative model. In this model each phases starts with requirements and ends with customer evaluation. This model is old but useful for larger projects, where high risk involved.

Different phases of Spiral model:


    • Planning
    • Risk analysis
    • Engineering
    • Evaluation
SDLC Model Spiral Model
Spiral Model
Planning Phase: In planning phase requirements (Software Requirement Specification) are collected and documented.

Risk Analysis Phase: In risk analysis phase, a process is undertaken to identify risk and different solutions.  A prototype is produced at the end of the risk analysis phase and if any risk is found during the risk analysis then alternate solutions are suggested and implemented.

Engineering Phase: In this phase software is developed and tested as per requirements.

Evaluation phase: In this phase the customer evaluates the functionality of the project before the project continues to the next spiral.

Advantages of Spiral model:
    • High amount of risk analysis is done; hence avoidance of Risk is enhanced.
    • Better option to use spiral model for large or long term projects and critical projects.
    • Strong approval and documentation control.
    • Additional Functionality can be added easily.
Disadvantages of Spiral model:
    • Risk analysis requires highly experienced and specific expertise.
    • Costly Model to use.
    • Project’s success is highly dependent on the risk analysis phase.
    • Not suitable for smaller projects.

Iterative Model

Develops a partial implementation of software, slowly add increased functionality. Subsequent release of the system merges function to the earlier release, until all designed functionality has been implemented. The incremental model prioritizes the requirements of the system and then implements them in groups. The approach in this method is to develop the software through iterative (repeated cycles)


https://testcodelines.blogspot.in/
Iterative Model

Advantages of iterative model: 
    • The software is developed and improved step by step; this helps to track the defects in earlier stage, to avoid the defects to the next iteration.
    • Can get continuous feedback from the user in each iteration. The user feedback from iteration 1 can be enriched/implemented in iteration 2……iteration n +1. 
Disadvantages of iterative model

    • Not all the requirements gathered at initial stage, so design issues may get in every iteration based on the feedback.
    • More resources may require and this suitable only for larger projects.

Waterfall Model

Waterfall Model is sequential design process, used in software development process. Water fall model consist of five phase, each phase must be completed before starting the next phase. Waterfall model is first development process introduced for software development. Water fall model is very simple and easy to use.

Water Fall Model
Waterfall Model


Advantages of Water Fall Model:
    • Requirements are well documented.
    • Easy to manage.
Disadvantages of Water Fall Model:

    • Post Defect fixing is difficult, and expensive to fix.
    • Difficult to design for larger projects.
    • This model does not work smooth, if there are some issues left at the previous step. It has to maintain perfect smooth and sequential in step by step.

Requirements Traceability Matrix (RTM)

The Requirements Traceability Matrix (RTM) is a document that contains requirements of the system and traces them throughout the system validation process. The need of RTM is to ensure that requirements of the system is covered and tested through validation or testing process.  

RTM will helps to identify the test coverage status and progress, with the help of RTM we can identify the overall picture of system quality. It ensures 100% test coverage as we trace the requirements and its expected results in the document.


Requirements Traceability Matrix

Ex: Requirements Traceability Matrix

Types of Software Testing

Software testing is the process of executing or evaluating the developed software, to maintain the software quality or verify and validating the software is working as per customer requirements.

Types of Software Testing:


Software Development life Cycle (SDLC)

                                                                                   Click for SDLC Models


Phases of software development Life Cycle
SDLC
Software Development life Cycle (SDLC) is concept used in software engineering to describe a process of planning, developing, testing and deploying the software system. Following is the different phases of SDLC life cycle,  

Requirement Analysis Phase

Software Development Life Cycle (SDLC) starts with Requirement Analysis phase, where the stakeholders discuss the requirements of the software that needs to be developed. The aim of the requirement analysis phase is to document SRS (Software requirement Specification) in detail to make sure everyone understands the scope of the work.

Design Phase

During the design phase, developers and technical architects start the high-level design of the software as per SRS document.The Technical details of the design is discussed with the stakeholders and various parameters such as risk, time and budget are reviewed and design is documented.
Implementation Phase

After the requirements and design documentation is completed, the third phase of the Software Development Life Cycle is the implementation or development of the software. In this phase, developer’s starts writing code according to the requirements and the design discussed in the design phase.

Testing Phase
During testing phase, testers start to test the system against the requirements or based on test case scenarios documented by referring requirement documents. The testers aim is to find defects within the software to verify whether the application behaves as expected and according to requirements analysis phase.

Maintenance Phase

In Maintenance phase the product is released and deployed in the client system for use. In this phase development team will maintain the system to fix post production issues.