Tuesday, 20 May 2014

iPad App Testing - A Mobile App Tester"s Perspective

Now the relatively recent world-wide phenomenon of the mobile app has become accepted as a major factor in software development. The question has been asked by software developers and software testers alike…should these iPhone apps or iPad apps be tested any differently to the more traditional windows based or mac based application? the answer is ‘yes’ but only to a certain extent. Good software testing principles can be applied to any software regardless of the platform. So, yes…they should be testing differently but not entirely. The differences to some extent than traditional software applications are mostly obvious and some rather more obscure. Firstly an iPad app and (iPhone app for that matter) run on different hardware than a PC/MAC. Also, the method of input is entirely different due to a touch-screen. The way the iPad apps are installed is different too, via iTunes of course. From a software testers point of view, the iPad has generated a lot of discussion. Most of these discussions revolve around statements comparing the iPad to the iPhone. While there are a lot of similarities (including apps being developed for both platforms simultaneously). We are now seeing iPad specific apps being developed. These are more alike to the traditional software applications for the PC or MAC. They typically have more features and make greater use of the larger screen and are generally more complex. A typical methodology for testing an iPad app is as follows:


App Delivery/ Installation


The iPad is given to the app tester or app testing company. As this will typically be done before the app’s release, a provisioning file will be needed to accompany the app which contains the UDID’s of the app testing company’s test iPads. The app and provisioning file can simply be dropped into iTunes and loaded onto the iPad.


Exploratory Testing


Once loaded onto the iPad, a standard approach for any iPad tester is to walk-through the app’s key functionality and effectively perform an exploratory test. They should be able to use any previous insight from testing similar apps, or make use of the app’s supporting documentation to ensure a thorough test is completed.


Defects Found


Fortunately, the iPad has a great built-in feature to help iPad testers with their task, and this is the screen-shot feature. When a bug is found, the iPad tester simply holds down the power button and presses the main circle button. This activates a screen-shot capture and saves the photo on the device. This screen-shot can then be emailed to the developing company along with instructions on how to reproduce the problem. When the ‘unthinkable’ happens, i.e. a ‘crash’, the iPad saves crash log files to its internal hard drive. When the iPad is next synced to a PC/MAC, these log files can also be emailed to the developing company to aid in fixing the bug that caused the crash.


Additional Testing


There are many other types of iPad app testing that can be performed relating to networks, stability, usability, performance etc. If you are not sure exactly what testing your iPad app needs, then simply email a respectable iPad app testing company.


Test Report


Most iPad app testing companies should be able to provide you with a thorough test report. This is a key piece of documentation and will effectively be the only evidence of your app’s quality prior to release and also after release.



Final thoughts


In today’s competitive market, it is critical to ensure an iPad app hits the store being the best it can possibly be. It only takes a few negative ratings on iTunes to see an app’s download figures drop dramatically. Most negative feedback for an iPad app is for simple bugs that could have easily been found if an iPad testing company was used.




iPad App Testing - A Mobile App Tester"s Perspective

Tuesday, 13 May 2014

ISTQB Advanced Test Manager single-user & multi-user license

The ISTQB Advanced series of training certifications are challenging even to the most experienced testers. Having a high quality training course is vital to ensuring the student passes the exam first time. Not everybody wishes to attend the traditional classroom-led training courses these days, as they are very restrictive for the student and often information is crammed in to just a few days training. The cost of these types of training courses are also very expensive.


E-learning (or self-study) however; provides an extremely flexible way of learning the ISTQB Advanced Test Manager material and achieving certification. A good ISTQB Advanced e-Learning Course will provide the student with flexibility in the way they learn, which provides them with the opportunity to learn at their own pace.


Testing4Success.com provides a large range of e-learning courses for software testers including the ISTQB Advanced Certification for Test Managers for single-users and also multi-user licenses.



ISTQB Advanced Test Manager single-user & multi-user license

How To Test a Mobile App

So you have developed a mobile application and you think its ready for release. You will have probably tested it on an emulator of some kind and possibly a browser or two, and so now you think its time to release it. Before this is done lets consider what state the mobile App is in. The mobile App only ‘appears’ to function correctly at this stage, which to all intensive purposes is a good thing right? but an emulator really only shows you how a real device ‘should’ work when used with your mobile application, it is certainly no guarantee. A web browser can certainly show you what your mobile App will look like on a real device, but there are many factors it cannot show you, for example; the touch screen functionality, CPU difference, memory usage and many more very important areas of functionality. It only takes a slight a small difference in what is ‘expected’ behavior to what is ‘actual’ behavior on a real device.


