Waterfall model

The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed fully before the next phase can begin. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In waterfall model phases do not overlap.



Diagram of Waterfall-model: 


              


Advantages of waterfall model: 
  • Simple and easy to understand and use. 
  • Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. 
  • Phases are processed and completed one at a time. 
  • Works well for smaller projects where requirements are very well understood. 


Disadvantages of waterfall model: 
  • Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. 
  • No working software is produced until late during the life cycle. 
  • High amounts of risk and uncertainty. 
  • Not a good model for complex and object-oriented projects. 
  • Poor model for long and ongoing projects. 
  • Not suitable for the projects where requirements are at a moderate to high risk of changing. 


When to use the waterfall model: 
  • Requirements are very well known, clear and fixed. 
  • Product definition is stable. 
  • Technology is understood. 
  • There are no ambiguous requirements 
  • Ample resources with required expertise are available freely 
  • The project is short.

Incremental model

In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a“multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved.


For example:
                                                       In the diagram above when we work incrementally we are adding piece by piece but expect that each piece is fully finished. Thus keep on adding the pieces until it’s complete.


Diagram of Incremental model:


          


Advantages of Incremental model:

  • Generates working software quickly and early during the software life cycle. 
  • More flexible – less costly to change scope and requirements. 
  • Easier to test and debug during a smaller iteration. 
  • Customer can respond to each built. 
  • Lowers initial delivery cost. 
  • Easier to manage risk because risky pieces are identified and handled during it’d iteration. 


Disadvantages of Incremental model:
  • Needs good planning and design. 
  • Needs a clear and complete definition of the whole system before it can be broken down and built incrementally. 
  • Total cost is higher than waterfall


When to use the Incremental model:
  • Requirements of the complete system are clearly defined and understood. 
  • Major requirements must be defined; however, some details can evolve with time. 
  • There is a need to get a product to the market early. 
  • A new technology is being used 
  • Resources with needed skill set are not available 
  • There are some high risk features and goals.

RAD model

RAD model is Rapid Application Development model. It is a type of incremental model. In RAD model the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype. This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements.



Diagram of RAD-Model:




The phases in the rapid application development (RAD) model are:


Business modeling: The information flow is identified between various business functions.

Data modeling: Information gathered from business modeling is used to define data objects that are needed for the business.

Process modeling: Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects.

Application generation: Automated tools are used to convert process models into code and the actual system.

Testing and turnover: Test new components and all the interfaces.


Advantages of the RAD model: 
  • Reduced development time. 
  • Increases reusability of components 
  • Quick initial reviews occur 
  • Encourages customer feedback 
  • Integration from very beginning solves a lot of integration issues


Disadvantages of RAD model: 
  • Depends on strong team and individual performances for identifying business requirements. 
  • Only system that can be modularized can be built using RAD 
  • Requires highly skilled developers/designers. 
  • High dependency on modeling skills 
  • Inapplicable to cheaper projects as cost of modeling and automated code generation is very high. 


When to use RAD model: 
  • RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time. 
  • It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools. 
  • RAD SDLC model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).

Web Testing Interview Questions

What is Web application?
It is Software application that is accessed over a network such as the Internet or an intranet through a web browser. Web application provides services (Free and Paid) apart from information. Ex: Online Banking System it provides Bank information, Branches & ATM Information, Loans information etc…And It provides balance enquiry, Fund transfer, Bill payments like services.

What is Web browser?
Web browser is a software application used to locate, retrieve and also display content on the World Wide Web, including Web pages, images, videos and other files. Examples: Google Chrome, Mozilla Firefox, Internet Explorer, Opera, Safari.

What is website?
Basically website is an information provider; it provides information globally using internet protocols.

What is WWW?
The term WWW refers to the World Wide Web or simply the Web. The World Wide Web consists of all the public Web sites connected to the Internet worldwide, including the client devices (such as computers and cell phones) that access Web content. The WWW is just one of many applications of the Internet and computer networks.

What is Web portal?
Web portal is a business gateway, It organizes business operations. Ex: Online shopping portals, Job portals etc…

What is Web server?
Web server handles Clint side and server side validations and helps to deliver Web content that can be accessed through the Internet protocols. Examples: Microsoft IIS (Internet Information Service) Apache Web server from Apache Java Web server Pramathi web server etc…

