Friday, 26 July 2013

Test Design Techniques

1. White box Testing

White box testing strategy deals with the internal logic and structure of the code. White box testing is also called as glass, structural, open box or clear box testing. In order to implement white box testing, the tester has to deal with the code and hence is needed to possess knowledge of coding and logic i.e. internal working of the code.

a) Basis Path Testing

Each independent path in the code is taken for testing.

b) Flow Graph Notation

The flow graph depicts logical control flow using a diagrammatic notation. Each structured construct has a corresponding flow graph symbol.

c) Cyclomatic Complexity

Cyclomatic complexity is software metric that provides a quantitative measure of the logical complexity of a program. In basis path testing method, the value computed for Cyclomatic complexity defines the number for independent paths in the basis set of a program and provides us with an upper bound for the number of tests that must be conducted to ensure that all statements have been executed at least once.
An independent path is any path through the program that introduces at least one new set of processing statements or a new condition.
Computing Cyclomatic Complexity
Cyclomatic complexity has a foundation in graph theory and provides us with extremely useful software metric. Complexity is computed in one of the three ways:
1. The number of regions of the flow graph corresponds to the Cyclomatic complexity.
2. Cyclomatic complexity, V (G), for a flow graph, G is defined as
          V (G) = E-N+2
Where E, is the number of flow graph edges, N is the number of flow graph nodes.
3. Cyclomatic complexity, V (G) for a flow graph, G is also defined as:
          V (G) = P+1
Where P is the number of predicate nodes contained in the flow graph G.

d) Graph Matrices

The procedure for deriving the flow graph and even determining a set of basis paths is amenable to mechanization. To develop a software tool that assists in basis path testing, a data structure, called a graph matrix can be quite useful.
A Graph Matrix is a square matrix whose size is equal to the number of nodes on the flow graph. Each row and column corresponds to an identified node, and matrix entries correspond to connections between nodes.

e) Control Structure Testing

Described below are some of the variations of Control Structure Testing.

Condition Testing

Condition testing is a test case design method that exercises the logical conditions contained in a program module.

 Data Flow Testing

The data flow testing method selects test paths of a program according to the locations of definitions and uses of variables in the program.

f) Loop Testing

Loop Testing is a white box testing technique that focuses exclusively on the validity of loop constructs. Four classes of loops can be defined: Simple loops, Concatenated loops, nested loops, and unstructured loops.

Simple Loops

The following sets of tests can be applied to simple loops, where ‘n’ is the maximum number of allowable passes through the loop.
1. Skip the loop entirely.
2. Only one passes through the loop.
3. Two passes through the loop.
4. ‘m’ passes through the loop where m<n.
5. n-1, n, n+1 passes through the loop.

Nested Loops

If we extend the test approach for simple loops to nested loops, the number of possible tests would grow geometrically as the level of nesting increases.
1. Start at the innermost loop. Set all other loops to minimum values.
2. Conduct simple loop tests for the innermost loop while holding the outer loops at their minimum iteration parameter values. Add other tests for out-of-range or exclude values.
3. Work outward, conducting tests for the next loop, but keeping all other outer loops at minimum values and other nested loops to “typical” values.
4. Continue until all loops have been tested.

Concatenated Loops

Concatenated loops can be tested using the approach defined for simple loops, if each of the loops is independent of the other. However, if two loops are concatenated and the loop counter for loop 1 is used as the initial value for loop 2, then the loops are not independent.

Unstructured Loops

Whenever possible, this class of loops should be redesigned to reflect the use of the structured programming constructs.

2. Black box Testing