So once the decision is made to test on a real device, there are some important things to consider:


Which mobile devices do I need?


Lets for example use the most popular for of a mobile application, the iPhone. There is an ever-growing range of Apple devices that fit into this category.  In addition, there are multiple operating system versions associated with each device. This at first presents a dilemma,  but we can rule out older hardware and firmware(operating systems), why is this? well, 99% of users will upgrade to the latest firmware whenever possible to take advantage of bug fixes and new enhanced functionality. Again, you can rule out older versions of hardware, particularly if it is several years old and no longer supports the latest firmware available. Most users of these types of devices will upgrade when their device ‘appears’ out of date. In short, aim to test on the latest hardware and firmware, this in effect gives you a longer period of mobile App longevity.


I can’t afford to buy real devices, what do I do?


Most carriers will offer you the mobile device cheaply if you sign a lengthy contract. This is not really a viable option if you just want to test with it. Most devices can also be bought without a contract, but for an expensive price. Again, this can be expensive, especially using our example of an iPhone App. The most cost-effective testing solution is to use an iPhone App testing company to do it for you. They have already made the expensive investment in purchasing the hardware so you don’t have to. A good iPhone App testing company should offer you bundles for testing on multiple devices too.


Should I get a professional App test before release?


As the developer, you are essentially just one set of eyes. It is very important to get a new App tested to some level before its release, as once its out there you can’t do anything about it, until its too late, i.e. you are receiving negative feedback and decreasing sales. You don’t have to hire professional App testers to do the testing, you can get colleagues or friends to help you out. This should at least get some other sets of eyes looking at your App. The advantage of using a professional App testing service however, is they will have experience of a variety of software testing techniques, such as Usability, Functional, Performance testing etc. on many other Apps previously. Their software testers will know where to look for defects within your App and will provide you with an all important degree of confidence which you will only get with a professional App tester.


Which carriers/network providers should I use?


Depending on the country where the software testing is carried out, there will be a limit to which providers can be used. To be honest though, as long as the testing takes into account network specific testing, then the carrier should not matter at all. For example, an App tester will typically test on good, medium and poor signal strengths to test the behavior of your App under these conditions. So, as long as these tests are carried out not only on a wi-fi network but also on a 3G or 4G carrier providers network, then it really doesn’t matter.


So to summarize then, you necessarily have to pay out a fortune in order to achieve a level of mobile application testing. With some forethought, you can effectively reduce the amount of real devices you need to test on. You can don’t have to pay a fortune to ensure the quality of your mobile application.



How To Test a Mobile App

Monday, 12 May 2014

Three Reasons To Outsource Your Software Testing

There are three factors to consider regarding outsourcing software testing (QA), and these are Cost, Skills and Simplicity.


The Cost Factor


A Good Outsourced Software Testing Company should have a standard hourly rate for their software testing service. This rate should be comparable to that of a decent contract software tester. The beauty of outsourcing is that if (like most small to medium sized companies) your requirement for QA is varying and erratic, then with outsourcing; you only pay for when the testing actually occurs. You don’t pay for when your development is delayed…..yes, sometimes software developments get delayed :)


If you wanted software testers in-house; you would either have to pay for full-time staff or contractors. Either of these options will significantly impact your development budget if you don’t actually have a need for QA every day of the year.


The Skills Factor


Many small to medium sized companies do not have the necessary skill-sets to adequately perform software testing to an acceptable standard, let alone ensure the success of the software product. Outsourcing to a good outsourced software testing company will yield a consistent level of high software testing standards.


The Simplicity Factor


The best outsourced software testing companies will also provide you with a ‘built-in’ test management service for no extra charge. This effectively means that they will provide you with free advice, and some may even provide an initial Free High-Level Test Plan. QA can be a major headache to organize, and so outsourcing avoids the often complicated QA process, as it will be handled by someone else. So all your company needs to do is get the software to a testable state, and they will do the rest.


If you are thinking of outsourcing……think Testing4Success!


 



Three Reasons To Outsource Your Software Testing

The No.1 Mobile App Testing Service

There are three important factors to consider when it comes to mobile app testing; and those are Functionality, Usability and Compatibility.


Functional Mobile App Testing


Your app will only be a success if the app actually ‘does what it was designed to do’. This top priority test will involve strategically working through the screens of the mobile app to ensure all present components operate as expected. There are a variety of traditional software testing techniques that can be applied to mobile apps, as well as a range of mobile-specific techniques and approaches.


