Monday, March 22, 2010

Multilingual Testing


Hi guys,
According to experience of multilingual website testing, I try to write some checklist for it, hope it will help you while you are going to test such application. It was great experience to test
Multilingual Testing Checklist
  • To check correct translation, using help of web automated translation like google translation.
  • Get really comfortable with the application - Since you might not know the languages supported by the web site, it is always a good idea for you to be very conversant with the functionality of the web site. Execute the test cases in the English version of the site a number of times. This will help you find your way easily within the other language version. Otherwise, you might have to keep the English version of the site open in another browser in order to figure out how to proceed in the other language version (and this could slow you down).
  • Start with testing the labels: You could start testing the other language version of the web site by first looking at all the labels. Labels are the more static items in the web site. English labels are usually short and translated labels tend to expand. It is important to spot any issues related to label truncation, overlay on/ under other controls, incorrect word wrapping etc. It is even more important to compare the labels with their translations in the other language.
  • Move on to the other controls: Next, you could move on to checking the other controls for correct translations and any user interface issues. It is important that the web site provides correct error messages in the other language. The test should include generating all the error messages. Usually for any text that is not translated, three possibilities exist. The text will be missing or its English equivalent will be present or you will see junk characters in its place.
  • Do test the data: Data in different languages can be easily represented in this format.
  •  Make sure to check the input data. It should be possible to enter data in the other language in the web site. The data displayed by the web site should be correct. The output data should be compared with its translation
  • Be aware of cultural issues: A challenge in testing multi-lingual web sites is that each language might be meant for users from a particular culture. Many things such as preferred (and not preferred) colors, text direction (this can be left to right, right to left or top to bottom), format of salutations and addresses, measures, currency etc. are different in different cultures. Not only should the other language version of the web site provide correct translations, other elements of the user interface e.g. text direction, currency symbol, date format etc. should also be correct. As you might have gathered from the tips given above, using the correct test environment and acquiring correct translations is critical in performing a successful test of other language versions of a web site.
  • Date format according to culture, For ex., in English culture date display in mm/dd/yyyy format, while in Italian culture it should display in dd/mm/yyyy format.
  • Currency should display according to culture. For ex. In English culture amount display as 100.00 $, while in Italian culture it should display as 100,00 $ .
  • Label alignment , text direction, text alignment should be proper
  • When page is redirect from one page to other, at that time, currency format should handle proper
  • All UI element display in respective language, like window title, page title, tool tip, all labels on page, error messages, bread crums, image alter text etc
  • Check the database value of all the inputs with respective tables
  • Check database related testing for it
  • If payment gateway is there then, when it redirect from the payment gateway page to application, then verify currency format etc
  • Localization Testing: Localization translates the product UI and occasionally changes some initial settings to make it suitable for another region. Localization testing checks the quality of a product's localization for a particular target culture/locale. This test is based on the results of globalization testing, which verifies the functional support for that particular culture/locale. Localization testing can be executed only on the localized version of a product. Localizability testing does not test for localization quality. Localization testing include:
  • Basic functionality tests
  • Setup and upgrade tests run in the localized environment
  • Plan application and hardware compatibility tests according to the product's target region
The localization testing of the user interface and linguistics should cover items such as:
  • Validation of all application resources
  • Verification of linguistic accuracy and resource attributes
  • Typographical errors
  • Consistency checking of printed documentation, online help, messages, interface resources, command-key sequences, etc.
  • Confirmation of adherence to system, input, and display environment standards
  • User interface usability
  • Assessment of cultural appropriateness
  • Checking for politically sensitive content
When shipping a localized product, ensure that localized documentation (manuals, online help, context help, etc.) is included. Items to check include:
  • The quality of the translation
  • The completeness of the translation
  • Terminology is used consistently in all documents and application UI
What we need to consider in Localization Testing?
Things that are often altered during localization, such as the User Interface and content files.
  • Keyboards
  • Text Filters
  • Hot keys
  • Spelling Rules
  • Sorting Rules
  • Upper and Lower case conversions
  • Printers
  • Size of Papers
  • Mouse
  • Date formats
  • Rulers and Measurements
  • Memory Availability
  • Voice User Interface language/accent
  • Video Content

Friday, March 19, 2010

Useful Commands and Concepts