Black Box Testing is not a type of testing; it instead is a testing strategy. It does not need any knowledge of internal design or code etc. The types of testing under this strategy are totally focused on the testing for requirements and functionality of the work software application. It is also called as Opaque Testing, Functional/Behavioral Testing and Closed Box Testing.
Techniques of Black box Testing:
a. Graph Based Testing Methods:
Each and every application is build up of some objects. All such objects are identified and graph is prepared. From this object graph each object relationship is identified and test cases written accordingly to discover the errors.
b. Error Guessing:
This is purely based on previous experience and judgment of tester. Error Guessing is the art of guessing where errors can be hidden. For this technique there are no specific tools, writing the test cases that cover all the application paths.
c. Boundary Value Analysis:
Boundary Value Analysis (BVA) is a test Functional Testing technique where the extreme boundary values are chosen. Boundary values include maximum, minimum, just inside/outside boundaries, typical values, and error values.
Look at output boundaries for test cases too
Test min, min-1, max, max+1, typical values
 BVA techniques:
1. Number of variables
For n variables: BVA yields 4n + 1 test cases.
2. Kinds of ranges
Generalizing ranges depends on the nature or type of variables
Advantages of Boundary Value Analysis
1. Robustness Testing - Boundary Value Analysis plus values that go beyond the limits
2. Min - 1, Min, Min +1, Nom, Max -1, Max, Max +1
3. Forces attention to exception handling
Limitations of Boundary Value Analysis:
Boundary value testing is efficient only for variables of fixed values i.e boundary.
d. Equivalence Partitioning:
Equivalence partitioning is a black box testing method that divides the input domain of a program into classes of data from which test cases can be derived.
How this partitioning is performed while testing:
1. If an input condition specifies a range, one valid and one two invalid classes are defined.
2. If an input condition requires a specific value, one valid and two invalid equivalence classes are defined.
3. If an input condition specifies a member of a set, one valid and one invalid equivalence class is defined.
4. If an input condition is Boolean, one valid and one invalid class is defined.
e. Comparison Testing:
Different independent versions of same software are used to compare to each other for testing in this method.
Various testing types that fall under the Black Box Testing strategy are: functional testing, stress testing, recovery testing, volume testing, User Acceptance Testing (also known as UAT), system testing, Sanity or Smoke testing, load testing, Usability testing, Exploratory testing, ad-hoc testing, alpha testing, beta testing etc.

3. Structural System Testing Techniques

The following are the structural system testing techniques.

Technique
Description
Example
Stress
Determine system performance with expected volumes.
Sufficient disk space allocated.
Execution
System achieves desired level of proficiency.
Transaction turnaround time adequate.
Recovery
System can be returned to an operational status after a failure.
Evaluate adequacy of backup data.
Operations
System can be executed in a normal operational status.
Determine systems can run using document.
Compliance
System is developed in accordance with standards and procedures.
Standards follow.
Security
System is protected in accordance with importance to organization.
Access denied.

4. Functional System Testing Techniques

The following are the functional system testing techniques.

Technique
Description
Example
Requirements
System performs as specified.
Prove system requirements.
Regression
Verifies that anything unchanged still performs correctly.
Unchanged system segments function.
Error Handling
Errors can be prevented or detected and then corrected.
Error introduced into the test.
Manual Support
The people-computer interaction works.
Manual procedures developed.
Intersystem’s.
Data is correctly passed from system to system.
Intersystem parameters changed.
Control
Controls reduce system risk to an acceptable level.
File reconciliation procedures work.
Parallel
Old systems and new system are run and the results           compared to detect unplanned differences.
Old and new system can reconcile.

Are you looking for part/full time job ? Check the below link.

ENVIRONMENT

Environment is a combination of 3 layers.
-Presentation Layer
-Business Layer
-Database Layer
Types of Environment
There are 4 types of environments.
i)     Stand alone Environment / One – tier Architecture.
ii)    Client – Server Environment / Two – tier Architecture.
iii)   Web Environment / Three – tier Architecture.
iv)   Distributed Environment / N – tier Architecture.

1) Stand alone environment (Or) One – Tire Architecture.

This environment contains all the three layers that is Presentation layer, Business layered and Database layer in a Single tier.

2) Client – Server Environment (Or) Two – Tire Architecture

In this environment two tiers will be there one tier is for client and other tier is for Database server. Presentation layer and Business layer will be present in each and every client and the database will be present in database server.

3) Web Environment

In this Environment three tiers will be there client resides in one tier, application server resides in middle tier and database server resides in the last tier. Every client will have the presentation layer, application server will have the business layer and database server will have the database layer.

