Web testing, part I
Web testing, part I

Web testing, part I

More and more complex applications are developed using web technologies. And since we are always on track with what’s what in the testing industry, we came up with a series of articles that guide you through the entire web testing process. The software testing of the web applications, also known as web testing, is focusing on the applications that are accessed through a browser. The main issues are related to the functionality, usability, performance and security of the website.

User Acceptance Testing

Make sure that your web application fits the use for which it was intended. The requirements could be both functional and non-functional. The objective of user acceptance testing is to make sure your application meets the expectations of the user. It ensures that the application is fit enough to be deployed and used effectively. Browser compatibility, time outs, field widths and the general look and feel are tested to meet the requirements.

Functionality Testing

Functionality testing is performed to verify that a software application performs and functions correctly according to design specifications. The most common functions to test are: – Links: all internal links, outgoing links, search for orphan pages, broken links – Forms: check the validations on each field, default value of fields, submissions connected to the database – Database: data consistency, data integrity, database queries – Search: displays relevant results, updates regularly, allows users to access the content – Media components: audio and video playback, animations and interactive media

Functional Vs Non-Functional Testing

Functional Testing

Non-Functional Testing

Functional testing is performed using the functional specification provided by the client and verifies the system against the functional requirements.

 

Non-Functional testing  checks the  Performance, reliability, scalability and other non-functional aspects of the software system.

Functional testing is executed first

 

Non functional testing should be performed after functional testing

Manual testing or automation tools can be used for functional testing

 

Using tools will be effective for this testing

Business requirements are the inputs to functional testing

 

Performance parameters like speed , scalability are inputs to non-functional testing.

Functional testing describes what the product does

 

Nonfunctional testing describes how good the product works

Easy to do manual testing

 

Tough to do manual testing

Types of Functional testing are:

  • Unit Testing Smoke
  • Testing Sanity Testing
  • Integration Testing
  • White box testing
  • Black Box testing
  • User Acceptance testing
  • Regression Testing

Types of Non functional testing are

  • Performance Testing
  • Load Testing
  • Volume Testing
  • Stress Testing
  • Security Testing
  • Installation Testing
  • Penetration Testing
  • Compatibility Testing
  • Migration Testing

Understandability

It refers to the level of difficulty with which logical concept can be recognized and finding out how to apply it in practice. It can include the following: # Extent to which the system maps the concepts employed in the business procedures. # Extent to which existing nomenclature is used. # Nature and presentation of structure of entities to work with # Presentation of connections between entities

Learnability

It refers to the learning curve for the product. It can include the following: # Extent to which a user of the system can learn how to use the system without external instruction. # Presence and nature of on-line help facilities for specified parts of the system # Presence and nature of off-line help facilities for specified parts of the system # Presence and nature of specific manuals

Operability

It is about what the product is going to use and control in deployment. It can include the following: # Presence and nature of facilities for interactions with the product # Consistency of the man-machine interface # Presence, nature, and ordering of elements on each form # Presence and nature of input and output formats # Presence and nature of means of corrections of input # Presence and nature of navigational means # Number of operations and/or forms needed to perform a specified task # Format, contents, and presentation of warnings and error messages # Presence and nature of informative messages # Pattern of human operational errors over stated periods of time under stated operational profiles according to defined reliability models

Attractiveness

It has got to do with how the users like the system and what may make them choose to acquire it in the first place. It can include the following: # Use of colors # Use of fonts # Use of design elements, such as drawings and pictures # Use of music and sounds # Use of voices (male and female), languages, and accents # Layout of user interfaces and reports # Presence and nature of non-technical documentation material # Presence and nature of technical documentation material # Presence and nature of specified demonstration facilities # Presence and nature of marketing material

Accessibility

It refers to the ease with which people with disabilities can operate the product. It can include the following: # Use of colors, especially mixtures of red and green # Possibility of connecting special facilities, such as speaker reading the text aloud, Braille keyboard, voice recognition, and touch screens # Possibility of using the product entirely by keystrokes and / or voice commands # Facilities for multiple key pressure using only one finger or other pointing device # Possibility of enlarging forms and / or fonts # Navigation consistency Various standards cover different aspects of accessibility, including Web Contents Accessibility Guidelines from the World Wide Web Consortium (W3C). W3C is an international consortium working on all types of Web standards.

How Usability Requirements are established?

Usability requirements can be derived from usability assessments. A usability assessment is performed by representative users who are given tasks to complete on a prototype of the products. This can be hand-drawn sketches of forms or mock-ups of the forms made in, for example, PowerPoint. Any thoughts and difficulties the users have in completing the tasks are recorded.

How do the software testing engineers perform the Usability Testing?

Usability may be tested in various ways during the development life cycle. Techniques for performing usability testing are: # Static tests – Inspection, reviews or evaluation # Doing verification & validation of implementation # Surveys & questionnaires Static tests are performed as reviews and inspections of usability specifications. These can include heuristic evaluation, where the design of the user interface is verified against recognized principles of usability. Static testing is a type of software testing that finds defects early and is hence very cost-effective, not like usability where mistakes in the user interface may be very expensive to fix late in the development life cycle.

The verification and validation of the implementation of the usability requirements are performed on the working system. Here the focus is on the usability requirements associated with, but not identical to, the functional requirements. Test procedures, use cases, or scenarios are used to express what is to be done, whereas the actual usability testing is about whether the usability requirements are fulfilled or not. The usability requirements may be in the form of requirements stated in natural languages, but they may also be expressed in terms of prototypes or drawings. These may be more difficult to test against, but it is of great importance to verify that an implementation is in fact reflecting the prototype agreed on by the future users. In this form of usability testing it is especially important that the test environment reflects the operational environment, not least of all in terms of space, light, noise, and other disturbing factors. Coverage may be measured using the usability requirements as the coverage element.

The ultimate validation is the user acceptance test where the finished product should be accepted by the users as being the system that fulfills their requirements, expectations, and needs. Obviously great care should be taken all along the development to ensure that acceptance may actually be the results of the acceptance testing. Serious defects and failures identified at this point of time may turn out to be very expensive. Other tests like syntax tests of input fields and tests of messages to users can be combined with usability, even though they belong to functional testing category of software testing. Not all requirements can be tested in a static and dynamic testing. Surveys and questionnaires may be used where subjective measures, such as the percentage of representative future users who like or dislike the user interface, are needed. The questions are worded to reflect what we want to know about the users’ feelings towards the product.

Primary Skills Essential for Usability Test Engineers

The usability test engineers must be experienced testers having good expertise & understanding of areas like:

  1. Knowledge of Sociology

  2. Knowledge of Psychology

  3. Knowledge of different standards

  4. Knowledge of Ergonomics In part two, we will talk about Performance and Security Testing. Stay tuned!