Posts

Showing posts from November, 2011

What is Error Guessing

Error Guessing is the art of guessing there errors can be hidden.Error Guessing comes with previous experience of a tester with the similar technology  and the project.There are no specific tools and techniques for this testing, test cases can be designed depending on the situation, either drawing from SRS document or when an unexpected/undocumented error is found while testing the functional part of the application.This testing will results better based on the skills of the tester as it is the art of guessing the defects. In error guessing testers can think of situations where software will fail.

what is Cause–effect graph?

Image
Cause–effect graphing is a technique that provides a concise representation of logical conditions such as AND, OR, NOT and its corresponding actions.It maps a set of causes to a set of effects. The causes are the input to the program, and the effects are the output. Usually the graph shows the nodes representing the causes on the left side and the nodes representing the effects on the right side. The Cause–effect graphing will be like:-

What is Domain Testing

Domain testing can be considered as the next level of testing in which we don't look even at the specifications of the software but are testing the product, purely based on the domain knowledge.This testing approach requires critical understanding of the day-to-day business activities for which the software is written.Thus domain testing is considered as the extension of Black box testing. This is also called as Business vertical testing. For ex we can take the ATM application for cash withdraw. In this application user performs the actions like:- Go to the ATM Put ATM card inside the ATM machine Enter correct PIN Choose withdrawal Enter amount Take the cash Exit and retrieve the card In this example domain tester is not concerned  about testing everything in the design; rather than testing the business flow of the application.When test case is written for this application we should consider all the steps mentioned above and also the missing step is like whether we can with

What is User Documentation Testing

User Documentation  covers all the manuals, user guides, installation guides, setup guides, read me files,software release notes, and online help that are provided along with the software to help the end user to understand the software system. User Documentation Testing should have two objectives:- To check if what is  stated in the document is available in the software To check if what is there in the product is explained correctly in the document This testing is plays a vital role as the users will refer this document when they start using the software at their location.a badly written document can put off a user and bias them against the product even the product offers rich functionality. Defects found in the user documentation need to be tracked to closure like any regular software defect.Because these documents are the first interactions the users have with the product. A good User Documentation  aids in reducing customer support calls.The effort and money spend on this effort

What is Compatibility Testing

Testing is done to ensure that the product features work consistently with different infrastructure components is called Compatibility Testing.Testing the application in different software and hardware environment is nothing but compatibility testing. This testing conducted on the application to evaluate the application's compatibility with the computing environment like:- Computing capacity of Hardware Platform (IBM 360, HP 9000, etc.).. Bandwidth handling capacity of networking hardware(based on network connection) Compatibility of peripherals (Printer, DVD drive, Pen drive,etc.) Operating systems (UNIX, Windows, etc.) Database (Oracle, Sybase, DB2, etc.) Other System Software (Web server, networking/ messaging tool, etc.) Browser compatibility (Firefox, Netscape, Internet Explorer, Safari, etc.) It has 2 classifications Backward Compatibility Testing:- It is done to ensure that the current version of the same product continues to work with the older version of the same

What is State or Graph based Testing

State Based Testing:- State Based means change of sate from one state to another.State based Testing is useful to generate the test cases for state machines as it has a dynamic behavior (multiple state) in its system. we Can explain this using state transition diagram.It is a graphic representation of a state machine. For eg we can take the behavior of mixer grinder. The state transition for this will be like switch on -- turn towards 1 then 2 then 3 then turn backwards to 2 then 1 then off switch on - directly turn backwards to 3 then turn towards to off then turn towards 1 then 2 then 3 then turn backwards to 2 then 1 then off Each represents a state of machine. Like this we can draw state transition diagram. Valid test cases can be generated by: Start from the start state Choose a path that leads to the next state If you encounter an invalid input in a given state, generate an error condition test case Repeat the process till you reach the final state Graph Based Testing:-

What is Equivalence Partitioning

This testing technique involves in identifying a small set of representatives input values (equivalence class)the produces same output values.This reduces the effort involved in testing.In this test one representative from each partition is picked for testing since all the values produce equal and same output.The main advantage of this testing is that we gain good coverage with a small number of test cases. For eg, a company offers increment for all employees based on the age criteria. so the total salary will be like base salary + increment. the age group criteria is like Age criteria      Increment under 35 age      1000/- 35-55 age           2000/- So the Equivalence Partitions that are based on the age are:- below 35 yrs of age(valid input) between 35 to 55 yrs of age(valid input) above 55(invalid input) age as 0(invalid input)

What is Decision Tables

