What is client-server and web based testing and how to test these applications

This is the guest post from VijayD

Question:

What is the difference between client-server testing and web based testing and what are things that we need to test in such applications?

Ans:
Projects are broadly divided into two types of:

  • 2 tier applications
  • 3 tier applications

CLIENT / SERVER TESTING
This type of testing usually done for 2 tier applications (usually developed for LAN)
Here we will be having front-end and backend.

The application launched on front-end will be having forms and reports which will be monitoring and manipulating data

E.g: applications developed in VB, VC++, Core Java, C, C++, D2K, PowerBuilder etc.,
The backend for these applications would be MS Access, SQL Server, Oracle, Sybase, Mysql, Quadbase

The tests performed on these types of applications would be
- User interface testing
- Manual support testing
- Functionality testing
- Compatibility testing & configuration testing
- Intersystem testing

WEB TESTING
This is done for 3 tier applications (developed for Internet / intranet / xtranet)
Here we will be having Browser, web server and DB server.

The applications accessible in browser would be developed in HTML, DHTML, XML, JavaScript etc. (We can monitor through these applications)

Applications for the web server would be developed in Java, ASP, JSP, VBScript, JavaScript, Perl, Cold Fusion, PHP etc. (All the manipulations are done on the web server with the help of these programs developed)

The DBserver would be having oracle, sql server, sybase, mysql etc. (All data is stored in the database available on the DB server)

The tests performed on these types of applications would be
- User interface testing
- Functionality testing
- Security testing
- Browser compatibility testing
- Load / stress testing
- Interoperability testing/intersystem testing
- Storage and data volume testing

A web-application is a three-tier application.
This has a browser (monitors data) [monitoring is done using html, dhtml, xml, javascript]-> webserver (manipulates data) [manipulations are done using programming languages or scripts like adv java, asp, jsp, vbscript, javascript, perl, coldfusion, php] -> database server (stores data) [data storage and retrieval is done using databases like oracle, sql server, sybase, mysql].

The types of tests, which can be applied on this type of applications, are:
1. User interface testing for validation & user friendliness
2. Functionality testing to validate behaviors, i/p, error handling, o/p, manipulations, services levels, order of functionality, links, content of web page & backend coverage’s
3. Security testing
4. Browser compatibility
5. Load / stress testing
6. Interoperability testing
7. Storage & data volume testing

A client-server application is a two tier application.
This has forms & reporting at front-end (monitoring & manipulations are done) [using vb, vc++, core java, c, c++, d2k, power builder etc.,] -> database server at the backend [data storage & retrieval) [using ms access, sql server, oracle, sybase, mysql, quadbase etc.,]

The tests performed on these applications would be
1. User interface testing
2. Manual support testing
3. Functionality testing
4. Compatibility testing
5. Intersystem testing
Some more points to clear the difference between client server, web and desktop applications:

Desktop application:
1. Application runs in single memory (Front end and Back end in one place)
2. Single user only

Client/Server application:
1. Application runs in two or more machines
2. Application is a menu-driven
3. Connected mode (connection exists always until logout)
4. Limited number of users
5. Less number of network issues when compared to web app.

Web application:
1. Application runs in two or more machines
2. URL-driven
3. Disconnected mode (state less)
4. Unlimited number of users
5. Many issues like hardware compatibility, browser compatibility, version compatibility, security issues, performance issues etc.

As per difference in both the applications come where, how to access the resources. In client server once connection is made it will be in state on connected, whereas in case of web testing http protocol is stateless, then there comes logic of cookies, which is not in client server.

For client server application users are well known, whereas for web application any user can login and access the content, he/she will use it as per his intentions.

So, there are always issues of security and compatibility for web application.

Over to you: On which application are you working? Desktop, client-server or web application? What is your experience while testing these applications?

To get software testing articles in your inbox click here to subscribe with your email address. 