4) Distributed Environment

It is same as the web Environment but the business logic is distributed among application server in order to distribute the load.
Web Server:  It is software that provides web services to the client.
Application Server:   It is a server that holds the business logic.
    Ex:  Ton tact, Tomcat, Web logic, web Spear etc………

part time/full time home available at http://www.dataentryjobs.us/143316.html

TYPES OF TESTING

TYPES OF TESTING

1.       Build Verification Testing.
2.       Regression Testing.
3.       Re – Testing.
4.       Alpha - Testing.
5.       Beta - Testing.
6.       Static Testing.
7.       Dynamic Testing.
8.       Installation Testing.
9.       Compatibility Testing.
10.    Monkey Testing
11.    Exploratory Testing.
12.    Usability Testing.
13.    End – To – End Testing.
14.    Port – Testing.
15.    Reliability Testing
16.    Mutation Testing.
17.    Security Testing.
18.    Adhoc Testing.
19.   Scalability Testing.
20.   Heuristic Testing.
21.   Accessibility Testing.
22.   Performance Testing
23.   Load testing
24.   Stress Testing
25.   Volume Testing
26.   Context Driven Testing
27.   Comparison Testing
28.   Globalization Testing

1. Sanitary Testing / Build Verification Testing / Build Accepting Testing.

It is a type of testing in which one will conduct overall testing on the released build in order to check whether it is proper for further details testing or not.
Some companies even call it as Sanitary Testing and also Smoke Testing. But some companies will say that just before the release of the built the developer’s will conduct the overall testing in order to check whether the build is proper for detailed testing or not that is known as Smoke Testing and once the build is released once again the testers will conduct the overall testing in order to check whether the build is proper for further detailed testing or not. That is known as Sanitary Testing

2. Regression Testing

It is a type of testing in which one will perform testing on the already tested functionality again and again this is usually done in scenarios (Situations).
  Scenario 1:
Whenever the defects are raised by the Test Engineer rectified by the developer and the next build is released to the testing department then the Test Engineer will test the defect functionality and it’s related functionalities once again.
  Scenario 2:
Whenever some new changes are requested by the customer, those new features are incorporated by the developers, next built is released to the testing department then the test engineers will test the related functionalities of the new features once again which are already tested. That is also known as regression testing.
  Note:
Testing the new features for the first time is new testing but not the regression testing.

3.  Re – Testing:

It is a type of testing in which one will perform testing on the same function again and again with multiple sets of data in order to come to a conclusion whether the functionality is working fine or not.

4.  Alpha - Testing:

It is a type of testing in which one (I.e., out Test Engineer) will perform user acceptance testing in our company in the presents of the customer.

Advantages:

                If at all any defects are found there is a chance of rectifying them immediately.

5. Beta - Testing:

It is a type of testing in which either third party testers or end users will perform user acceptance testing in the client place before actual implementation.

6. Static Testing:

It is a type of testing in which one will perform testing on an application or it’s related factors without performing any actions.
Ex:     GUI Testing, Document Testing, Code reviewing and etc…

7.  Dynamic Testing:

It is a type of testing in which one will perform testing on the application by performing same action.
Ex:     Functional Testing.

8. Installation Testing:

It is a type of testing in which one will install the application in to the environment by following the guidelines given in the deployment document and if the installation is successful the one will come to a conclusion that the guidelines are correct otherwise the guidelines are not correct.

9. Compatibility Testing:

It is a type of testing in which one may have to install the application into multiple number of environments prepared with different combinations of environmental components in order to check whether the application is suitable with these environments or not. This is use usually done to the products.

10. Monkey Testing:

It is a type of testing in which one will perform some abnormal actions intentionally (wanted) on the application in order to check its stability.

11. Exploratory Testing:

It is a type of testing in which usually the domain expert will perform testing on the application parallel by exploring the functionality without having the knowledge of requirements.

12.  Usability Testing:

It is a type of testing in which one will concentrate on the user friendliness of the application.

13. End – To – End Testing:

It is a type of testing in which one will perform testing on a complete transaction from one end to another end.

14. Port Testing:

It is a type of testing in which one will check whether the application is comfortable or not after deploying it into the original client’s environment.

15. Reliability Testing (or) Soak Testing:

It is a type of testing in which one will perform testing on the application continuously for long period of time in order to check its stability.

16. Mutation Testing:

                It is a type of testing in which one will perform testing by doing some changes
For example usually the developers will be doing any many changes to the program and check its performance it is known as mutation testing.

17. Security Testing:

                It is a type of testing in which one will usually concentrate on the following areas.
i)  Authentication.
ii) Direct URL Testing.
iii) Firewall Leakage Testing.
 i) Authentication Testing:
it is a type of testing in which a Test Engineer will enter different combinations of user names and passwords in order to check whether only the authorized persons are accessing the application or not.
 ii) Direct URL Testing:
It is a type of testing in which a test engineer will specified the direct URL’s of secured pages and check whether they are been accessing or not.
 iii) Firewall leakage Testing:
It is a type of testing in which one will enter as one level of user and try to access the other level unauthorized pages in order to check whether the firewall is working properly or not.

18. Adhoc Testing:

it is a type of testing in which one will perform testing on the application in his own style after understanding the requirements clearly.

19 .Scalability Testing

It is a type of testing in which one can perform testing on the application to check if the application is enhance able / expandable and measurable without having to do with design changes and environmental alterations.

20. Heuristic Testing

It is a type of testing in which the test engineer performs testing on the application based on the past experience to ensure through testing and complete coverage in the testing.

21. Accessibility Testing

       It is a type of testing in which the test engineer checks the application if it has accessibility factor. In other words he checks if the application is able to serve the abnormal disable users apart from normal users.

22. Performance Testing

performance testing is testing that is performed, from one perspective, to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability, reliability and resource usage.

23. Load Testing

Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system's response time degrades or fails.

24. Stress testing

Testing the stability and response time of an application by applying the load which is more than design load

25. Volume Testing

Testing the stability and response time of an application by passing the huge volume of data across the application

26. Context-driven testing

          Testing driven by an understanding of the environment, culture, and intended use of software. For example, the testing approach for life-critical medical equipment software would be completely different than that for a low-cost computer game.

27. comparison testing

          comparing software weaknesses and strengths to competing products.

28. Globalization testing

                        Developing the application in multiple languages is known as globalization. Testing this kind of application is called as globalization testing. We need to test the application for different languages example: - English, French, Chinese etc.
It is of two types:-
1.    Localization testing.
2.    Internationalization testing.
internalization testing
                     It is the testing done to check the application is working on different platforms of international languages.
Ex: - Spanish, German etc.

localization testing
                   It is the testing done to check the application is working on different platforms of local languages.

 Ex: - Win 95/98/2000 etc.

part time/full time home available at http://www.dataentryjobs.us/143316.html

Testing Methodologies:

1.Kinds of testing:

           Depends on what part of (SDLC) is tested, there are basically two kinds of testing that are evolved
1.    Conventional testing(as usual)
2.    Unconventional testing

Conventional Testing

It is a sort of testing in which the test engineer will test the application in the testing phase of SDLC.

Unconventional Testing

It is a sort of testing in which quality assurance people will check each and every outcome document right from the initial phase of the SDLC.

2. Methods of testing

There are 3 methods are there
Ø  White Box Testing
Ø  Black Box Testing
Ø  Gray Box Testing

1. White box Testing

(Or) Glass box Testing (Or) Clear box Testing
It is a method of testing in which one will perform testing on the structural part of an application. Usually developers are white box testers perform it.

2. Black box Testing

It is a method of testing in which one will perform testing only on the functional part of an application without having any structural knowledge. Usually test engineers perform it.

3. Gray box Testing

It is a method of testing in which one will perform testing on both the functional part as well as the structural part of an application.

3. Levels of Testing

There are 5 levels of testing in a software environment. They are as follows

1) Unit level testing