Decision Table is an effective tool in designing test cases. It has two parts Condition part Action part These two together specifies under what condition will an action be performed.This tables guarantee that we consider every possible combination of condition values.and there is no particular order for conditions and actions to occur.But the redundancy should not occur as it increases the number of duplicate test cases.The steps in creating Decision Table are as follows:- Identify the decision variable identify the possible values of each of the decision variables Listing the combinations of the allowed values of each variables For each combination of values of decision variables, list out the action Form a decision  table, in the last column list the action item for the combination of variables in that row Once the decision table is formed, each of of this table acts as the specification for one test case.

What is Boundary value analysis

Most of the software defects is most towards the boundaries.Boundary value analysis(BVA) is a method used for catching defects that happen at boundaries.Values on the minimum and maximum edges are tested in this type of black box testing. For ex if we are testing the application it should accept the values like 1 to100, then the test cases for boundary values will be like  test cases with the input values between 2 and 99(minimum edge)  test cases with the input value 0 and 101(maximum edge)

what is Positive and Negative Testing?

Positive Testing:- Positive testing is done to verify the known test conditions. It proves that product works as per the requirement and to check if the product is delivering the error when it is expected to give the error. In this testing the system is tested with valid inputs. This testing is aimed to show that the system works properly.So it is called as"test to pass". For ex test for a text box, the user requirement is like it should accept only the string inputs, we can test this as giving only string inputs. Negative Testing:- Negative testing is done to verify the unknown test conditions.Negative testing is testing the application with invalid or negative inputs. This testing is aimed to show that the system does not work with negative values. So it is called as "test to fail".It covers the scenarios for which the product is not designed and coded.Testing for behaviour that is contrary to expected behavior.For ex test for a text box, the user requirement i

what is RTM (Requirement Traceability Matrix)

RTM (Requirement Traceability Matrix) traces all the requirements from their genesis through design, development, and testing.A traceability matrix is a document, usually in the form of a table includes Requirement ID, Description, Requirement Priority(high or medium or low), test conditions, test case id, phases of testing. Requirement identifier  represents a serial number  stating module and description stating each and every requirement of the system. Each requirement is assigned a requirement priority , classified as high,medium or low. Tests for high priority requirements will get precedence over tests for lower priority requirements.This ensures that the functionality that has the highest risk is tested earlier in the cycle. Defects reported by such testing can then be fixed as early as possible. Test conditions column lists the different ways of testing the requirement. Test case id is used to complete the mapping between test cases and requirements.Each requirements will

what is Requirements based testing

This black box testing is  mainly deals with the requirements given in the SRS of the system.It is helpful because some requirements are implicit and not stated explicit. Implicit requirements are not mentioned in the SRS document and it should be assumed by the tester. All implicit and explicit requirements are mentioned in TRS( test requirements specifications) and this will be used for testing. Requirements are tracked by Requirements Traceability Matrix(RTM).

what is Black Box Testing?

Black box testing is done from the customer's viewpoint. It does not require examining the code of the program, it involves the looking at the specifications of the application and focuses solely on the output.It is also called as Functionality testing or Data driven testing or Behavioural testing.In this type of testing, tester does not have the access to the source code. Based on the SRS document, test data is prepared.The purpose of this testing is to cause failures in order to make faults visible.Another purpose is to assess the overall quality level of the application. There are various techniques to be used to generate test scenarios for effective Black box testing:- Requirement based testing Positive and negative testing Boundary value analysis Decision tables Equivalence partitioning State based testing Compatibility testing User documentation testing Domain testing Cause effect graphing Error guessing Advantages of Black box testing:- It helps in identifying

what is Dynamic Testing?

The fundamental difference between static and Dynamic (structural testing) is that in structural testing tests are actually run by the computer on the built product or component, whereas in static testing the product is tested by the humans just using the source code and not the executables. There are 3 types of structural testing are: unit/code functional testing:                      This test performs some quick checks in the code by the developer. Repeating the same steps  with different inputs is performed in this test.Developer use debug version for the product like putting print statements in between results and making sure the program is passing through the right loops and iterations. Cyclomatic complexity:                  This method is used to as metric to quantify the complexity of the code. For this the program  flow graph is created with nodes and edges.  nodes represents one or more procedural statements and actions. Two nodes are connected by Edges. Areas bounded with

what is Static Testing?

Static testing is requires only the source code. This does not involve executing the programs on computers. There are multiple methods to achieve static testing by humans are Desk checking:-                      This testing done manually my the author of the code because the programmer who knows the code and the programming language very well. As this is done by one individual who is the author of the code, the defects are detected and corrected with the minimum time delay. At the same time, a developer is not the best person to detect problems in his or her own code. And also the developer use to have interest to write code rather than testing his own code. This is the main disadvantage of this method. Code walkthrough:-                       This method is group oriented. The advantage is that it brings multiple perspectives. Set of people look at the program code and raise questions for the author about the code. The author explains the logic and answer the question. so this meth

what is Branch Coverage Testing?