Mobile App Compatibility Testing


A mobile app must be consistent with the way it looks and functions across the devices it was intended to work on. Your mobile app development could potentially be seen on any number of supported devices. So at minimum, the apps basic functionality must function correctly on all of them.


Mobile App Usability Testing


Any mobile app must provide a positive experience for the user. By replicating various user-types; a mobile app tester can quite effectively put themselves in the position of many users, and when combined with their own testing intuition and experience, they can easily ensure a mobile app’s effectiveness with regards to usability.


When Functionality, Usability and Compatibility are important to the success of your mobile app development, then consider Testing4Success.com



The No.1 Mobile App Testing Service

Tips for iPhone App Beta Testing

With so much competition (approximately 225,000) in the field of iPhone Apps, it is critical to not only produce an App that is original, but also to ensure it is of high quality. The users experience must be positive from the moment they start the App. Anything less than ‘great’, then that user will leave average or negative feedback on iTunes. If that happens, then the App rating will drop, which obviously means the amount of people wanting to download it will drop too. To prevent unwanted issues with the App, it is vital to ensure the App is Beta tested correctly. This way any issues with the App can be rectified before its release.



There are some useful iPhone App Beta testing services available, from simple tools and simulators to complete professional beta testing solutions. It’s worth noting that of these solutions may not be as good as they seem. Let’s take a look at the most popular and cheapest way to Beta Test an iPhone App:


App testing on a real device Vs a simulator


There appears to be a few iPhone App simulators out there on the net claiming to offer solutions for beta testing an iPhone App. Well, although technically(and I use this term loosely) correct, the so called ‘simulators’ are nothing more than web browser screens made to be the same size an iPhone screen. This really cannot offer a real beta test of an application, can they? So what are the differences between testing on a simulator and a real device?


The CPU type


The screen (a real iphone has a touch-screen of course)


Installing the App


Memory usage


Zooming functionality


Network connectivity related issues


Remember, customers that buy the App from the App store won’t be running it on a simulator!


Public Beta Testing


A very credible and commonly used method of testing an application before its release is performing a ‘Public Beta Test’. This is essentially releasing an application to the public before it is officially released. With traditional software testing, this can be fairly straight-forward to implement, as the developing company can simply allow as many public beta testers as they wish to test their software application. Now, with an iPhone App things are different. Firstly, you are limited to only one hundred iPhones that can be used in the beta test. In addition, these iPhones must be known to the developer, as each iPhones UDID will be required to create a provisioning file to go with the App. So public beta testing can be achieved with an iPhone App, but only in a limited and restricted way.


Feedback from Beta Testers


When assigning an App to be tested to your Beta Testers, make sure that the goals of the testing are made clear. You may have some specific areas of the Apps functionality that you want feedback on, for example; you may be wanting to test the performance of your entire system when multiple users are simultaneously using the App. Aim to ensure that all of your Beta Testers have clear instructions of the testing you want carried out, and supply them with any specific information they need to use the App. Each tester must know how to test all of the App’s functionality. A common mistake is to not inform the testers of functionality that has been deliberately disabled prior to the Apps release. The testers may spend time investigating what they think is an issue, when in fact you already know about it. Also ensure that the testers know that if they find a critical issue, they need to inform you immediately. There is nothing worse than organizing a week long beta test, only to find a critical issue reported on the last day. Obviously, it is important in any development lifecycle to resolve critical issues as soon as possible and may require halting/postponing the current beta testing until the issue is resolved.


Aesthetics


As this type of testing is trying to replicate a typical user environment, try to make good use of the type of information that beta testing can provide. A good example of this is ‘aesthetics’, which simply means the look and feel of the App under test. This is commonly the last chance you get to make any changes before your customers will see the App. Often overlooked items are the coloring of the text and how it it used within the App’s design. Make sure that the text can not only be seen in an in-doors environment but also outside in daylight. The App could potentially be unusable if it cannot be seen outside. The most important area of aesthetics is how it feels to use the App. Does performing some simple actions take you to too many screens or require reading over-long amounts of text? areas such as these cab be tested and provide you with really useful feedback prior to your Apps release.


Can I Beta Test the iPhone App myself?