Related Posts:

  • Difference between Desktop, Client server and Web testing
  • Web Terminologies: Useful for web application testers
  • How can a Web site be tested?
  • Web Testing, Example Test cases
  • .Net Developers
  • 41 comments ↓

    #1 Arpit on 05.08.08 at 4:59 am

    Hi Vijay,
    I am working on desktop applications since last 2 years and now learning web application testing basics side by side..
    am very eager to work on web projects..let’s see when i will get the chance.. thanks for providing useful info here..

    #2 Bibek khatiwara on 05.08.08 at 5:02 am

    Thanks VijayD for u r great help…

    1)Is all web based application is always 3-tier?plz explain

    May god bless you.

    #3 Vishal Chhaperia on 05.08.08 at 6:13 am

    Hi Vijay,

    I have aroung two years of exp. in testing wherein i am doing only functional testing that is also for manual.
    Many tester in company are using Mercury Quality Center, i just want to knaow what is all about , is ita tool or just to track the status of testing.

    Pls explain me also if i can get demo version of Mercury Quality Center.

    Cheers

    Vishal
    Call: 09830704327
    Email: bishalchaperia@gmail.com

    #4 VijayD on 05.08.08 at 6:25 am

    @Bibek,

    Could be n-tier applications as well.

    Eg, following are the different tiers you can see,

    1) Presentation GUI -> HTML, Windows forms, etc.
    2) Presentation Logic Tier -> The Web Server Side - IIS (VBScript,JScript, Web Forms, C#, VB.net, etc) Produces: (HTML, XML,

    WML, DHTML, etc), Proxy Tier (SOAP, CORBA, RMI, DCOM, etc).
    3) Business tier -> Business Objects and Rules, Data Manipulation and Transformation into Information, Could be deisgned in a stateful manner.
    4) Data Access Tier -> Interfaces with the Database, Handles all Data I/O, Made to scale, usually stateless.
    5) Data Tier -> Storage, Query & Storage Optimization, Performance (Indexing, etc).

    Regards,
    VijayD

    #5 VijayD on 05.08.08 at 6:37 am

    @Vishal,

    Quality Center can be used to Track the Following Integrated Testing Process:

    1) Specifying Requirements: Identify and validate the functional and performance requirements that need to be tested

    (Requirements Planning).
    2) Planning Tests: Plan and confirm which tests need to be performed and how these tests must be run (Test Plan).
    3) Running Tests: Organize test sets, schedule their execution, perform test runs, and analyze the results of these runs

    (Test Lab).
    4) Tracking Defects: Add defects that were detected in the application and track how repairs are progressing (Defects

    module).
    5) Generating Reports: Module Specific Report or General report can be generated any time during the testing process from each Quality Center module, using default or customized settings (Dash Board).

    1) Requirements:
    Requirements describe in detail what needs to be tested in your application and provide the test team with the foundation on

    which the entire testing process is based.In Qualtiy Centre you can:

    a) Define and View Requirements:
    You can Add Requirements, Child Requirements and additional child Requirements which can be viewed in the Tree View and Grid

    View and apply Filters. You can zoom in and out of the requirements tree and also display or hide numeration.

    b) Modify and Track Requirements:
    You can drag drop, rename, change properties and delete a requirement.

    c) Convert Requirements:
    Once Finalised Requirements can be converted into Tests using Automatic conversion Method.

    d) Link Requirements:
    You can Later link Requirement to Tests and Defects.These Links can be Direct and Indirect.

    2) Test Plan:
    Test Plans in QC can be used to outline the testing strategy for achieving your goals .
    After you have determined your testing goals you can use QC to :

    1) Build a test plan tree:
    A Test Plan tree hierarchically divides your application into testing units, or subjects. You define tests that contain

    steps. Each test step, specifies the actions to be performed on your application and the expected result.

    2) Automation:
    Once decided on which test to automate you can generate a QTP or a Winrunner script ,Upload it and Link it to the

    Corresponding Manual Test case. The Various stages of Automation are tracked in QC are as the follwing ‘Automation Status’ :
    a) Suitable \ Not Suitable: The manual Testers mark a Test case as Suitable if it can be Automated.
    b) Design: Going through Automation.
    c) More Info Required: Some Details for Automation Missing .
    d) For SME Approval: Automated and Waiting for SME’s Go Ahead for Execution.
    e) Operational: Ready for Execution, Automated.
    f) Reject: Descoped while Automation.
    g) Repair: Maintainence of a script in case of changes.

    3) Create and View Requirement Coverage:
    In the Test Plan module or in Requirements module, you create requirements coverage. A test can cover more than one

    requirement, and a requirement can be covered by more than one test. Use the Coverage Analysis view in the Requirements

    module to analyze the breakdown of child requirements according to tests coverage.

    3) Test Lab:
    Running tests is the core of the testing process.

    1) Define Test Sets:
    Group the Various Tests into Sanity Tests, Normal Tests, Positive checks test, Negative tests, Advanced Checks, Smoke Tests

    and Regression Tests.

    2) Add Tests to a Test Set :
    A One Step Process to Associate Tests to a Test Set in the Test Lab Module. A Test Set In QC has the following Properties:
    a) Details: This property can be used to list the details of a Test set.
    b) Attachments: Documents, reports and Files for a Particular Set can be attached.
    c) On Failure: Set rules for automated runs in case of Failures.
    d) Notification: Mails can be sent to the concerned User Groups in case of Different Types of Failures.

    3) Schedule Test Runs Automatically:
    A Test Set can be scheduled for a Specific Day, a Specific Time and on a Specific Machine. Unattended Runs can be scheduled

    and results later Analyzed.

    4) Defects:
    Locating and repairing defects is an essential phase in application development.

    1) Tracking Defect:
    In Quality Center project defect is tracked through these stages: New, Open, Fixed, and Closed. A defect may also be Rejected

    or it may be Reopened after it is fixed.

    2) Add Defect:
    A Defect can be assigned the following Significant Properties on QC:
    a) Details: The Various Detailsa as to which Project,Component and Phase does the Defect belong to.
    b) Assigned to:It can be directly assigned to a user, who gets notified throgh a mail.
    c) Severity: Categorize the defect as Urgent,High,Medium,Low.
    d) Attachments: Attach snapshots, logs or other files specific to that defect.
    e) Comments: Add comments as and when a defect moves from one stage to other and add Resolution Details.

    3) Emailing Defects:
    Defects can be mailed to the User whom it is raised by, the user whom its assigned to and the other e-mail I.D’s.
    4) Linking Defects:
    Defects can be linked to various Tests and in turn to requirements.
    Reports, Graphs and Dashboard:
    You can generate reports and graphs at any time during the testing process from each Quality Center module, using default or

    customized settings.

    5) Generating Reports:
    Module Specific Report or General report can be generated any time during the testing process from each Quality Center

    module, using default or customized settings.

    1) Generating Graphs:
    Graphs of the following types can be generated:
    a) Summary.
    b) Trend.
    c) Progress.

    2) Generating Live Analysis Graphs:
    You can create Live Analysis graphs to provide a dynamic quick visual overview of all the tests in a test subject folder, or

    test sets in a test set folder.

    3) Filters and Sorts:
    Apply filters and sort conditions, and display information according to your specifications,Save your settings as favorite

    views and reload them as needed.

    4) Dashboard:
    a) Support for all QC platforms (Solaris, Linux, WL, WS)
    b) Support for clustering and load balancing
    c) Support for QC and QCD on the same machine

    Hope this helps.

    Regards,
    VijayD

    #6 Vishal Chhaperia on 05.08.08 at 6:59 am

    Thanks Vijay:-)

    How can i get demo version of MQC

    Pls forward me link if u have any?

    #7 VijayD on 05.08.08 at 7:10 am

    @Vishal

    Try it on HP Site at,

    https://h10078.www1.hp.com/cda/hpdc/display/main/index.jsp

    Here you need to enter the search criteria and need to register yourself inorder to get an evaluation copy.

    Regards,
    VijayD

    #8 vimal venugopal on 05.08.08 at 9:16 am

    Hi Vishal Chhaperia, I read ur query now. U can hav the demo version from Google itself. Just search “HP Quality Center software Flash demo”. Then in the navigated page u will have a form to fill. Then after submitting it, u can view the demo. Bye…..

    #9 kshitija on 05.08.08 at 1:13 pm

    Hello vijay,
    I have some query about automation tools like WINRUNNER , Rational Robot & Test Director.
    pls send me more information in detail.
    Thank you.

    #10 beena on 05.08.08 at 1:29 pm

    Hi vijay,
    From which place u r? U actually helped alot for the freshers, continue this……..
    Thanx……..a…..lot…….

    #11 R. Srinath on 05.08.08 at 1:36 pm

    Hi Vijay,

    am a MCA graduate and am working as an Web Developer for the past 1 year. I developed websites using HTML, CSS, PHP, MySQL, JavaScript. Other than developing i used to make W3C Compliance using Watchfire IBM Rational tool for more clients placing logos XHTML1.0, XHTML1.1, HTML 4.1, CSS, WCAG AAA logos for optimization. I dont know whether it comes under testing or not. Mention me what type of testing i did. More than that i want to switch over to Software Testing and QA field. Is this skill set is enough or need more for software testing other than above skill. Plz give brief explanation in this and in preparing resume for this work and instruct me what i should do for getting into Testing QA field..mail me at srinathmca07@gmail.com

    Thanks & Regards

    #12 mahesh on 05.08.08 at 4:06 pm

    iam starting my carrer in testing how useful it might be in upcoming future and i need help from you people in every ascpect of testing. what are the main qualities that a test engineer should have, you people can send me any projects so i can learn little bit more from experience. so, i thinking you people can help me alot waiting for your response

    #13 Joel on 05.08.08 at 4:19 pm

    Anybody let me know about the scope of telecom testing i.e., (Protocol Testing) and how it will be helpful for my career

    #14 Sameer on 05.09.08 at 1:53 pm

    Hi vijay

    Its worth reading ur article. Im currently in web project (Insurance) for past one n half year. Now im going to start a client server Testing and i have to do Database Migration testing. Can u giv me a brief idea about database migration testing.Earlier the database was MS Access and now they r using Oracle

    Thanks in advance

    #15 Subhas on 05.10.08 at 6:52 am

    Hello Vijay,

    Please categorize the following by providing some examples.

    1)System Based Application
    2)Web Based Application
    3)Client-Server Application

    Thanks
    -Subhas.

    #16 Qastation on 05.12.08 at 4:45 am

    Hi VijayD

    Excellent post. Please do keep on post like this in detail.

    #17 Chandru on 05.12.08 at 12:53 pm

    Thanks for the post !

    #18 mahendra on 05.12.08 at 5:07 pm

    Hi vijay,
    i m doing my MCA and i have technical knowledge of computer networking and hardware i was working since last 3 year in a ISP delhi write now i want to change my line as per my qualification i m also MCSE 2003 server holder, so give me best suggestion to me that can i change my field easily or not because i m interested in testing filed my technical back ground give me support or it will create for me problem???

    #19 vinoth on 05.13.08 at 10:28 am

    ANY ONE GIVE SUGGESTION ,HOW CAN I GET DEMO VERSION OF WINRUNNER (OR) QTP,

    AND HOW MUCH IT COST.

    #20 Tiger2K on 05.13.08 at 12:42 pm

    Hi Vinoth,
    you can check this link to download qtp version

    http://search.hp.com/query.htm.....search.y=4

    guess what its free . :)

    Regards,
    Tiger2K

    #21 Sameera on 05.17.08 at 5:41 pm

    Great discussion going on here.. as well as on this site!!

    Thanks to Authors!!

    #22 anilkumar on 05.22.08 at 10:59 am

    hi! friends,
    just now i started my career in this feild, so i need your help. so please help in this
    thanks.

    #23 Aparna on 05.24.08 at 4:00 am

    Hi all,this is Aparna, guys pls.tell me how to write test cases for web application as soos as possible at the following email address
    aparna_rangari@rediffmail.com

    #24 shyam on 05.26.08 at 9:52 am

    Hi all, ths is shyam, i am the first to be in the company as test engg, we dont have any tools bug tracking, qtp, no proper documents etc, can u suggest me in developing my self and my company

    #25 shyam on 05.26.08 at 10:06 am

    Hi all, what kind of homework should i do as a test engg, our company has no tools, no docs, they will provide only the snaph’s of the application which i have to explore myself everything and test, most of the times we have to test webapplications

    #26 karim on 05.27.08 at 8:38 am

    hi guys .. you people are doing great job.. keep it up. i am also ready to help others about testing.

    regards
    karim

    #27 sameera on 05.29.08 at 8:34 am

    Testing can also be categorized based on how it is executed. Execution could be in the form of verification or static analysis or it could be validation or dynamic analysis. Verification and validation can be categorized further according to how it is done.

    #28 R sam on 05.29.08 at 8:36 am

    Testing can also be categorized based on how it is executed. Execution could be in the form of verification or static analysis or it could be validation or dynamic analysis. Verification and validation can be categorized further according to how it is done.

    Written an submitted by lakshmikanta reddy

    #29 shyam on 06.06.08 at 10:07 am

    is there any tool to compare two text, insted of manual cheacking

    #30 Dhinesh.N on 06.09.08 at 2:17 am

    Myself Dhinesh.N of MCA Freasher 2008 have 69% seeking job…. any job Vacant please inform me. my contact number: 09843934387

    #31 Tamil on 06.09.08 at 8:09 am

    Hi Vijay and everybody, I want to know is there any easy tool to track the test cases? and now I am doing manual testing for web applicaton so I like to automate that. I have tried to record the web application by Winrunner, QTP etc.. but I am getting an error like “Object not found” something like that, this too after learning the application objects by winrunner. So please send me the steps to automate the web application with an example. I will be waiting for your reply.

    Thanks,
    Tamil..

    #32 selvam on 06.11.08 at 2:06 pm

    Hi Friends,

    Currently i am working in Non-IT field and planned to switch my career to testing.I had learned the basics of testing,and now i am very eager to learn testing practically with real time projects.
    If any one interested to teach testing personally with real time projects , i will be more grateful, or else show me the right place in chennai.
    Thanks & regards
    selvam.ba@rediffmail.com

    #33 Rukmal on 06.12.08 at 12:23 pm

    Hi Vijay,

    What are the main concerns when testing Security issues in web application?.

    my concerns as follows>>

    Hackers, DOS attacks, password protections, secure pages (verisign ect.,)

    Thanks & regards.
    Ruk

    #34 vipin on 06.16.08 at 11:06 am

    hi all,
    Is there any need to perform security testing on client server based application.
    Please comment.

    #35 karthik Jayaraj on 06.17.08 at 8:51 am

    There are numerous differences in Client-Server and Web application architecture. As a tester if you are testing Web applications, it is important to understand what Client-Server architecture is and how Web is different from traditional Client-Server architecture.

    Web is a specialized version of client server network, but it has got noticeable differences. In client server network, computing resources are conserved by delegating complex and time consuming task to powerful, expensive computers called server. These server machines are much more powerful in terms of large storage and computing power. They do all the computing and delivers result back to the machines called client over a communication path. Thus client-server architecture comprises of server, client and communication path connecting them.

    If you see at the lower level, client server architecture is not that simple. In order to connect two computers, you need network level protocol, you need proper software at client side and server side to send and receive data over network. You need to take care of data loss during transmission, bandwidth issues, dropped connectivity etc. Most of these issues are already addressed by protocols like TCP/IP, UDP, ARP etc. and developers face very little problem in implementing them. These protocols are backbone of the client server architecture.

    WWW was developed on top of existing client server architecture. It came into existence as a replacement for FTP and email as a mechanism of sharing files and data. New development in servers to handle more requests, new client software to connect and browse resources on server; new development like HTTP, HTML etc fueled the growth of Web. Main component of the Web architecture is the Web Server, which can serve request from any client. Initially, web started serving static content and soon it was explored for the possibility of doing much more than just static content.

    Even though Web is built on top of client server, there are noticeable differences. For example

    Web is a special case of client server architecture in which fat clients are used to communicate with the server using variety of protocols and standards like HTTP, HTML, XML, SOAP etc.
    In client server architecture, both client and server exist within the walls of a single company, thus operates in a protected environment. Clients in that case become the trusted user. Web is different, since client can connect server from anywhere thus not a single connection can be treated as trusted.
    Because client server is typically within a company’s firewall, issues related to security are not as important as in Web applications.
    In client server architecture, clients are controlled as in who can access, how clients will communicate and use server’s resources etc. In Web, mostly anyone with a browser can connect to the Web.
    In client server architecture, every client is known; every request received by server will have information on who originated this request. In Web, users are anonymous thus pose a greater security risk.
    Web gives more opportunity to malicious users to tamper data at the client side as well as at the network level. Chances of data being tampered in the traditional client server architecture are much lesser as compare to Web.
    Number of clients that can be connected to the server is predictable and can be controlled in the traditional client server, but it can not be controlled in the Web.
    Clients are much more controlled in client-server. Which OS they will use, which platform they will run on, what browser will be used every thing can be controlled. In comparison to that, nothing can be controlled in Web.
    Because of the fact that both are different, testing applications in client server, or web will also be different. The main areas where the testing gets affected can be summarized as:

    Business Logic: Mostly in the cases of Client-Server client side business logic needs to be tested which is mostly not needed in for the web-based applications.
    Platform / OS Dependence: The web based applications are O/S independent; they just need to be tested on different browsers. The Client-Server applications depend upon the Platform/ OS used, which accentuate their testing on different Platforms and OS.
    Scalability: Web based Application have to be tested for performance against thousands of simultaneous users. This number will be considerably less for Client Server application
    Security: This forms an integral part of web based applications but it might be relaxed just a bit for Client Server applications. The reason for this relaxation is based on the fact that the in case of Client-server interaction is taking place mostly between the trusted/known sources which is not the case for web based applications.
    In a nutshell it can be stated that although web-based applications are a special case of client-server applications, yet their testing differ in many areas. All the areas identified above need to be addressed adequately in your testing, specially security since every client connected in the web environment is a potential threat to the system.

    #36 sanjukta on 06.18.08 at 7:42 am

    Hello,
    I an looking for job in SQT. I have done BSc(Maths) and Diploma in Computer Application Program. Due to some problem I had to work in a domestic call center. Now I am pursuing MBA from ICFAI University through distance learning and have knowledge of some of the SQT tools like WinRunner, Load Runner, QTP ect. But I cud not get a job as a Software Tester. How should I prepare myself for the interviews in this particular field. Should I do MBA in IT and pursue a diploma in SQT? Will that help to get a good job? Which institute is good for SQT course and of course job assistance is also important? Please help and reply me soon by e-mail as I am confused to take the right decision.

    #37 Chinni on 06.18.08 at 6:17 pm

    Thanks for posting this piece of information..
    It is very good and clear explaination…This information is not restricted to testing people alone but can be understud by all level of people..

    #38 Sanjukta on 06.22.08 at 6:38 am

    Hello,
    I am looking for job in SQT. I have done BSc(Maths) and Diploma in Computer Application Program. Due to some problem I had to work in a domestic call center. Now I am pursuing MBA from ICFAI University through distance learning and have knowledge of some of the SQT tools like WinRunner, Load Runner, QTP ect. But I cud not get a job as a Software Tester. How should I prepare myself for the interviews in this particular field. Should I do MBA in IT and pursue a diploma in SQT? Will that help to get a good job? Which institute is good for SQT course and of course job assistance is also important? Please help and reply me soon by e-mail as I am confused to take the right decision.
    Please can anybody give the right information.

    #39 sam on 06.24.08 at 8:05 am

    if i shutdown my system it not responding. but shutdown option is responding, so am shutdowning through cpu only.. pls anyone can help me with wat wil be prob.. my mail id is
    gsambandam@gmail.com
    pls reply me soon..

    #40 shrinvias on 06.27.08 at 1:05 pm

    most valuable discussion.

    #41 sudarshan on 07.02.08 at 7:33 am

    hi,
    i doing my software testing.i want to know about,what do we mean by high severity,high priority,low severity & low priority.pls guide me.

    thanx,
    sudarshan

    Leave a Comment