How to perform Web Services Testing?

A Web Service is a service accessed via Web. Web Service is a way to publish your application over web and enable other applications to access functions defined by your web service. Web services exposes an interface defined in Web Services Description Language (WSDL).

How to test Web Forms manually and using QTP Tool?
Web forms have 2 types of validations;
a) Field level validations
b) Field level validations
Using Black Box test design techniques we can test web forms manually
Using Conditional statements and built-in functions we can test web forms (Using QTP)


What are possible configurations that could affect the testing strategy of any web site?
Possible configurations that affect the testing strategy of any web site are hardware platform (PC, Mac), Browser software and version, Browser Plug-Ins, Browser settings options, Video resolution and Colour Depth, and text size.
What are the advantages of web applications than GUI based applications?
Only server side installation, client side installation is not mandatory, so deployment and maintenance is easy.It can be accessible anywhere, anytime via a PC with an Internet connection.The user interface of web-based applications is easier to customize than it is in GUI applications. Content can also be customized for presentation on any device connected to the internet, including PDAs, mobile phones etc…Supports thousands of clients effectively Adding and removing clients is very easy.

What are the different types of environments available in the Web?
Intranet (Local Network)Internet (Wide area Network)Extranet (Private network over Internet)

What are the different types of web applications available in the Industry?
We have different types of web applications available in the Industry?
a) Websites
Ex:
http://www.aurobindo.com/, http://www.pennacement.com/ etc…
b) Web portals
Ex:
http://www.ebay.in/, http://www.naukri.com/ etc…
c) Web Applications
Ex:
www.icicibank.com/, http://www.sunlife.com/ etc…
d) Email Service providers
Ex:
www.gmail.com, www.yahoo.com, www.rediffmail.com etc…
e) Social Networks
Ex:
www.facebook.com, www.twitter.com, www.linkedin.com etc…
f) Discussion Forums Etc…
Ex:
www.testinganswers.com

What are the important aspects in Web testing?
Functional Testing (includes links testing, navigation testing etc…),
Security Testing,
Database Testing (includes Data integrity, data manipulations, data retrievals etc..),
Performance Testing (includes all types of performance like Load Testing, Stress Testing, Spike Testing, Endurance Testing and Data volume Testing),
Usability Testing,
Navigation testing,
Configuration Testing,
Compatibility Testing,
Reliability Testing,
Availability Testing,
Scalability Testing Etc…

What are the important web testing activities?
Forms validation
Links validation
Database testing
Navigation testing
Performance (Load, Stress and Endurance)
Search operations validation Etc…


What is application server?
Application Server also called an appserver, It is a program that handles all application operations between users and an organization’s back-end business applications or databases.

What is Client side validation?
Validating client side forms, which is typically done by Java Script. Generally it checks weather the user is entering correct form of data or not? and entering all mandatory fields or not? Client site validation is 2 types One is Field level validation another is Form level validation.

What is Cookies Testing?
A “cookie” is a small piece of information that sent by a web server to store on a web browser so it can later be read back from that browser. This is useful for having the browser remember some specific information.

What is database server?
Database server is used to refer to the back-end system of a database application using client/server architecture. The back-end, sometimes called a database server, performs tasks such as data design, storage, data manipulations, archiving, and other non-user specific tasks. Examples: Oracle, MS SQL Server, MySQL (Open source), IBM DB2 etc…

What is difference between client server and Web Testing?
The difference between client server and Web Testing: In client server application you have two different components to test. Application is loaded on server machine while the application exe on every client machine. You will test broadly in categories like, GUI on both sides, functionality, Load, client-server interaction, back-end. This environment is mostly used in Intranet networks. You are aware of number of clients and servers and their locations in the test scenario. Web application is a bit different and complex to test as tester don’t have that much control over the application. Application is loaded on the server whose location may or may not be known and no exe is installed on the client machine, you have to test it on different web browsers. Web applications are supposed to be tested on different browsers and OS platforms so broadly Web application is tested mainly for browser compatibility and operating system compatibility, error handling, static pages, back-end testing and load testing.

What is extranet application?
It is also a private application over internet, can be accessed by fixed machines only. It uses Wide area network and Internet Protocol technology to share information.