If one performs testing on a unit then that level of testing is known as unit level testing. It is white box testing usually developers perform it.
Unit: -   It is defined as a smallest part of an application.

2) Module level testing

If one perform testing on a module that is known as module level testing. It is black box testing usually test engineers perform it.

3) Integration level testing

Once the modules are developing the developers will develop some interfaces and integrate the module with the help of those interfaces while integration they will check whether the interfaces are working fine or not. It is a white box testing and usually developers or white box testers perform it.
The developers will be integrating the modules in any one of the following approaches.

i) Top Down Approach (TDA)

In this approach the parent modules are developed first and then integrated with child modules.

STUB

While integrating the modules in top down approach if at all any mandatory module is missing then that module is replace with a temporary program known as STUB.

ii) Bottom Up Approach (BUA)

In this approach the child modules are developed first and the integrated that to the corresponding parent modules.

DRIVER

While integrating the modules in bottom up approach if at all any mandatory module is missing then that module is replace with a temporary program known as DRIVER.

iii) Hybrid Approach

This approach is a mixed approach of both Top down and Bottom up approaches.

iv) Big Bang Approach

Once all the modules are ready at a time integrating them finally is known as big bang approach.

 4) System level testing

Once the application is deployed into the environment then if one performs testing on the system it is known as system level testing it is a black box testing and usually done by the test engineers.
At this level of testing so many types of testing are done.
Some of those are
System Integration Testing
Load Testing
Performance Testing
Stress Testing etc….

5) User acceptance testing

The same system testing done in the presents of the user is known as user acceptance testing. It’s a black box testing usually done by the Test engineers.

4. TYPES OF TESTING

1.       Build Verification Testing.
2.       Regression Testing.
3.       Re – Testing.
4.       Alpha - Testing.
5.       Beta - Testing.
6.       Static Testing.
7.       Dynamic Testing.
8.       Installation Testing.
9.       Compatibility Testing.
10.    Monkey Testing
11.    Exploratory Testing.
12.    Usability Testing.
13.    End – To – End Testing.
14.    Port – Testing.
15.    Reliability Testing
16.    Mutation Testing.
17.    Security Testing.
18.    Adhoc Testing.
19.   Scalability Testing.
20.   Heuristic Testing.
21.   Accessibility Testing.
22.   Performance Testing
23.   Load testing
24.   Stress Testing
25.   Volume Testing
26.   Context Driven Testing
27.   Comparison Testing
28.   Globalization Testing

1. Sanitary Testing / Build Verification Testing / Build Accepting Testing.

It is a type of testing in which one will conduct overall testing on the released build in order to check whether it is proper for further details testing or not.
Some companies even call it as Sanitary Testing and also Smoke Testing. But some companies will say that just before the release of the built the developer’s will conduct the overall testing in order to check whether the build is proper for detailed testing or not that is known as Smoke Testing and once the build is released once again the testers will conduct the overall testing in order to check whether the build is proper for further detailed testing or not. That is known as Sanitary Testing

2. Regression Testing

It is a type of testing in which one will perform testing on the already tested functionality again and again this is usually done in scenarios (Situations).
  Scenario 1:
Whenever the defects are raised by the Test Engineer rectified by the developer and the next build is released to the testing department then the Test Engineer will test the defect functionality and it’s related functionalities once again.
  Scenario 2:
Whenever some new changes are requested by the customer, those new features are incorporated by the developers, next built is released to the testing department then the test engineers will test the related functionalities of the new features once again which are already tested. That is also known as regression testing.
  Note:
Testing the new features for the first time is new testing but not the regression testing.

3.  Re – Testing:

It is a type of testing in which one will perform testing on the same function again and again with multiple sets of data in order to come to a conclusion whether the functionality is working fine or not.

4.  Alpha - Testing:

It is a type of testing in which one (I.e., out Test Engineer) will perform user acceptance testing in our company in the presents of the customer.

Advantages:

                If at all any defects are found there is a chance of rectifying them immediately.

5. Beta - Testing:

It is a type of testing in which either third party testers or end users will perform user acceptance testing in the client place before actual implementation.