Useful Commands
1. To know system information
Start>Run>Winmsd.exe
2. To know IP configuration
Start>Run>cmd>ipconfig /all
3. To know MAC address of system
Start>Run>cmd>ipconfig /all – in this physical address with 6 set of character is mac address of system
4. To see services running
Start>Run>services.msc
5. To connect remote pc
Start>Run>mstsc
6. Open the Group Policy Object Editor
Start>Run>gpedit.msc
7. To open registry
Start>Run>Regedit
8. To connect other pc
Start>Run>Ping computername or ip
9. To set disk quota
Start>Run>gpedit.msc
Computer Configuration > Administrative Templates > System > Disk Quotas.
10. To get disk signature number of your machine
Start>Run>Cmd>Diskpart
Diskpart>select Disk 0
Diskpart>detail disk
11. To open task manager
Ctrl+shift+Esc
12. To create hardlink file
Start>Run>cmd
Go to folder directory
>fsutil hardlink create “new file path” “old filepath”
v To Enable role of Hyper V in windows server 2008 64 bit or R2
Steps
· Go to server manager
· Roles
· Add role
· Select Hyper V and follow wizard.
v To install IIS role in windows server
Steps
· Go to server manager
· Roles
· Add role
· Select Hyper V and follow wizard.
v To create Hard link on windows system
Steps
· Create c:\Test.txt file (any type of file)
· Start>Run>Cmd
· >Cd \
· >fsutil hardlink create “c:\test2.txt” “c:\test.txt”

v To create Hard link on Unix
· To create a hard link of the file /export/home/fred/stuff to /var/tmp/thing, use:
ln /export/home/fred/stuff /var/tmp/thing
· The syntax for creating a hard link of a directory is the same. To create a hard link of /var/www/html to /var/www/webroot, use:
ln /var/www/html /var/www/webroot
v Steps of Configure Virtual Machine
· Right click in right panel of vmware > Add Virtual Machine
· Select path where you want to store your virtual machine (or space of virtual machine)
· Select network path
· Add disk size
· Add ram
· Start virtual machine
· Install operating system
· Install vmware tools
· Give computer name
· Give IP of computer
· Set firewall off (as per requirement)
· Add required software
· Take snapshot
Hard link
A hard link is the file system representation of a file by which more than one path references a single file in the same volume.
Any changes to that file are instantly visible to applications that access it through the hard links that reference it. However, the directory entry size and attribute information is updated only for the link through which the change was made. Note that the attributes on the file are reflected in every hard link to that file, and changes to that file's attributes propagate to all the hard links. For example if you reset the READONLY attribute on a hard link to delete that particular hard link, and there are multiple hard links to the actual file, then you will need to reset the READONLY bit on the file from one of the remaining hard links to bring the file and all remaining hard links back to the READONLY state.
Any number of hard links to the physical data may be created. To access the data, a user only needs to specify the name of any existing link; the operating system will resolve the location of the actual data.
If one of the links is removed with the POSIX unlink function (for example, with the UNIX 'rm' command), then the data is still accessible through any other link that remains. If all of the links are removed and no process has the file open, then the space occupied by the data is freed, allowing it to be reused in the future. This semantic allows for deleting open files without affecting the process that uses them
Limitation of Hard link
1) Most modern operating systems don't allow hard links on directories to prevent endless recursion.
2) Hard links can only be created to files on the same file system. If a link to a file on a different file system is needed, it may be created with a symbolic link.
3) The maximum number of hard links to a single file is limited by the size of the reference counter: with NTFS this is limited to 1023 because a 10 bit field is used for this purpose. On Unix-like systems the counter is usually machine word-sized (32 or 64-bit: 4294967296 or 18446744073709551616 links, respectively).
Disk Quotas
The NTFS file system supports disk quotas, which allow administrators to control the amount of data that each user can store on an NTFS file system volume. Administrators can optionally configure the system to log an event when users are near their quota, and to deny further disk space to users who exceed their quota. Administrators can also generate reports, and use the event monitor to track quota issues.

Wednesday, March 17, 2010

Database Concepts

General Concepts
A constraint is a property assigned to a column or the set of columns in a table that prevents certain types of inconsistent data values from being placed in the column(s). Constraints are used to enforce the data integrity. This ensures the accuracy and reliability of the data in the database. The following categories of the data integrity exist:
• Entity Integrity
• Domain Integrity
• Referential integrity
• User-Defined Integrity

Entity Integrity ensures that there are no duplicate rows in a table.
Domain Integrity enforces valid entries for a given column by restricting the type, the format, or the range of possible values.
Referential integrity ensures that rows cannot be deleted, which are used by other records (for example, corresponding data values between tables will be vital).
User-Defined Integrity enforces some specific business rules that do not fall into entity, domain, or referential integrity categories.

Each of these categories of the data integrity can be enforced by the appropriate constraints. Microsoft SQL Server supports the following constraints:
• PRIMARY KEY
• UNIQUE
• FOREIGN KEY
• CHECK
• NOT NULL

A PRIMARY KEY constraint is a unique identifier for a row within a database table. Every table should have a primary key constraint to uniquely identify each row and only one primary key constraint can be created for each table. The primary key constraints are used to enforce entity integrity.