What is HTML?
HTML stands for Hyper Text Markup Language, it is for displaying web pages and other information. Basically it is data presenter in the web.

What is HTTP?
Hyper Text Transfer Protocol, the data transfer protocol used on the World Wide Web.

What is HTTPS?
HTTPS stands for Hypertext Transfer Protocol Secure is a widely-used communications protocol for secure communication over a computer network.

What is internet application?
Generally it is a public web application, uses Wide area network. It can be accessed from anywhere.

What is intranet application?
It is a private application, can be accessed within the Organization only. It uses Local /Private Network and Internet Protocol technology to share information.

What is purpose of Java Script in the Web?
It is for performing client side validations.

What is Server side validation?
Validating, processing client requests and providing response from the Server.
What is the difference among Intranet, Internet and Extranet web applications?
Intranet: It is a private network(Within the Organization) uses LAN/MAN Technologies
Internet: It is a Public network uses WAN Technology
Extranet: It also private network over Internet


What is the difference between desktop application testing and web testing?
Desktop testing is standalone testing. Desktop need not worry about number of user etc. Web testing is related to client server. Web testing needs to have many testing’s like usability, GUI, and Load Testing.

Which different test scenarios will you consider when you are testing a website?
The first scenario to be tested is the GUI. The page layout and the design elements used on the website have to be uniform throughout the website. The next part to be tested is the different links provided inside the website. Along with the links, it will also have to be tested, whether internal navigation is smooth and also check if it is complex. The next important aspect to be checked is the response time of the website. This will also have to checked, when there is heavy load on the system.


Explain the difference between authentication and authorization during web testing?
Authentication is the process with which the system identifies the user. The goal is to ensure that the user is indeed a user, who he claims to be. There are different types of authentications, which can be used like password based authentication, device based authentication, etc. On the other hand, authorization is the process after the authentication process. In this process the system will decide whether a particular task can be performed by the user, does he have the necessary permissions, etc?


Which are the different test case formats that are a part of web testing?
The test case formats will vary depending on whether the website is a static website or a dynamic website. The static website will have the front end test cases, navigation test cases. On the other hand, if the website is a dynamic website, then the test cases will be broadly divided under front end test cases, back end test cases, field validations test cases, database test cases, security test cases, etc.


Which are the HTTP Response Objects?
Some of the HTTP Response Objects are write, flush, tell, etc. The subclasses of HTTP Response are HttpResponseRedirect, HttpResponsePermanentRedirect, HttpResponseBadRequest, HttpResponseNotFound, etc.


What is a proxy server?
A proxy server is a server, which behaves like an intermediary between the client and the main server. Therefore, the requests onto the main server are first sent to the proxy server from the client system, which are then forwarded to the main server. The response from the main server is sent to the client through the proxy server itself. The request and/or the response may be modified by the proxy server depending on the filtering rules of the server.


Is usability testing possible while testing a website?
Usability testing is indeed an important part of web testing. In usability testing, it is checked, whether the website is user-friendly. Is it possible for the user to move around easily within the webpage? Is there any sort of ambiguity on the webpage.


which can hinder the user experience?
While testing a website, which are the different configurations which will have to be considered these configurations may demand for change in strategy of the webpage.
The most important factor that needs consideration is the hardware platform, while some may use the Mac platform, some may use Linux, while others may use Microsoft platform. The next comes the browsers and their versions into the picture. Along with the browser versions, the different Plug-Ins also have to be taken into consideration. The resolution of the monitor also with color depth and text size are some of the other configurations.


Which are the common browsers, where a web application should be tested?
The browsers that are commonly used are Mozilla Firefox, Google Chrome, Internet Explorer and Opera. Therefore, a web application must be tested on these browsers as well.


How are the static websites different than the dynamic websites?
Static websites only give out information to the user and the user does not have any sort of interaction with the website. On the other hand, dynamic websites are the ones, where the user communicates with the system and is asked for information. On providing the required information, he may be able to retrieve the information he is looking for.


What are the common problems faced in web testing?
The most common problem faced during web testing is the server problem. The server can either be down or it can be under maintenance. The next problem, which is often faced in web testing is database problem, where the connection to the database can be broken. In some cases, there can be hardware compatibility problems, when one is testing a web application.


What is the purpose of VbScript in the Web?
It can be used for client side validations as well as Server side validations.

