Saturday, February 15, 2014

Software Testing Types

Unit Testing
Unit testing is the testing of an individual unit or group of related units. It falls under the class of white box testing. It is often done by the programmer to test that the unit he/she has implemented is producing expected output against given input.

Integration Testing
Upon completion of unit testing, integration testing, which is black box testing, will begin. Integration test will be termed complete when actual results and expected results are accepted. In the Integration testing group of components are combined to produce output. The purpose is to ensure distinct components of the application still work in accordance to customer requirements. Test sets will be developed with the express purpose of exercising the interfaces between the components. This activity is to be carried out by the Test Team.. 

Incremental Integration Testing
Continuous testing of an application as new functionality is recommended. This may require various aspects of an application’s functionality be independent enough to work separately before all parts of the program are completed, or that test drivers are developed as needed. This type of testing may be performed by programmers or by testers

System Testing
Upon completion of integration testing, the Test Team will begin system testing. During system testing, which is a black box test, the complete system is configured in a controlled environment to validate its accuracy and completeness in performing the functions as designed. System testing is the testing to ensure that by putting the software in different environments (e.g., Operating Systems) it still works. System testing is done with full system implementation and environment. It falls under the class of black box testing.

User Acceptance Testing
 Acceptance testing is often done by the customer to ensure that the delivered product meets the requirements and works as the customer expected. It Acceptance testing, which falls under black box  testing, will give the client the opportunity to verify the system functionality and usability prior to the system being moved to production. The acceptance test will be the responsibility of the client; however, it will be conducted with full support from the project team. The Test Team will work with the client to develop the acceptance criteria


Alpha Testing
Testing of an application when development is nearing completion, Minor design changes may still be made as a result of such testing. Alpha Testing is typically performed by end-users or others, not by programmers or testers

Beta Testing
Beta testing is the testing which is done by end users, a team outside development, or publicly releasing full pre-version of the product which is known as beta version. The aim of beta testing is to cover unexpected errors. It falls under the class of black box testing. Beta Testing is typically done by end-users or others, not by programmers or testers at client environment.

Black Box Testing
Black box testing is a testing technique that ignores the internal mechanism of the system and focuses on the output generated against any input and execution of the system. It is also called functional testing. The main purpose of the blackbox testing is to verify the functionality of the application and focused on the output.

White Box Testing 
White box testing is a testing technique that takes into account the internal mechanism of a system. It is also called structural testing and glass box testing. The main concern of white box testing to reduce coding complexity if any and verify each statement and branch has been covered by the test cases which we are write. 

Performance Testing
Performance testing is the testing to assess the speed and effectiveness of the system and to make sure it is generating results within a specified time as in performance requirements. Process of measuring various efficiency characteristics of a system such as response time, through put, load stress transactions per minutes transaction mix

Stress Testing
Stress testing is the testing to evaluate how system behaves under unfavorable conditions. Testing is conducted at beyond limits of the specifications. Checking the application behavior under stress conditions, Reducing the system resources and keeping the load as constant checking how the application does is behaving is called stress testing

Load Testing
It verifies the performance of the server under stress of many clients requesting data at the same time. Analyzing functional and performance behavior of the application under various conditions is called Load Testing

Security testing
If your site requires firewalls, encryption, user authentication, financial transactions, or access to databases with sensitive data, you may need to test these and also test your site’s overall protection against unauthorized internal or external access. The main aim of security testing is to validating whether all security conditions are properly implemented in the software or not.

Usability Testing
Usability testing is performed to the perspective of the client, to evaluate how the GUI is user-friendly? How easily can the client learn? After learning how to use, how proficiently can the client perform? How pleasing is it to use its design? Testing for ‘user-friendliness’ clearly this is subjective and will depend on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used. Programmers and testers are usually not appropriate as usability testers

Build Acceptance Tests
Build Acceptance Tests simply ensure that the application can be built and installed successfully. Other related test cases ensure that Testing received the proper Development Release Document plus other build related information. The objective is to determine if further testing is possible.

Smoke Tests
Smoke Tests cases verify the major functionality a high level. The objective is to determine if further testing is possible. These test cases should emphasize breadth more than depth. All components should be touched, and every major feature should be tested briefly by the Smoke Test.

Sanity Testing
After successful completion of smoke testing we start the sanity testing which verify the issue more deeply. Typically an initial testing effort to determine if a new software version is performing well enough to accept it for a major testing effort.

Regression Testing
Regression testing is the testing after modification of a system, component, or a group of related units to ensure that the modification is working correctly and is not damaging or imposing other modules to produce unexpected results. It falls under the class of black box testing. 

Re-Testing/Confirmation Testing
Re testing is perform each and every time when any bug has been resolved we run same test case as previously and identify that bug has been fixed or not. Basically purpose of re-testing is to confirm or assured that issue has been closed.

 Exploratory Testing
Exploratory testing often taken to mean a creative, internal software test that is not based on formal test plans or test cases; testers may be learning the software as they test it. If we start testing without any proper documentation, such type of testing is done by the own experience and knowledge.



Thursday, February 13, 2014

Types of Alert Messages



In user interactive application the alert message plays vital roles to insure the usability of the application. So for this purpose all types of messages which we are using in application should be impressive and meaningful. Here I describe types of alert messages and their importance.  We can categorize alert message in four major categories 
  • Error
  • Warning
  • Conformational
  • Notification
Error Message:

The error message alert occurred when an error has already occurred in the application. So for an error message it should be clearly mentioned cause of error  and how to resolve it.
Ex. Wrong input type in PIN num field, Wrong format of mail id,

       

Warning Message:

Warning message displayed on a condition which might cause a problem in future. The warning message are the preventive type of message which pre inform you before any damage or loss.





Confirmations:

Confirmations dialog box ask from user whether they want to perform the action or not.  After getting response from user the action will be performed or cancelled. Basically it is a direct question to user and action depending on user response.
Ex. Suppose we want to delete any user from application then one  confirmation should be pop up and user should be deleted as if click on yes.



Notifications:

A notification informs users of events that are unrelated to the current user activity, by briefly displaying a balloon from an icon in the notification area. The notification could result from a user action or significant system event, or could offer potentially useful information. The information in a notification is useful and relevant, but never critical. Consequently, notifications don't require immediate user action and users can freely ignore them.




Error message presentation

Most error messages in web application are presented using modal dialog boxes but there are other options are also available to represent the error messages. There are some format to display the error message are.
  • Dialog Box (Most common used)
  • In-place (write the text message at the place where error occurred)
  • Notifications
  • Notification area icons
  • Status bars
How to improve the error message
  • Should start with capital letter (In a standard format)
  • It should be easy to understand that an error has occurred. Do not use complicated words
  • It should be clear what the user has to do to correct the error.
  • It should be clear for the user where the error was found in the form.
  • It should be possible to be notified about errors at client side before submitting the form, especially if it is a complex form that takes time to process on the server.
  • All errors should be displayed at the same time. No one wants to re-submit the form to find a new error.
  • Don't give unnecessary error messages, Avoid user confusion by giving necessary error messages.
  • Make sure the error message is relevant, actionable, brief, clear, specific, courteous, and rare.
  • Design error messages from the user's point of view, not the program's point of view. Describe what the user should do to correct the error, especially if it could be difficult to understand                                
  • Make it clear if there were more than one error so that the user can correct all errors at once
Reference: Microsoft Site, Software testing Help