An iPhone App developer has full control over the design or their code, but do they have control over their quality? This is not a straight-forward question, or indeed answer. If a developer chooses to, they can indeed have full control over the App’s quality. The developer either needs professional knowledge and experience of software testing, or they ask a professional beta tester to test it for them. To release a successful App, it must be well designed and well coded. The best way to ensure releasing a quality App is to use a professional iPhone App Beta Tester. When choosing an App Beta Testing company, there are a few things you can look out for, including:


1. Ensure the App will be tested on real devices (not simulators).


2. Check a range of devices is available, e.g. iPhone 3, iPhone 4, iPad and iPod Touch.


3. Make sure the beta testing will be carried out using the latest firmware available for that device.


4. Always ask an iPhone App Beta Testing company about Usability testing too.


5. Always ask for a test report.


6. As well as the standard Exploratory testing techniques, a good testing company should be able to offer you more advanced testing techniques such as Boundary Value Analysis and Equivalence Partitioning.


7. As a developer you will probably want to get your App released ASAP, and so it is likely you will need a quick turnaround.





Tips for iPhone App Beta Testing

Saturday, 10 May 2014

iPhone App Testing - App Testing Company

With literally millions of iPhone Apps now released, it is becoming clear that shift to developing these types of applications is no longer a fad, but more of a revolution. So how can an iPhone App developer release an App that will be successful if there are so many Apps out there?


An iPhone App developer has full control over the design and software code, but what about the quality? this is information not easily obtainable without professional knowledge and experience in the world of software testing. To release an App and make it stand out from the crowd, it must be well designed and well coded. The only way to ensure this has been achieved is by using a professional iPhone App Tester.


When choosing a reputable App Testing company, there are certain things you can look out for such as:


1. Ensure the App will be tested on real devices (not simulators). Some companies will offer you very cheap testing, but this will often be performed on a simulator which nothing more than a web browser made to be the same size an iPhone screen. A simulator cannot check memory usage, CPU usage, battery usage, network disconnects or signal strength. Make sure a real device is used, that’s what the people who download your App from iTunes will use. A professional testing company will provide you the UDID’s of there available test devices. with these, you as the developer will need to make provisioning files to be included along with your App when you send it for testing.


2. Check a range of devices is available, e.g. iPhone 3, iPhone 4, iPad and iPod-Touch. You do not want to release your App only to find out that iPhone 4 users are experiencing crashes. Most good testing companies will offer a discount if you opt to test on multiple devices. if they don’t then ask them!


3. Make sure the testing will be carried out using the latest firmware available for that device. Most iPhone users will upgrade straight away as soon as new firmware version is released. So it makes obvious sense to ensure you App functions correctly with the latest firmware.


4. Always ask an iPhone App Testing company about Usability testing too. A good tester should be able to identify weaknesses relating to Usability and report them to you. This type of testing should include creating typical user scenarios and playing them out to test the usability factor of your App prior to its release. This is an important aspect to the success of an iPhone App which is often overlooked.


5. Always ask for a test report. You don’t want someone you don’t know simply telling your App is fine. You need some kind of document containing a checklist of the areas that were tested along with any subsequent test results.


6. As well as the standard Exploratory testing techniques, a good testing company should be able to offer you more advanced testing techniques such as Boundary Value Analysis and Equivalence Partitioning. These techniques are very useful on areas of your App where a user is required to select or input any kind of information. This is probably the most likely area of an App that will contain bugs.


7. As a developer you will probably want to get your App released ASAP, and so it is likely you will need a quick turnaround. A good testing company should be able to provide you with a quick turnaround for testing your App, and get the results back to you fast.




iPhone App Testing - App Testing Company

Thursday, 8 May 2014

How to get free training for ISTQB exams

For anyone studying for the ISTQB Foundation (CTFL) or ISTQB Advanced exams, there exists a huge range of training options. These training options include classroom-led, e-learning or simply teaching yourself. By scouring the internet, it is possible to find free ISTQB training. However, this training is normally free for a reason (i.e. it’s probably out-of-date and very poor in quality). With Free ISTQB training, you have no guarantee of what you are being taught is actually correct, and more importantly if it will actually be in the exam.


It is understandable that people search for free ISTQB training, as not everyone has the luxury of having the money to invest in paid training. However, a good ISTQB Training Provider should be able to provide you with some level of free ISTQB training in the form of free demos, free samples, free exam questions etc.


So, be wary of free training you find on the internet. But, do contact training companies and ask for free samples or even better, ask for a discount on their ISTQB Training Products.



How to get free training for ISTQB exams

Wednesday, 7 May 2014

Black Box Testing versus White Box Testing

Black Box Testing Definition and overview