What is Web Services?
Web services are application components, communicate using open protocols and these can be used by other applications. XML is the basis for Web services SOAP (Simple Object Access Protocol), UDDI (Universal Description, Discovery and Integration) and WSDL (Web Services Description Language) are the Web services platform elements.

What the latest web technologies do you know?
Latest web technologies are: The main three web tracks:
1. Microsoft ASP.Net Track + SQL Server database engine (IDE: Expression Web, Visual Studio).
2. Oracle Java Track + Oracle database engine (IDE: NetBeans, Eclipse).
3. PHP Track + MySQL database engine (IDE: Zend Studio, DreamWeaver). There are many new concepts and enhanced methodologies like Ajax, JQuery, JSON, and so on.


What types HTTP Response Codes do you know?
Types of HTTP Response Codes are:
2xx – success,
3xx – Redirection,
4xx – Client Error,
5xx – Server Error

What types of web testing security problems do you know?
Types of web testing security problems are: Denial of Service (DoS) attack, buffer overflow etc…

Equivalence Partitioning - Multiple Choice Questions

1. What is an equivalence partition (also known as an equivalence class)?

a) A set of test cases for testing classes of objects.
b) An input or output range of values such that only one value in the range becomes a test case.
c) An input or output range of values such that each value in the range becomes a test case.
d) An input or output range of values such that every tenth value in the range becomes a test case.


2. One of the fields on a form contains a text box which accepts numeric values in the range of 18 to 25.
Indentify the invalid Equivalence class

a) 17
b) 19
c) 24
d) 21


3. In a Examination a candidate has to score minimum of 24 marks inorder to clear the exam. The maximum that he can score is 40 marks. Identify the Valid Equivalence values if the student clears the exam.

a) 22,23,26
b) 21,39,40
c) 29,30,31
d) 0,15,22


4. One of the fields on a form contains a text box which accepts alpha numeric values. Identify the Valid 

Equivalence class
a) BOOK
b) Book
c) Boo01k
d) book


5. The Switch is switched off once the temperature falls below 18 and then it is turned on when the temperature is more than 21. When the temperature is more than 21. Identify the Equivalence values which belong to the same class.

a) 12,16,22
b) 24,27,17
c) 22,23,24
d) 14,15,19


6. A program validates a numeric field as follows: 
values less than 10 are rejected, values between 10 and 21 are accepted, values greater than or equal to 22 are rejected. which of the following input values cover all of the equivalence partitions?

a. 10,11,21
b. 3,20,21
c. 3,10,22
d. 10,21,22

7. The specification: an integer field shall contain values from and including 1 to and including 12 (number of the month). Which equivalence class partitioning is correct?

a) Less than 1, 1 through 12, larger than 12
b) Less than 1, 1 through 11, larger than 12
c) Less than 0, 1 through 12, larger than 12
d) Less than 1, 1 through 11, and above


8. A program validates a numeric field as follows: values less than 10 are rejected, values between 10 and 21 are accepted, values greater than or equal to 22 are rejected. Which of the following covers the MOST boundary values?

a. 9,10,11,22
b. 9,10,21,22
c. 10,11,21,22
d. 10,11,20,21


9. In a system designed to work out the tax to be paid:
An employee has £4000 of salary tax free. The next £1500 is taxed at 10%. The next £28000 is taxed at 22%. Any further amount is taxed at 40%. Which of these groups of numbers would fall into the same equivalence class?

a) £4800; £14000; £28000
b) £5200; £5500; £28000
c) £28001; £32000; £35000
d) £5800; £28000; £32000


10. Order numbers on a stock control system can range between 10000 and 99999 inclusive. Which of the following inputs might be a result of designing tests for only valid equivalence classes and valid boundaries:

a) 1000, 5000, 99999
b) 9999, 50000, 100000
c) 10000, 50000, 99999
d) 10000, 99999
e) 9999, 10000, 50000, 99999, 10000

11. Equivalence partitioning is:

a. A black box testing technique used only by developers
b. A black box testing technique than can only be used during system testing
c. A black box testing technique appropriate to all levels of testing
d. A white box testing technique appropriate for component testing


12. Which of the following is a valid collection of equivalence classes for the following problem: An integer field shall contain values from and including 1 to and including 15