Every software program works with some set of branches in its code to perform certain functions.100% branch coverage means that test data will ensure that every branchsh of a program is executed at least once during testing. For example, consider the following code: if ( a >= b ) then { printf(") } else { printf(") }   For this code the brach test will be taken according to the decisions and its branches like if the condition is passed it will lead to one brach otherwise it leads to another brach.

what is Function Coverage Testing?

The requirement of a product is mapped into functions during the design phase and each of the functions form a logical unit. the advantages of function coverage are functions are easier to identify in a program hence it is easy to write test case for it. it is easier to achieve 100% function coverage than any other coverage we can also measure how many times a given function is called.This will indicate which function is used most often and hence these functions become the target of any performance testing.This will improve the performance as well as quality of the product. the formula for Function Coverage:- total no.of functions exercised             _________________________      *100       total no.of functions in a program

what is Condition Coverage Testing?

Even we  have covered all the paths in the program we cant assure that the program is fully tested. It is necessary to have test cases that exercise each Boolean expression & to  have test cases that produce true as well as false path. For eg,we can take the program like if(a>b)&&(a>c)&&(a>c) then { printf("A is greatest") } else Printf("A is not greatest") There are 3 condition in above program. Hence the required no of test cases is 2^3=8. Like that we can test how much test cases we have to write for the conditions. the formula to get the 100% condition Coverage is total no. of decisions exercised            _________________________      *100   total no. of decisions in program

what is Path Coverage Testing

In Path Coverage we split the program into a number of distinct paths as the program or a part of program can start from the beginning and take any of the paths to its completion. Because some errors are related to some combination of branches and their presence is revealed by an execution that follows the path that includes those branches. So all possible paths to be executed during testing.This is called path testing. we can gain no of independent paths by an approach called Cyclomatic Complexity that i defined earlier in this blog.The formula for path coverage is:- total no.of paths exercised                    _____________________        * 100 total no.of paths in program 

what is Statement Coverage Testing?

Statement Coverage refers to writing test cases that execute each of the program statements.Program constructs in most convenient languages can be classified as  Sequential control flow Two way decision statements like if then else Multi way decision statements like switch loops like while do, repeat until and for For a Sequential control flow statements test cases can be designed to run through top to bottom. even in this section, coverage for all statements may not be achieved if there are are any asynchronous exceptions that that code encounters(ex: divide by zero error). For Two way decision like if we have  to cover all statements of then and else part. test cases can be written for each part of the decision. In Multi way decision like switch statements, test cases can be written for all switch cases to get better coverage. A good percentage of defects in programs come about because of loops that don not function properly. so we have to write test cases for the proper loo

what is White Box Testing?

Every software product is realized by means of a program code. White box testing is the way of testing the functionality of the code by examining it. This is also called as glass box or clear box or open box testing. It tests the program code, code structure, and internal design flow. Testing based on an analysis of internal workings of a software product. Classification of white box testing:   Static Testing Dynamic Testing       Advantages of white box testing:- helps to find the root cause of the defect by unit testing of a code optimization of the program code Evaluates the code in multiple perspectives it is pro active and cost effective testing as defects are found earlier Disadvantages of white box testing:- Human tendency of the Developers being unable to find the defects in their own code It is impossible to test every bit of code Tester should have the skills of program language in which it is written If the Developer and Tester dont have enough knowledge on Produ

what is V Model?

The V-Model splits testing into two parts as Design and Execution. The model starts with overall business requirement.Once the requirement is ready then software,hardware,human resource requirement becomes the next step.Then the detailed design of software will be prepared based on the SRS..This design document will be used as a blue print for the later phases like coding and testing. Test design starts with the time when requirement document (SRS) is ready. Test design is done early while the test execution is done at the end. After design phase, the construction(coding) will be followed based on the system design document and SRS. As the testing design is ready, the execution of testing will be conducted by the tester.There are different types of tests for each phases of this life cycle model. In Execution, program units have to be tested independently before combining them into components. This is called Unit testing. With the individual units of system is tested then units are co

what is Agile(scrum) & XP Methodology

Agile & XP(Extreme Programming)  Methodology becomes the most popular testing method among Testing Industry. The main reason is this methodology emphasizes the involvement of the entire team and their interactions with each other, to produce a workable software that can satisfy a given set of expected features.As a result of such interactions, all ideas are exchanged among team members. and also the customer becomes the part of the project team so as to clarify any doubts/questions according to requirements. In these models, the project team work step by step in bringing the project to completion in a phased manner.Software is delivered as small releases, with features being introduced in increments. As the changes are introduced incrementally, responding to the changes becomes very easy. A typical XP & Agile project day starts with a meeting called stand up meeting. At the start of each day, the team meets to plan of action for the day. And the team brings up any clarificat