A UNIQUE constraint enforces the uniqueness of the values in a set of columns, so no duplicate values are entered. The unique key constraints are used to enforce entity integrity as the primary key constraints.

A FOREIGN KEY constraint prevents any actions that would destroy link between tables with the corresponding data values. A foreign key in one table points to a primary key in another table. Foreign keys prevent actions that would leave rows with foreign key values when there are no primary keys with that value. The foreign key constraints are used to enforce referential integrity.

A CHECK constraint is used to limit the values that can be placed in a column. The check constraints are used to enforce domain integrity.

A NOT NULL constraint enforces that the column will not accept null values. The not null constraints are used to enforce domain integrity, as the check constraints.

You can create constraints when the table is created, as part of the table definition by using the CREATE TABLE statement.
Conclusion
Constraints are the built-in mechanism for enforcing data integrity. Using constraints is preferred to using triggers, rules, and defaults because built-in integrity features use much less overhead and perform faster than the ones you can create. When you write your own code to realize the same actions the constraints can make you can make some errors, so the constraints are not only faster, but also are more consistent and reliable. So, you should use triggers and rules only when the constraints do not provide all the needed functionality.
Difference between Primary key and Candidate Key
Candidate Key - A Candidate Key can be any column or a combination of columns that can qualify as unique key in database. There can be multiple Candidate Keys in one table. Each Candidate Key can qualify as Primary Key.
Primary Key - A Primary Key is a column or a combination of columns that uniquely identify a record. Only one Candidate Key can be Primary Key.

One needs to be very careful in selecting the Primary Key as an incorrect selection can adversely impact the database architect and future normalization. For a Candidate Key to qualify as a Primary Key, it should be Non-NULL and unique in any domain
Select a key that does not contain NULL
It may be possible that there are Candidate Keys that presently do not contain value (not null) but technically they can contain null. In this case, they will not qualify for Primary Key. In the following table structure, we can see that even though column [name] does not have any NULL value it does not qualify as it has the potential to contain NULL value in future.
Select a key that is unique and does not repeat
It may be possible that Candidate Keys that are unique at this moment may contain duplicate value. These kinds of Candidate Keys do not qualify for Primary Key. Let us understand this scenario by looking into the example given above. It is absolutely possible that two Manufacturers can create products with the same name; the resulting name will be a duplicate and only the name of the Manufacturer will differ in the table. This disqualifies Name in the table to be a Primary Key.
Make sure that Primary Key does not keep changing
This is not a hard and fast rule but rather a general recommendation: Primary Key values should not keep changing. It is quite convenient for a database if Primary Key is static. Primary Keys are referenced in numerous places in the database, from Index to Foreign Keys. If they keep changing then they can adversely affect database integrity, data statistics as well as internal of Indexes.
Summary
A table can have multiple Candidate Keys that are unique as single column or combined multiple columns to the table. They are all candidates for Primary Key. Candidate keys that follow all the three rules - 1) Not Null, 2) Unique Value in Table and 3) Static - are the best candidates for Primary Key. If there are multiple candidate keys that are satisfying the criteria for Primary Key, the decision should be made by experienced DBAs who should keep performance in mind.


Command Type
DML= Data manipulation language like insert, update, delete, select
DCL- Data control language like grant, revoke
DDL - Data Defination language - like create

Thursday, March 11, 2010

Basics of Virtuallization



What is Virtualization?

Virtualization is a general and ambiguous term that typically means to run multiple instances of something inside something that was intended to only run a single instance.

Virtualization is the creation of a virtual operating system, a server, a storage device or network resources. (rather than actual) version of something, such an operating system, a server, a storage device or network resources.


Operating system virtualization is the use of software to allow a piece of hardware to run multiple operating system images at the same time. The technology got its start on mainframes decades ago, allowing administrators to avoid wasting expensive processing power.


  • Network virtualization is a method of combining the available resources in a network by splitting up the available bandwidth into channels, each of which is independent from the others, and each of which can be assigned (or reassigned) to a particular server or device in real time. The idea is that virtualization disguises the true complexity of the network by separating it into manageable parts, much like your partitioned hard drive makes it easier to manage your files.
  • Storage virtualization is the pooling of physical storage from multiple network storage devices into what appears to be a single storage device that is managed from a central console. Storage virtualization is commonly used in storage area networks (SANs).
  • Server virtualization is the masking of server resources (including the number and identity of individual physical servers, processors, and operating systems) from server users. The intention is to spare the user from having to understand and manage complicated details of server resources while increasing resource sharing and utilization and maintaining the capacity to expand later.


How do we get virtualization?

Well there is no. of options available for this, but VMware, Citrix and Microsoft are front runners in domain. Here are the products from above for the same.

    1. VMware ESX and VMware server
    2. Citrix Xen
    3. Microsoft Hyper-V