Black Box testing or Functional testing is a test technique that is based on input possible data in software. In this technique, tester does not need to have knowledge about internal structure or business design of system. In fact, tester tries to find failures by input all possible data not only valid data. There are many advantages and disadvantages of Black Box testing.


Black Box Testing Pros



  • Tester does not need any document or help to starting test

  • Opportunity to test software as end user view

  • Tester does not need any knowledge in programming

  • Tester does not need to know about the structure of system and developer job

  • Tester and developer can work individually

  • Tester can be uneducated

  • Tester can find some unusual functionality that does not exist in internal functions


 


Black Box Testing Cons



  • In some cases, it cannot be reliable

  • It take too much time to input all possible data

  • It is difficult to figure out invalid output

  • Designing test case is difficult

  • Impact test case that designed by programmer

  • Finding reason of failures is hard

  • Testing in specification is hard

  • Slow and poor test in complexity


 


 


White Box Testing Definition and Overview


White box or Glass box testing is a technique that needs good knowledge about internal structure of system. For instance, tester needs programming skills to realize what is going inside application, so he/ she can do accurate test which cover all possible functionality. In addition, tester can analyze output and find reasons of failure easily. Indeed, there are many positive and negative point of White Box Testing.


White Testing Pros



  • It help to optimize code

  • Help developer in implementation code

  • Faster to find reason of failures

  • Help tester to design test case

  • It is more accurate

  • Help tester to choose the best input data

  • Tester also can find some hidden error in code


 


White Testing Cons



  • Tester needs to have knowledge in programming, so it is expensive

  • Lack of testing system as user view point

  • It causes to changing code which has considerable cost

  • Because of focus on internal structure, it is poor in finding some failures that happened by all valid inputs



Black Box Testing versus White Box Testing

Server Cluster and Load Balancing

A server cluster is a group of independent servers (usually in close proximity to one another) interconnected through a dedicated network to work as one centralized data processing resource. Clusters are capable of performing multiple complex instructions by distributing workload across all connected servers. Clustering improves the system’s availability to users, its aggregate performance, and overall tolerance to faults and component failure. A failed server is automatically shut down and its users are switched instantly to the other servers.


Categories of Clusters:



  • Asymmetric Clusters. In asymmetric clusters, a standby server exists only to take over for another server in the event of failure. This type of cluster is usually used to provide high availability and scalability for read/write stores such as databases, messaging systems, and file and print services. If one of the nodes in a cluster becomes unavailable, due to either planned downtime for maintenance or unplanned downtime due to failure, another node takes over the function of the failed node.

  • Symmetric Clusters. In symmetric clusters, every server in the cluster performs useful work. Typically, each server is the primary server for a particular set of applications. If one server fails, the remaining server continues to process its assigned set of applications as well as the applications on the failed server. Symmetric clusters are more cost-effective because they use more of the cluster’s resources more often; however, in the event of a failure, the additional load on the remaining servers could cause them to fail as well. One common type of symmetric cluster is a load-balanced.


 


High Availability


 


High availability means that your application will be available, without interruption. In the context of application clustering, it means that any given node (or combination of nodes) can be shut down, blown up, or simply disconnected from the network unexpectedly, and the rest of the cluster will continue operating cleanly as long as at least one node remains. It requires that nodes can be upgraded individually while the rest of the cluster operates, and that no disruption will result when a node rejoins the cluster. It typically also requires that nodes be installed in geographically separate locations. This type of clustering avoids loss of service to the users or applications that access the cluster and can occur transparently, without the users’ knowledge.


Not every application can run in a high-availability cluster environment, and the necessary design decisions need to be made early in the software design phase. In order to run in a high-availability cluster environment, an application must satisfy at least the following technical requirements, the last two of which are critical to its reliable function in a cluster, and are the most difficult to satisfy fully:



  • There must be a relatively easy way to start, stop, force-stop, and check the status of the application. In practical terms, this means the application must have a command line interface or scripts to control the application, including support for multiple instances of the application.

  • The application must be able to use shared storage (NAS/SAN).

  • Most importantly, the application must store as much of its state on non-volatile shared storage as possible. Equally important is the ability to restart on another node at the last state before failure using the saved state from the shared storage.

  • The application must not corrupt data if it crashes, or restarts from the saved state.


Scalability


Clustering is also used to enhance scalability. Server clusters can support more users at the current level of performance or improve application performance for the current number of users by sharing the workload across multiple servers. A byproduct of clustering servers for scalability is that the additional redundancy of the multiple servers helps increase system availability.


