Posts

Showing posts from 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

what is Spiral Model?

Image
This model follows a process in which the requirements all the phase activity is performed iteratively till all the requirements are met. This enables the product to be demonstrated at any point of time during the development cycle. It allows the progress to be tracked and the customer approvals to be obtained at regular intervals, thereby reducing the risk of finding major defects at a later point of time.The spiral model is favored for large, expensive, and complicated projects. This model allows for incremental releases of the product, or incremental refinement through each time around the spiral. This model also explicitly includes risk management within software development. Identifying major risks, both technical and managerial, and determining how to lessen the risk helps keep the software development process under control. Advantages Changing requirements can be accommodated. Allows for extensive use of prototypes Requirements can be captured more accurately. Users see

what is Iterative or Incremental Model?

Image
An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software , which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model. Requirements phase, in which the requirements for the software are gathered and analyzed. Iteration should eventually result in a requirements phase that produces a complete and final specification of requirements. Design phase, in which a software solution to meet the requirements is designed. This may be a new design, or an extension of an earlier design. Implementation and Test phase, when the software is coded, integrated and tested. Review phase, in which the software is evaluated, the current requirements are reviewed, and changes and additions to requirements proposed.  For each cycle of the model, a decision has to be m

what is RAD Model?

Rapid Application Development or RAD takes the Prototype Model of SDLC further. Instead of using codes, developers use different tools(eg: CASE tools) and software development kits and bring them all together to create a software. Developers who are time challenged could use this application development. Businesses will also appreciate this software as it’s aimed to answer specific problems. Users’ feedbacks are important in this development cycle since they will suggest whether the program will fit to their specifications and needs. Advantages Promotes strong collaborative atmosphere and dynamic gathering of requirements. Business owner actively participates in prototyping, writing test cases   and performing  unit testing Time to deliver is less. Changing requirements can be accommodated. Progress can be measured. Cycle time can be short with use of powerful RAD tools. Productivity with fewer people in short time. Use of tools and frameworks.    Disadvantages   Management

what is Prototype Model?

Image
The goal of prototyping based development is to counter the first two limitations of the waterfall model. This prototype is developed based on the currently known requirements. Development of the prototype obviously undergoes design, coding and testing. But each of these phases is not done very formally or thoroughly. By using this prototype, the client can get an "actual feel" of the system. Advantages It could serve as the first system. Prototyping is an attractive idea for complicated and large systems for which there is no manual  process or existing system to help determining the requirements. The customer doesn’t need to wait long as in the Linear Model. Feedback from customers are received periodically and the changes don’t come as a last minute surprise. Users are actively involved in the development It provides a better system to users, as users have natural tendency to change their mind in specifying requirements and this method of developing systems s

what is Modified Waterfall Model?

Image
In response to the perceived problems with the "pure" waterfall model, many modified waterfall models have been introduced. These models may address some or all of the criticisms of the "pure"  waterfall model. In Water fall method , there is no VALIDATION OR VERIFICATION between the phases , so the customer will finally get unsatisfied product. This Modified Waterfall Model Involves VALIDATION or VERIFICATION between the phases , so any deviations can be corrected immediately , providing the customer satisfaction, so this is preferred.

what is Waterfall Model?

Image
The waterfall model is a sequential SDLC model in which development is seen as flowing steadily downwards (like a waterfall) through several phases. The waterfall model maintains that one should move to a phase only when its preceding phase is completed and perfected. Phases of development in the waterfall model are thus discrete, and there is no jumping back and forth or overlap between them. The most probable phases through which it progresses downwards are Definition Study/Analysis Basic Design Technical Design/Detailed Design Construction Testing Integration Management and Maintenance Definition Study / Analysis : During this phase research is being conducted which includes brainstorming about the software, what it is going to be and what purpose is it going to fulfill.   Basic Design : If the first phase gets successfully completed and a well thought out plan for the software development has been laid then the next step involves formulating the basic design of the s

what are all the SDLC Models?

SDLC Models:                 Describes how the SDLC phases combine together to form a complete product. some of the common Software Development life cycle models are:- Waterfall model Modified Waterfall model V model W model Prototype model Spiral model Iterative model RAD Model Agile & XP Methodology

what is SDLC?

SDLC ( Software Development Life Cycle ):          SDLC represents the overall system development process by which a software system is defined and realized.It is used to  develop the software systematically. It is made up of a series of phases. 1) Information Gathering 2) Requirement Analysis 3) Design 4) Coding 5) Testing 6) Implementation & Maintenance. 1) Information Gathering :             In this phase; information is gathered from the customer , if some information are missing then we need to go to customer and take the required information. Mainly this is done by the Business  Analyst as they are the one who are completely involved in Software Development life Cycle. The Document Prepared during this phase is : Business Requirement Specification (BRS)or Customer Required Specification( CRS) Or User Requirement Specification(URS). 2)  Requirement Analysis :             The Features and the functions that need to be put in the project are determined. 3)

what are the principles of Software Testing?

The fundamental principles of Testing are as follows: Finding defects before customers find them out Exhaustive testing is not possible that means the testing can only show the presence of defects and never their absence Testing applies all through the software life cycle and it is not an end of cycle activity Understand the reason behind the test Test the Test first Test delivers immunity and has to be revised constantly Defects occurs in convoys and clusters, and testing should focus on these convoys Testing encompasses defect prevention Testing is fine balance of defect prevention and defect detection Intelligent and well planned automation is key to realizing the benefits of automation testing Testing requires talented,committed people who believe in themselves and work in teams

Why to test a Software?

- Software Products has become an integral part of our life and is increasingly being used in mission critical s/w - Software is being used by large number of people and we have little control over the way it is used - for eg: Aircrafts, space system, Medical equipments, stock exchanges, Banks are some the most critical domains using s/w in their day to day performance.Reliability and performance of software systems like this is of crucial importance in social living. - Nowadays the software is being used in mission critical situations where the failure is unacceptable  A need for high reliabilty products on one hand and defective systems on other hand has forced the s/w industry to heavily depend on the Testing.

Why Software Testing ?

- Testing Provides required confidence for the release of the product - It is required to build and deliver a quality product - To avoid the user to find bugs - To keep the reliability of the product - To stand in Business - To give the assurance that the software has no defects - To ensure that software matches the requirement - To reduce the development cost and maintenance cost

What is Software Testing?

- It encompasses all the activities that are aimed at discovering errors in a s/w product or its components by exercising the system and its components - It is an activity to check whether the actual results meet the expected result and to ensure that the s/w is defect free - It is a process of executing the program with the intend of finding errors - It is a process of exercising and evaluating the system component by manual or automated means to verify that it satisfies specified requirements - It establish the confidence that a program does what it is suppose to do