a. Less than 1, 1 through 15, more than 15
b. Negative numbers, 1 through 15, above 15
c. Less than 1, 1 through 14, more than 15
d. Less than 0, 1 through 14, 15 and more


13. Which of the following is a valid collection of equivalence classes for the following problem: Paying with credit cards shall be possible with Visa, Master and Amex cards only.

a. Visa, Master, Amex;
b. Visa, Master, Amex, Diners, Keycards, and other option
c. Visa, Master, Amex, any other card, no card
d. No card, other cards, any of Visa – Master – Amex


14. Given the following specification, which of the following values for age are in the SAME equivalence partition? If you are less than 18, you are too young to be insured. Between 18 and 30 inclusive, you will receive a 20% discount. Anyone over 30 is not eligible for a discount.

A 17, 18, 19.
B 29, 30, 31.
C 18, 29, 30.
D 17, 29, 31.


15. One of the fields on a form contains a text box which accepts alphabets in lower or upper case.Indentify the invalid Equivalence class value.

a. CLASS
b. cLASS
c. CLass
d. CLa01ss


Equivalence Partitioning Tutorial



Definition of Equivalence Partitioning

Equivalence Partitioning is a black-box testing technique (basic test-design technique) that splits the input domain into classes of data. From this data we can derive test cases.

Test-case design with the help of equivalence partitioning technique has two steps:

1) Identifying the equivalence classes.
2) Defining the test cases.

Example 1 of Equivalence Partitioning

Problem:-

The program reads three integer values from an input dialog. The three values represent the lengths of the sides of a triangle. The program displays a message that states whether the triangle is scalene, isosceles, or equilateral. Remember that a scalene triangle is one where no two sides are equal, whereas an isosceles triangle has two equal sides, and an equilateral triangle has three sides of equal length. Moreover, the angles opposite the equal sides in an isosceles triangle also are equal (it also follows that the sides opposite equal angles in a triangle are equal), and all angles in an equilateral triangle are equal.
(Source: http://www.amazon.com/Art-Software-Testing-Glenford-Myers/dp/0471043281)


Solution:-

As seen in the definition above we have to identify equivalence classes and define test cases based on those classes.

Equivalence Classes for the triangle problem



Test Cases (Valid) for Equilateral Triangle
Test Case #
Side1
Side2
Side3
Expected Output
1
5
5
5
Equilateral

Test Cases (Valid) for Isosceles Triangle
Test Case #
Side1
Side2
Side3
Expected Output
1
2
2
3
Isosceles
2
2
3
2
Isosceles
3
3
2
2
Isosceles

Test Cases (Valid) for Scalene Triangle
Test Case #
Side1
Side2
Side3
Expected Output
1
3
4
6
Scalene
2
3
6
4
Scalene
3
4
3
6
Scalene

Test Cases (Invalid) Not a Triangle
Test Case #
Side1
Side2
Side3
Expected Output
1
3
1
2
Not a triangle
2
2
3
1
Not a triangle
3
1
2
4
Not a triangle


More solutions to the triangle problem

Solution 1

Solution 2

Solution 3

Solution 4


Example 2 of Equivalence Partitioning

The specifications for a application software system for authenticating expenses claim for motel accomodation for one night includes the following requirements:

Upper limit is $100 for accomodation expenses claims.
Any claims above $100 should be rejected and should cause an error message to be displayed.
Expense amounts should be greater than $0 and an error message should be displayed otherwise.

Designing test cases
Test case ID
Motel Charge
Equivalence class
Expected output
1
65
0 < Motel Charge<=100
OK
2
-24
Motel Charge <=0
Error message
3
110
Motel Charge > 100
Error message

Another Example of Equivalence Partition



Advantages of Equivalence Partitioning

It decreases the scope of extensive testing to a well-defined set of test procedures i.e. it reduces the number of required test cases by identifying classes of data. This in a way also helps to reduce redundant test cases.

Drawbacks of Equivalence Partitioning

The resultant test procedures do not include other types of tests that may have a high likelihood of finding an error. e.g. suppose for some problem we might need to define equivalence classes for infinite number of days.

first day of month

middle day of month

last day of month

last day of year

28th of February, non-leap year

28th of February, leap year

29th of February, leap year

In this way we surely bring down the number of test cases but equivalence partitioning may not check unexpected input as 32nd of November.