VMware Server:

VMware Server is a free virtualization product for Microsoft Windows and Linux servers. It enables you to quickly provision new server capacity or server consolidation by partitioning a Physical server into multiple virtual machines. It is meant for those businesses who want to optimize use of their technology assets using virtualization.

Technology behind VMware Server:

  • Hypervisor – 2 (Hosted Architecture)

What is Hosted Architecture?

Hosted architecture is where your virtualization software is installed as an application onto the pre-existing host operating system. This means that your virtualization layer relies on your host operating system for device support and physical resource management. VMware Server is a good example of a hosted architecture.



Hardware and Software support:

  1. Any standard x86 compatible or x-86-64compatible personal computer
  2. A wide variety of Windows, Linux, Solaris, and other guest operating systems,

Including 64-bit operating systems

  1. Two-way Virtual SMP
  2. Intel Virtualization Technology (Intel VT)
  3. AMD-Virtualization (AMT-V)

Where VMware Server does fits for your environment?

VMware server suits the requirements and demands of small and medium scale business with non-mission critical processes. It can provide following options to the business resources.

  1. Virtual Machines for software development:
    1. A common environment matching in both configuration and tools for your entire team
    2. Quick rollout of new environments and tools
    3. Archive of entire development environments for major projects

  1. Virtual Machines for software testing:
    1. Platform Testing with Snapshots
    2. Platform Testing with Persistent and Non-persistent Disks

  1. Virtual Machines for Post-release and Application-Maintenance.
    1. It can create base image for you development environment
    2. Archive of the development team’s virtual machines used during the development phase
    3. Rapid platform availability for quick support tasks and bug investigation

  1. Run Windows, Linux, and other operating systems and applications without

Software conflicts.

  1. Move virtual machines from one physical host to another without having to

Reconfigure them.

Features of VMware Server:

  1. Web-Based Interface

Use VMware Infrastructure Web Access (VI Web Access) to perform host and virtual machine configuration for VMware Server 2.0.

  1. Create, configure, and delete virtual machines
  2. Add and remove virtual machines from the inventory
  3. Perform power operations (start, stop, reset, suspend, and resume) on virtual Machines
  4. Monitor the operation of virtual machines
  5. Generate a Web shortcut to customize the VI Web Access user interface for users, with the option to limit their view to the console or a single virtual machine
  6. Generate a VMware Remote Console desktop shortcut that allows virtual machine users to interact directly with the guest operating system outside of a Web browser
  7. Configure host-wide VMware Server settings

  1. VMware Remote Console

VMware Remote Console enables you to interact with the guest operating system

running in a virtual machine. You can run VMware Remote Console on the host or a remote client system. After you install it as a Web browser add-on from VIWeb Access, VMware Remote Console can run independently from VIWeb Access.

VMware Remote Console also allows you to connect and disconnect client CD/DVD

and floppy devices.

  1. Memory Support

The maximum amount of memory that can be allocated per virtual machine is

8GB. The amount of memory that can be used by all virtual machines combined is limited only by the amount of memory on the host computer.

  1. Number of Network Adapters Supported

It can support total of 10 network adapters for a virtual machine.

  1. Quiesced Backups of Virtual Machines on Windows

On Windows hosts, you can enable the VMware VSS Writer, which uses snapshots to

maintain the data integrity of applications running inside the virtual machine when

you take backups.

  1. Support for High-Speed USB 2.0 Devices

If the guest operating system has the appropriate USB 2.0 device drivers, you can use peripherals that require high-speed performance, such as speakers, webcams,

next-generation printers and scanners, fast storage devices, MP3 players, DVD-RW

drives, and high-capacity CD-ROM jukeboxes.

Besides above there are few more such as

· Additional host operating system support

· Additional guest operating system support

· improved 64 bit guest support

· 64 bit sound driver

· Native 64 bit support on linux

· Improved VIX-API

· VMCI socket interface

Bottlenecks:

  1. It puts more of your client's eggs in one basket. If the host machine breaks or needs to be taken offline, several virtual servers will go down.
  2. Applications like databases that require a lot of disk activity. The prevailing wisdom is that databases should still run on dedicated physical servers.
  3. Time-sensitive applications like Voice over IP (VoIP) may also be poor candidates for virtualization.
  4. Virtual Machine overload: Application that are low I/O intensive and low utilization are best candidates for virtualization but need to put restriction on no. of virtual machines that can be handled with ease on physical server.

VMware Server at a glance:

Architecture

Hosted

OS Requirements

Windows or Linux

Typical Use Cases

Test & Dev, Production

Dedicated Server Required

No

Centralized Management Option

No

Ease of Use

High

Performance

Good