Server Affinity


Clustering uses serveraffinityto ensure that applications requiring the user interact with the same server during a session get to the right server. This is most often used in applications executing a process, for example order entry, in which the session is used between requests (pages) to store information that will be used to conclude a transaction, for example a shopping cart.


Benefits and liabilities of Server Clustering


 


Benefits:




  • Improved scalability. Server Clustering enables applications to handle more load.


  • Higher availability. Server Clustering helps applications avoid interruptions in service.


  • Greater flexibility. The ability of clustering to present a virtual unified computing resource provides IT personnel with more options for configuring the infrastructure to support application performance, availability, and scalability requirements.


Liabilities:




  • Increased infrastructure complexity. Some clustering designs significantly increase the complexity of your solution, which may affect operational and support requirements. For example, clustering can increase the numbers of servers to manage, storage devices to maintain, and network connections to configure and monitor.

  • Additional design and code requirements. Applications may require specific design and coding changes to function properly when used in an infrastructure that uses clustering. For example, the need to manage session state can become more difficult across multiple servers and could require coding changes to accommodate maintaining state so that session information is not lost if a server fails.


  • Incompatibility. An existing application or application component may not be able to support clustering technologies. For example, a limitation in the technology used to develop the application or component may not support clustering even through code changes.


Load Balancing Overview


Definition


Load balancing is a computer networking method for distributing workloads across multiple computing resources, such as computers, a computer cluster, network links, central processing units or disk drives. Load balancing aims to optimize resource use, maximize throughput, minimize response time, and avoid overload of any one of the resources. Using multiple components with load balancing instead of a single component may increase reliability through redundancy.


Load balancing can happen without clustering when we have multiple independent servers that have same setup, but other than that, are unaware of each other. Then, we can use a load balancer to forward requests to either one server or other, but one server does not use the other server’s resources. Also, one resource does not share its state with other resources.


Each load balancer basically does following tasks:



  1. Continuously check which servers are up.

  2. When a new request is received, send it to one of the servers as per the load balancing policy.

  3. When a request is received for a user who already has a session, send the user to the same server (This part is important, as otherwise user would keep going between different servers, but not able to really do any work). This part is not required for serving static pages, in that case, there are no user session.


Algorithms


Load balancers use different algorithms to control traffic. The goal of these algorithms is to intelligently distribute load and/or maximize the utilization of all servers within the cluster. Some examples of these algorithms include:




  • Round-robin. A round-robin algorithm distributes the load equally to each server, regardless of the current number of connections or the response time. Round-robin is suitable when the servers in the cluster have equal processing capabilities; otherwise, some servers may receive more requests than they can process while others are using only part of their resources.


  • Weighted round-robin. A weighted round-robin algorithm accounts for the different processing capabilities of each server. Administrators manually assign a performance weight to each server, and a scheduling sequence is automatically generated according to the server weight. Requests are then directed to the different servers according to a round-robin scheduling sequence.


  • Least-connection. A least-connection algorithm sends requests to servers in a cluster, based on which server is currently serving the fewest connections.


  • Load-based. A load-based algorithm sends requests to servers in a cluster, based on which server currently has the lowest load.


Benefits and liabilities of Load balancing


Benefits:




  • Improved scalability. Scalable load-balanced tiers enable the system to maintain acceptable performance levels while enhancing availability.


  • Higher availability. Load balancing enables you to take a server offline for maintenance without loss of application availability.


  • Potential cost savings. Multiple low-cost servers often provide a cost savings over higher-cost multiprocessor systems.


Liabilities:




  • Development complexity. A load-balanced solution can be difficult to develop if the solution must maintain state for individual transactions or users.


  • Doesn’t account for network failure. If a server or network failure occurs during a client session, a new logon may be required to re-authenticate the client and to reestablish session state.


 


Conclusion


Clustering saves the user’s state, and is more transparent to the user, but is harder to setup, and is very resource specific. Different application servers have different clustering protocols, and don’t necessarily work out of the box. Load balancing is comparatively more painless, and relatively more independent of application servers.


From a user’s perspective, it means that if the user is doing something on the application, and that server goes down, then depending upon whether the system is doing clustering or load balancing, the user observes different behavior. If the system is clustered, the user may be able to continue doing the transaction, and may not even realize that the server has gone down. If the system is load balanced without clustering, that means that the user’s state will likely be lost, and the user will be simply sent to the other server(s) to restart transaction.



Server Cluster and Load Balancing