6. Static Testing:

It is a type of testing in which one will perform testing on an application or it’s related factors without performing any actions.
Ex:     GUI Testing, Document Testing, Code reviewing and etc…

7.  Dynamic Testing:

It is a type of testing in which one will perform testing on the application by performing same action.
Ex:     Functional Testing.

8. Installation Testing:

It is a type of testing in which one will install the application in to the environment by following the guidelines given in the deployment document and if the installation is successful the one will come to a conclusion that the guidelines are correct otherwise the guidelines are not correct.

9. Compatibility Testing:

It is a type of testing in which one may have to install the application into multiple number of environments prepared with different combinations of environmental components in order to check whether the application is suitable with these environments or not. This is use usually done to the products.

10. Monkey Testing:

It is a type of testing in which one will perform some abnormal actions intentionally (wanted) on the application in order to check its stability.

11. Exploratory Testing:

It is a type of testing in which usually the domain expert will perform testing on the application parallel by exploring the functionality without having the knowledge of requirements.

12.  Usability Testing:

It is a type of testing in which one will concentrate on the user friendliness of the application.

13. End – To – End Testing:

It is a type of testing in which one will perform testing on a complete transaction from one end to another end.

14. Port Testing:

It is a type of testing in which one will check whether the application is comfortable or not after deploying it into the original client’s environment.

15. Reliability Testing (or) Soak Testing:

It is a type of testing in which one will perform testing on the application continuously for long period of time in order to check its stability.

16. Mutation Testing:

                It is a type of testing in which one will perform testing by doing some changes
For example usually the developers will be doing any many changes to the program and check its performance it is known as mutation testing.

17. Security Testing:

                It is a type of testing in which one will usually concentrate on the following areas.
i)  Authentication.
ii) Direct URL Testing.
iii) Firewall Leakage Testing.
 i) Authentication Testing:
it is a type of testing in which a Test Engineer will enter different combinations of user names and passwords in order to check whether only the authorized persons are accessing the application or not.
 ii) Direct URL Testing:
It is a type of testing in which a test engineer will specified the direct URL’s of secured pages and check whether they are been accessing or not.
 iii) Firewall leakage Testing:
It is a type of testing in which one will enter as one level of user and try to access the other level unauthorized pages in order to check whether the firewall is working properly or not.

18. Adhoc Testing:

it is a type of testing in which one will perform testing on the application in his own style after understanding the requirements clearly.

19 .Scalability Testing

It is a type of testing in which one can perform testing on the application to check if the application is enhance able / expandable and measurable without having to do with design changes and environmental alterations.

20. Heuristic Testing

It is a type of testing in which the test engineer performs testing on the application based on the past experience to ensure through testing and complete coverage in the testing.

21. Accessibility Testing

       It is a type of testing in which the test engineer checks the application if it has accessibility factor. In other words he checks if the application is able to serve the abnormal disable users apart from normal users.

22. Performance Testing

performance testing is testing that is performed, from one perspective, to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability, reliability and resource usage.

23. Load Testing

Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system's response time degrades or fails.

24. Stress testing

Testing the stability and response time of an application by applying the load which is more than design load

25. Volume Testing

Testing the stability and response time of an application by passing the huge volume of data across the application

26. Context-driven testing

          Testing driven by an understanding of the environment, culture, and intended use of software. For example, the testing approach for life-critical medical equipment software would be completely different than that for a low-cost computer game.

27. comparison testing

          comparing software weaknesses and strengths to competing products.

28. Globalization testing

                        Developing the application in multiple languages is known as globalization. Testing this kind of application is called as globalization testing. We need to test the application for different languages example: - English, French, Chinese etc.
It is of two types:-
1.    Localization testing.
2.    Internationalization testing.
internalization testing
                     It is the testing done to check the application is working on different platforms of international languages.
Ex: - Spanish, German etc.

localization testing
                   It is the testing done to check the application is working on different platforms of local languages.

 Ex: - Win 95/98/2000 etc.

part time/full time home available at http://www.dataentryjobs.us/143316.html