My Page
Apriorit Inc.

|
|
|
Apriorit Inc. created a blog entry TestComplete: Storin... In this article, I will describe the usage of external files for storing of test data and their usage in TestComplete scripts. I will describe some good and bad variants for storing data and thus explain why I chose external files. Also, I will give general examples of functions that work with *.csv files and an example of building and using of *.csv file for search options.
|
Dec 17 |
|
|
|
Apriorit Inc. created a blog entry Testing of Applicati... Databases are an essential part of the modern software such as client-server software or web-applications. Our team has some experience in testing of applications that work with databases. The purpose of this article is to sum up the gathered experience and to share it with those who faced the similar task for the first time. The article is a small manual with practical ideas that can be useful while writing the test plan for your application. Test cases are gathered with no relation to some definite type of application or DBMS (Database Management System); that is why they do not claim to be taken “as is”. After reading this article, you will be able to adapt them to your concrete product. |
Dec 16 |
|
|
|
Apriorit Inc. created a blog entry Specifics of Testing... Nowadays, software virtualization systems have become widespread. The end user can use virtual applications and desktops. When creating such virtualization systems, developers take into account the customer preferences (the end-user preferences) and usability. That is why, testers face a lot of diverse functionality when testing them. One such functionality is the redirection of sound to the terminal session. |
Dec 16 |
|
|
|
Apriorit Inc. uploaded a new avatar. | Dec 02 |
|
|
|
Apriorit Inc. updated a blog entry Testing Strategies f... In this article, we will examine the specific of testing of the software virtualization systems. We will touch upon the following questions:
So, we will examine those important things that should be taken into account when thinking over the testing strategy of the software virtualization system. This material can be useful for those people who test systems of described type and also for the managers of these projects. |
Oct 05 |
|
|
|
Apriorit Inc. created a blog entry Testing Strategies f... In this article, we will examine the specific of testing of the software virtualization systems. We will touch upon the following questions:
So, we will examine those important things that should be taken into account when thinking over the testing strategy of the software virtualization system. This material can be useful for those people who test systems of described type and also for the managers of these projects. |
Oct 05 |
|
|
|
Apriorit Inc. created a blog entry Time Estimation for ... In the process of creation of a successful software product, there is an inevitable problem of finding a balance between the quality and the release date of the software product. The testing allows of obtaining a product that satisfies all requirements. But the covering of each product risk with various test cases and compiling them take too long. The correctly prepared testing process should provide a required quality level without exceeding project time and budget . If the time for testing was estimated wrongly, it can lead you either to the late product delivery, or to the decrease of its quality and competitiveness . The estimation of time resources in software testing is a rather complicated and volumetric process but its significance for the creation of the successful project shouldn’t be underestimated. This article contains recommendations that can help you to obtain more realistic and functional time estimates for the testing of a new project. |
Sep 27 |
|
|
|
Apriorit Inc. created a blog entry How to test virtual ... This article is devoted to the testing of programs that use virtual desktop acceleration to improve performance. Here we will consider features of virtualization, testing scenarios, some useful tools and tips, and also will give examples of real test cases.
|
Jun 04 |
|
|
|
Apriorit Inc. updated a blog entry The testing report a... IntroductionIf you prepared the testing reports without making the preliminary analysis of the findings before, please start doing it. The correctly prepared report on the results of testing is a powerful tool for the optimization of the software development process. That is why let’s pay special attention to this process. This article includes practical recommendations concerning the preparation of different types of testing reports and their ready examples.
|
Jun 02 |
|
|
|
Apriorit Inc. created a blog entry The testing report a... IntroductionIf you prepared the testing reports without making the preliminary analysis of the findings before, please start doing it. The correctly prepared report on the results of testing is a powerful tool for the optimization of the software development process. That is why let’s pay special attention to this process. This article includes practical recommendations concerning the preparation of different types of testing reports and their ready examples.
|
Jun 02 |
|
|
|
Apriorit Inc. created a blog entry Specific of testing ... Many corporations, companies, firms, and other institutions of different kinds of activity need to control access to their computer networks, devices that store information, and to the information itself. In future this problem can be solved by means of inventing new devices. These devices will let working only those people, whose voice, fingerprints or the retina picture match those in the database. However, because of comparatively high prices of these devices, applications, which limit the user access to devices and I/O ports, are used to protect the information. Such applications also let you protect the corporate computer networks from the influence of harmful viruses. Applications limiting the user access to devices and ports are not only complicated in development but also require special treatment while testing.
|
Apr 07 |
|
|
|
Apriorit Inc. created a blog entry Technology of GUI co... This article will be useful for both testing specialists and newbies as soon as the process of GUI testing is represented here as completely as possible. GUI testing can be performed from three points:
The first two points are discussed well in the article by Elena Osadchaya “GUI Testing: Basic tips” [1]. Information concerning element arrangement testing can be found on the Microsoft site [2] and that is what we will talk about in this article.
Written by: 1. Composing test plan for GUI testing 3.2. Bug reports for GUI element arrangement testing 3.3. GUI element arrangement testing report IntroductionImagine a window where all elements are aligned perfectly and the style remains consistent in all of elements, tabs and boxes. Such harmony will be very pleasant to the eye and a user will enjoy it for sure. In this article you can find answers for such questions:
1. Composing test plan for GUI testingAs we mentioned above we have an important task - to test element arrangement up to a single pixel. And first we should compose the main document, which will describe the testing process – test plan. First of all we should choose the certain rule sets that are the most important for us and formulate them clearly. Then we divide an interface into parts: windows, tabs, functionalities… The individual test plan can be composed for each element in correspondence with the chosen documentation scheme. We will compose testing documentation by the plan [1]: 1. Elements - Buttons - Checkboxes and radiobuttons - Listboxes and comboboxes - Editboxes - Menus - Windows, tabs, blocks - Pictograms - State line - Input forms - The structure of interface forms - Text - Interaction - Keyboard - Visual representation - Indication 2. Arrangement - Visual hierarchy - Effective usage of screen space - Element sizes. Each point includes a list of nuances to pay attention at and the values of distance between elements in pixels. In a window where there are only checkboxes we check the corresponding requirements, skip the rest from “Elements” section and continue testing. If the interface part includes a lot of different elements we proceed by the list skipping the absent elements. Let’s consider two tabs of computer properties window My computer -> Properties and test their interface (Fig. 1 and Fig. 2). Figure 1. Automatic Updates Tab Figure 2. RemoteTab Using the list given above let’s make a draft of basic plan for composing the test plan:
Now we will look through this list along with the Microsoft recommendations and make the specific test cases. See the results below. 2. Tools and documentsBefore start testing let’s se what tools can help us to count the pixels on the screen. There are 3 the most widely used approaches:
Let’s consider each one in detail. JRuler is a small application to easily measure distance or sizes in pixels (Fig. 3). It’s interface is really a ruler where each pixel is marked by a scale line. A ruler can be both horizontal and vertical. The value that corresponds to the current cursor position on the screen is displayed inside. Holding the mouse left button you can easily move a ruler to the proper place. It is good to mach the ruler left border with the first pixel of the considered interface part. Figure 3. JRuler interface Advantages of JRuler:
Disadvantages: - The one pixel difference is very hard for eye to catch and so you have to scrutinize. - The number of pixels is displayed in only one fixed place. If to put a ruler down you cannot see these numbers. There are a lot of analogues: Jruler PRO, JR Screen Ruler, UDRuler and others. Microsoft Paint. To use Paint we should first make a screenshot with application window and paste it to Paint. Then we choose View -> Zoom -> Large. And one more step: View -> Zoom -> Show grid. Now we can count the pixels (Fig. 4).
Рис 4. Large Zoom with grid in Paint. We can also use Pencil tool to mark examined pixels by bright colors and thus make it easier to count these small countless cells. Advantages of Paint:
Disadvantages: - You have to make screenshots (additional time, efforts and attention). - Zooming is not smooth. - There is no ruler. Adobe Photoshop. This program is a powerful graphics editor and thus it’s not surprising that it’s the easiest tool to deal with pixels. To start working we should make a screenshot and paste it to the new Photoshop document (Fig. 5). Then choose:
-> In Grid block we choose Grid every 1 pixel. 4) Edit -> Preferences -> Units & Rulers. In Units block we choose Rulers: pixels, Type: pixels. 5) Zoom in.
Figure 5. Editing in Photoshop. Advantages of Photoshop:
Disadvantages: - Program window has to be maximized for the proper work. - Screenshots should be made. - It’s not cheap commercial product. - You should have some special knowledge to work with this program. As usual, each tool has its advantages and disadvantages. The best way is to have all of them and choose one each time depending on the specific situation. 3. Reporting3.1. Test documentationLet’s match the described above basic plan with the Microsoft distance table and represent as Excel spreadsheet. After that we perform all tests using above mentioned tools and put the results to the table (Table 1). Each test performed has a mark in Status column: passed or failed. Test results can be aggregated to obtain the current quality level of tested object; we can use the formula: QL = (Passed / Total) * 100%. Then, as usual, we make a ticket for each failed test, make bug report and put it to the bug-tracking system. Below there are examples of bug reports. It may seems like these both tickets describe the same problem – failed distance – and one ticket would be enough. But actually the Microsoft table has two points: - what distance between buttons should be; - what distance between a button and window border should be. And thus if you just indicate “failed” in test plan you will not give the clear answer what exactly is wrong. This situation also results in two peculiarities of making tickets about element arrangement:
When all test cases are passed we form the project report, where all necessary testing details are described. Usually this report is sent to all developers and testers in the project team as well as project manager. And finally the examples of bug reports and project GUI testing report are given below. Table 1. Test plan and test passing results.
3.2. Bug reports for GUI element arrangement testing[Ticket#1] Distance between OK and Cancel buttons is more than 7 pixels. Module: My computer properties. Version: Windows XP SP3 x86 Type: Design Priority: Low Steps to reproduce:
Actual result: The distance is 8 pixels. See screenshot 1. Expected result: The distance is 7 pixels. Note: The same distance is between Cancel and Apply buttons.
Screenshot 1. [Ticket#2] Distance between Apply button and right window border is less than 11 pixels. Module: My computer properties. Version: Windows XP SP3 x86 Type: Design Priority: Low Steps to reproduce:
Actual result: The distance is 7 pixels. See screenshot 2. Expected result: The distance is 11 pixels. Note: The same problem is between Apply button and bottom window border. Distance is 8 pixels instead of 11.
Screenshot 2. 3.3. GUI element arrangement testing reportTesting report Module: My computer Properties window Version: ftp://storage/out/Testing/2009-12-16/ Configuration: Windows XP SP3 x86 Type of testing: GUI testing Results: Automatic updates and Remote tabs were tested. See Results in table:
There were founded 2 new bugs: [Ticket#1] Distance between OK and Cancel buttons is more than 7 pixels. [Ticket#2] Distance between Apply button and right window border is less than 11 pixels. Problems: There were no problems. Common vision: Interface looks very good. GUI corresponds to almost all of Microsoft standards. There are a few low-priority bugs. ConclusionIn this article we managed to:
References
|
Feb 26 |
|
|
|
Apriorit Inc. created a blog entry Installation testing... Working with the software starts with its installation on the computer. During the installation, user gets the first impression of a product. That’s why this process is very important and claims certain attention. This article includes practical recommendations on testing of software installation process and also includes a bulk of ready tests that are a good basis for a valid test plan preparation.
Written by: QA Specialists of Apriorit Testing Team (Network Direction), Finally prepared by: Liliya Smolyar, Junior Tester. Contents
IntroductionWorking with the software starts with its installation on the computer. During the installation, user gets the first impression of a product. That’s why this process is very important and claims certain attention. This article includes practical recommendations on testing of software installation process and also includes a bulk of ready tests that are a good basis for a valid test plan preparation. Installation and uninstallation process notionsInstaller is a program that performs certain actions for software installation on a user computer such as:
Widespread types of installers:
Software uninstallation means deletion of all program parts from the system (records in the Registry and in other system files, DLL libraries in the WINDOWS/SYSTEM folder, etc.) Types of installationManual installation is a case when the software installation is performed without the installer help or requires considerable user participation. Automatic installation is an installation that does not require any user actions except its starting (password entering, license agreement acceptance, etc.). Self-installation is a fully automatic installation that does not require an initial start of the installation process. Silent installation. Messages and windows are not displayed during the installation of this type. Remote installation is a type of installation when the control is performed from the remote computer that is connected via LAN or serial cable. Clear installation is an installation that is performed in the absence of interfering factors (files of the previous installation of this program, unstable OS mode, etc.). Testing of the software installationDuring the first launch of the installer, it proposes you to choose the installation mode. The principal moment, on which you should concentrate during the testing, is the control of correspondence of installed components to those chosen by the user:
Peculiarities of installation testing for various applicationsWhile testing, you should take into account specific of installations of various applications. Program packages Pay close attention to the work of the license agreement, i.e. check the program behavior at the illegal license key entering. If the program validates the key via the security server using the internet connection then the following tests can be also performed:
Antivirus software Antivirus software in most cases conflicts with other installed antiviruses. That’s why starting the antivirus installation testing you can single out two main test cases:
Drivers Driver installation testing should be performed carefully and attentively.
Games Full-screen 3D games are the most requiring for the PC hardware. Many games collect the information about the system at the preliminary stage of installation.
Mail clients The installation of mail clients implies the choice of basic settings of work with a client.
How OS security tools affect software installationInstallation under different users As is known, for every Windows user there is a folder with his own profile where different system settings are stored. It refers also to the programs installed. That’s why installation testing and starting a program for different users are the separate interesting classes of testing. In this case, the following situations may occur:
It should be mentioned in the specification which of the installation variants your program uses. If it is missed it is necessary to focus on common sense and the program functionality. Thus, the following tests should be executed:
User permissions
UAC impact User Account Control is a Microsoft Windows component that appeared first in Windows Vista OS. This component inquires the confirmation of actions that require the administrator’s rights to protect the computer from unauthorized use.
There is a certain list of actions that call the UAC message, e.g., writing to the system folders or Registry branches, adding accounts, etc. If the program performs some actions from this list, it must response correctly to the UAC reaction; especially it concerns the silent installation. It can be enabled in such a way: Vista:
Win7 has 4 UAC gradations (which differ in the list of events that call UAC message), it is necessary to run testing on the strictest gradation (Always notify). It can be enabled in such way:
DEP impact Data Execution Prevention is a set of software and hardware techniques that allow you to execute additional testing of RAM contents and to prevent launching of a harmful code. DEP allows blocking viruses and other malicious software that attempt executing their code out of system memory space that is reserved for Windows and other authorized programs. After discovering that a program uses system memory incorrectly, the DEP closes the program forcibly and displays the appropriate message. Unlike the firewall or antivirus program the DEP feature does not prevent the installation of potentially unsafe programs. Instead of it monitoring is performed to make the programs use system memory in the proper way. By default the DEP feature is enabled only for basic programs and services of Windows OS.
DEP can be enabled in such way: 1. Right click on My Computer. 2. Select Properties. 3. In the Advanced tab, select Performance and click Settings. 4. On the Data Execution Prevention tab, select the Turn on DEP for all programs and services except those I select option. Remote installation and Firewall Your program must be ready to be installed not from the local computer.
Special case: programs that allow the installation from a single computer to all computers in the network, domain, certain range of ip addresses, etc. Such installation is not rather an object of installation testing, but a separate functionality and is tested accordingly. Anyway, the remote installation first of all faces the use of Firewall.
To enable Firewallgo to Control Panel -> Windows Firewall -> Change settings. Then launch the remote installation. During the configuration of environment for testing of remote installations pat attention to Exceptions in the Firewall settings: Control Panel -> Windows Firewall -> Change Settings -> Exceptions. Pay attention to all options that begin with the word Remote. To perform the remote installation Firewall is often disabled but if these options are included to Exceptions they will function and will not allow to execute the installation. Testing of repeated installationDuring the repeated installation it is often proposed to delete, update, recover or modify the installed software. Uninstall (Remove) – deletion of a program.
Repair – an application recovery if it was damaged.
Modify (change) – change of installation options after its termination.
Update – update the program version.
Installation wizard testing peculiaritiesIt is very important to test the installation wizard as well.
ConclusionWe made sure that software installation is really a very important moment that has its own nuances and bottlenecks. That’s why the installation testing must be performed with account taken of all peculiarities of installation process. The basic moments were covered in this article. Let’s summarize. Performing the installation testing it is necessary to take into account the following things:
Wish your product be of high quality! |
Feb 24 |
|
|
|
Apriorit Inc. created a blog entry Procedure and check-... The licensing mechanism is very important part of the commercial product. Proper testing of it prevent the unauthorized utilizing of your intellectual property. Written by: What is licensing and what is it for?Software just like other objects of the intellectual property, such as music and literature works, is protected from the unauthorized copying by the laws about the author’s rights. These laws suppose that the software publisher keeps some exclusive rights, one of them is the right to produce software copies. Buying the software user actually buys the license that gives him a right to use this software. The terms and conditions of utilizing the software (for example, the possibility to move it to the other PC, use previous versions) are fixed in the agreement, which accompanies the software delivery. The most widespread is EULA - End User License Agreement. EULA is the contract between a user and the software publisher, which describes the possible ways of software utilizing and also limitations for it. The Agreement can:
Usually EULA is provided in the digital form and is shown on the first start of the product. User should agree to its terms before the product installation. Buying a license a user in fact gets the additional services from the publisher such as free technical support, updates and others. All licenses are divided into two big groups: free software and proprietary software. There are also different types depending on the number of licensed copies (individual, volume, enterprise licenses etc.), additional services volume (standard, ultimate etc.), the type of the object the license is applied to (per user, per machine, per server etc.). Software protection toolsMethods of the software protection can be divided into software-based and hardware-based. Software-based methods don’t consider the physical properties of the data storages, special hardware etc. Hardware-based methods use specific hardware (e.g. electronic keys connected to the computer ports) or physical peculiarities of the data storages (CDs, floppy disks) to identify the original software version and protect the product from the illegal utilizing. Electronic key (hardware key, dongle) is the hardware tool intended for software protection from copying, illegal usage and unauthorized distribution. Generally hardware key is a microchip or microcontroller that has unique algorithms of functioning. The keys are often plugged via USB or LPT interfaces. Key is plugged to the certain computer interface. Then the protected program sends data to it by means of the special driver. This data is processed in accordance with the specified algorithm and returned back. If the key response is correct then the program continues working, otherwise it can perform any actions implemented by the developers – for example, turn to the demonstration mode, block the access to some features. To provide the security of the network software special digital keys are used. It’s enough to use just one key for protection and licensing of the network product (limitation of the number of the program copies, which are working in the network). This key is installed on any workstation or network server. Serial number or license key . Usually it is the text string (but can be a file) with the specific structure. This key is provided to the customer together with the program version (for example in the box package) or separately. Then, just after the installation, the program asks user to enter the key (or provide the path to the key file) and checks the authenticity of the key by the certain criteria. Subject to the check method we can name the following license key types: Standard key/serial number. In this case program checks the key provided by a user using several conditions, for example: the key should include 25 symbols, 12 of them should be the numbers and 13 should be the letters, number sum should be equal to 60 and the sum of the numeric equivalents for the letters should be equal to 100. If this approach is used per se (without some additional security actions like activation via Internet) then the key can be used for installing the program to the other computers. Key with the reference to the serial numbers of the computer hardware components. As a rule, vendor uses the mechanism when a user fills the survey at the vendor’s site and sends to the same site the specific computer identifier (hardware id). Using this hardware id the key is generated. Usually the key contains encrypted information about the user, product, number of licenses etc. If a user upgrades his computer, the protection fails. The authors of the many programs protected by hardware reference are ready to provide a user with the new key. Besides the hardware id vendor can also use serial number of the hard drive, MAC address of the netcard, BIOS control sum and other system properties. Activation via Internet. Here the unique product serial number is used. When a user installs an application, it asks to enter serial number and then establish Internet connection with the vendor’s system to check if the provided serial number is listed in the actual numbers. License server. It is the specialized server application or hardware-software complex that enable to centralize license management. If there is big loading then a separated physical server can be provided for the license server. License server stores all licenses bought for the specified number of the product copies and provides a license to the each program start. Licensing check-list and testing guidelinesWhen you start the work on the licensing test you should first of all determine what scheme you have, i.e. what protection tools are used and what are their combinations. Let’s consider the simplest most widespread licensing schemes: with text key, with key file and with hardware key. More complicated schemes are the partial intersection of the following sets or are specific for the each individual product. Text key The trial period is often present in this scheme. We’ll consider the check-list with it as it’s more complicated – for the scheme without trial period some tests will be simply omitted. It’s recommended to check: - the limitations of the application functionality (if there is such during the trial period) and correspondingly the availability of the full functionality after the successful licensing. - the possibility of licensing during the trial period - application response to the input of the incorrect registration data (if the key consists of the several fields then you should make the separate test for the each of them): а. Key is corrupted b. Key is absent c. Key is typed in the wrong case d. Key contains the extra symbols at the end and/or at the beginning - application response to the input of the correct registration data - application response to the input of the registration data provided for the previous versions of the tested application - unlicensed application behavior after it has been reinstalled during the trial period - application behavior after the trial period is over - unlicensed application behavior after it has been reinstalled after the trial period is over - application response to the system time change forward/backward (the most important here is to keep the trial period correct). Take into account that the system time change should be performed in BIOS because the one performed in the operating system does not have much effect. - the possibility to register application after the trial period is over. - application behavior after the registration data has been deleted, for example from the registry (usually after registration the deletion of these data is disabled). - licensed application behavior after it was reinstalled. Key file Here you should pay attention on the aspects: - Using a file with the correct name but with incorrect content and vice versa. - Starting application after the file was deleted. - Saving the file while the application is being reinstalled. - Application behavior after the file has been replaced: a. correct -> incorrect, b. correct -> correct, c. incorrect -> correct, d. incorrect -> incorrect. Hardware key We should check: - Application functioning with no special software for hardware key installed. - Application functioning without hardware key. - Unplugging hardware key while the application is running (here we should take into account 2 situations: application has some process run and application is in the standby mode): a. Permissible waiting time for the key plugging. b. Correct application behavior after the unplugged key is returned. с. Correct application behavior if the waiting time is over and the key was not plugged. - Application functioning if there are some other devices akin to the hardware key plugged (for example, if the key is USB device then it’s good to check its functioning together with flash drive). General aspectsFrequently it’s required to perform countdown not only of the trial time but also of the program starts during the trial period. Here it’s important to control that after the number of starting attempts is over the trial period is finished too regardless of the actual number of trial days left. Most software products put the information regarding the registration to the About form (usually called by the About menu item). We should check if this information is present and is correct for any licensing scheme in every state. If HardwareID is used in the registration process it makes sense to try to propose the HardwareID of the other computer. ConclusionTesting licensing you should not forget to check some main things:
The correct work of licensing is a guarantee of the proper protection of your product. Don’t spare resources to protect your program from the unauthorized utilizing. You should remember that especially for this type of testing it’s not enough just to check the correct functioning of the licensing mechanism. Tester should think as a user and try to hack the existent protection by any means. Only such approach gives some confidence in the licensing reliability. Let your products be of high quality! |
Feb 24 |
|
|
|
Apriorit Inc. updated a blog entry The peculiarities of... Written by: Rina Krupskaya, Content 1. Printer redirection to the terminal session using Microsoft tools 2. Testing printer redirection to the terminal session 2.1. Functional testing: checking of redirected printers representation, printing in TS 2.2. Non-functional testing of printer redirection to the Terminal Server
1. Printer redirection to the terminal session using Microsoft toolsAt the moment when user of the thin client connects to the terminal server using Microsoft Remote Desktop Client the client automatically transmit the information about printers connected to the terminal. Saying terminal server (TS) in this article I mean the server that provides clients with the computing resources - processor time, memory, disk space - for solving their tasks. Terminal server uses this information to automatically create printers in the user session and to establish connection between local and network user printers. If the printer driver name matches the name of the driver installed on the terminal server absolutely or the driver name is present in the file ntprint.inf (there are all printer drivers inbuilt in the installation package of the server software mentioned there), then client printer is created automatically. In this case all documents printed to the local printer connected to the user terminal will be successfully transmitted via the virtual channel over the RDP between the terminal server and thin client. The automatic creation is impossible when the names on the thin client and the server don’t match. Then the following actions should be performed: 1. Set the possibility of printer utilizing in the Remote Desktop Client (mstsc.exe). 2. If users connect by means of Remote Desktop Web Connection (so called Tsweb that can be downloaded from the Microsoft site) then this possibility should be mentioned in the file default.html (Tsweb package includes it) and the corresponding parameter should be set to “true”: MsRdpClient.AdvancedSettings2.RedirectPrinters = True 3. In the terminal server settings Administrative Tool (tscc.msc) -> Connections -> RDP-Tcp -> Properties the mapping of the Windows Printer shouldn’t be disabled and the connection of the client printers at the server logon also should be allowed.
4. In the user account settings (Active Directory or Windows Local Security Accounts Manager) -> Environment -> Client Devices, the connection of the client printers also should be enabled.
5. In the Group Policy settings the option “Do not allow client printer redirection” should be enabled.
6. In Services Administrative Tool (services.msc) "Print Spooler Service" should have status “Started”.
7. Printer shouldn’t be "Host-based printer" (so called GDI or Windows-only Printer). "Host-based" printers, such as Hewlett Packard Printers using LIDIL (Lightweight Imaging Device Interface Language), don’t function in the Terminal Services environment (without utilizing the software for printing, developed by different vendors). You can also additionally consult your printer vendor about the support of PCL or PostScript drivers. 8. Printer driver on the terminal server should not use "printer monitor" or so called printer utilities included in the software package of the inexpensive printers. Such utilities (programs) are not intended for the work in the multiuser environment such as Windows Terminal Services. As you see the procedure described above is not very easy and requires the certain conditions. But people always look for the easier ways to solve their tasks. Now there exists software that helps to redirect client printers to the session without installation printer drivers on TS. We’ll suppose that we should test such program. 2. Testing printer redirection to the terminal sessionLet’s consider the peculiarities of testing client printer redirection to the TS. To perform all tests described below we suppose that our software is installed on the client and server. Tested software can redirect either all client printers or ones of the specified type (only default, only network, only local). There are local, virtual and network printers on the client machine. We will use Desktop Connection, Remote Application, Remote Desktop Web Connection to connect to the TS. Let’s formulate the test plan for our application. 2.1. Functional testing: checking of redirected printers representation, printing in TS1. So, the first testing steps are focused on the printer redirection to the session: 1.1. Default printer redirection; Expected result: default printer is redirected to the session and represented as the default one. After the session finishes log off is performed. 1.2. Local printer redirection; Expected result: - If none of the local printers is default printer then in the session any of the redirected local client printers can be represented as the default one. - If there is a default printer among the local printers then we check both redirection of the local client printers and the representation of the default printer in the session. - All local printers are redirected to the session. Attention: virtual client printers can be also redirected to the session with the local ones. After the session finishes log off is performed. 1.3. Network printer redirection; Expected result: - If none of the network printers is default printer then in the session any of the redirected network client printers can be represented as the default one. - If there is a default printer among the network printers then we check both redirection of the network client printers and the representation of the default printer in the session. - All network printers are redirected to the session. Attention: virtual client printers can be also redirected to the session with the local ones. After the session finishes log off is performed. 1.4. All printers redirection; Expected result: check that all printers are redirected to the session and that the default client printer is represented in the session as the default one. After the session finishes log off is performed. In the terminal session we will see a picture like this:
1.5. After all printers were redirected to the TS and Printers folder was refreshed in the session (F5), check that all printers are still redirected and the default client printer is still represented as the default one.
2. Attend to the different printers and check their correct redirection to the session. 2.1. Printer with USB interface; 2.2. Printer which is connected to the LPT port; 2.3. Printer which is connected to the COM port; 2.4. Wireless printer.
3. The printer redirection can be changed also “online”, i.e. directly while the session is running and after each session reconnection. Let’s consider the cases when the session is running.
The described above tests can be used and for the checking redirection of the client printers after the each session reconnection (log offdisconnect). Log off — shutting down all applications working in the terminal session, releasing all system resources, allocated for the current session (i.e. session is completely removed from the server); Disconnect — the window of terminal session is shut down on the client machine, the session is completely stored on the server with all applications running. After the repeat connection of this user to the server the work in the session is fully renewed (Attention! If you finish the work of the remote desktop client by clicking the red cross at the upper right corner of the client application then just Disconnect will be performed). 4. The special attention should be paid on the printer state. We simulate different printer states on the client machine and check how the state is shown in the session. 4.1. Ready printer; 4.2. Paused printer; 4.3. Offline printer;
5. The next test is aimed at the starting multiple sessions by one user (here we assume that the TS itself supports such option). Let’s consider the case when a user starts two terminal sessions with redirection of all printers to the session. Expected result: Two sessions contain the similar information. All client printers are redirected to the sessions. We can see duplicated client printers in each session, the only difference is in the unique session number (in the example on the Picture they are 23 and 24).
6. This group of tests is to check the correct redirection of the client printers to TS after the TS restart or client machine restart. You may think: what so unusual can happen after the usual restart? In truth I came across the situations when client printers were not redirected to the TS or were redirected but not in a body. 6.1. Redirection of all client printers after server restart. Expected result: all printers are redirected to the session and default client printer is shown as the default one. 6.2. Redirection of all client printers after client restart. Expected result: all printers are redirected to the session and default client printer is shown as the default one.
7. This test is to check the redirection of all printers from different users - administrator, user, guest – to the TS. Expected result: in all cases irrespective of what user is logged in we assume that all printers are redirected to the session and default client printer is shown in the session as the default one.
8. After we have checked that the client printers are correctly redirected to the TS, we can proceed to the main functionality of our application – to printing. Here are some points of our keen interest. 8.1. Test of picture printing Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - picture is printed to the client printer and corresponds to the original picture. 8.2. Test of the printing of the text with different fonts. This test is very important as far as there can be special fonts installed on the server and not installed on the client. As the result we just won’t see the corresponding part of the text or see it but not in the readable form. For example such specific fonts are APAPA.TTF, ACUTATR_.TTF, AnnabelScript.ttf, apicture.ttf, ARIALUNI.TTF. Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - all fonts are transmitted together with the printed document to the client printer and correspond the original fonts. 8.3. Test of the formula, diagram, table printing. Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - formula/diagram/table is printed on the client printer and corresponds the original one. 8.4. Test of bar code printing.
Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - bar code is printed on the client printer and corresponds the original one. 8.5. Test of printing from various account applications. Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - document sent from account program(s) is printed on the client printer and corresponds the original one. 8.6. Test of watermark printing. Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - watermark is printed on the client printer and corresponds the original one. 8.7. Test of printing of documents of different types: *.doc, *.xls, *.ppt, *.txt, *.pdf, *.html, *.mmap (MindManager), *.jpg etc. Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - the content of all documents of all types is printed on the client printer and corresponds the original one. I tried to cover the main test scenarios of printing, in truth there are a huge number of them.
9. On the next stage we check how main printing options work. 9.1. Printing of all pages of the document; 9.2. Printing of selected pages; 9.3. Printing of several copies of the document; 9.4. Printing of the current page; 9.5. Two-sided printing; 9.6. Printing to the file; 9.7. Printing of the even-odd pages; 9.8. Printing of the selected range; 9.10. Portrait oriented printing; 9.11. LandScape oriented printing; Etc. It’s clear that the more properties we cover the higher quality of final product we get.
10. The next test is to check the printing tasks form the queue. To perform this test we send several documents to the one printer. Expected result: - the task has not hung in the pool; - printer icon is shown not in the session but on the client machine; - tasks with queue status turn to the In Progress status one by one with following printing to the client printer.
11. As you know each user has his access rights for TS. Let’s consider two categories of users: User1 is a member of the groups: - administrators; - remote desktop users. User2 is a member of the groups: - users; - remote desktop users. We assume that each user has some printers. When both users simultaneously redirect their printers to the one TS and open Printers folder in their sessions they see different data. Expected result: User1 sees his printers, server printers (if there are any) and printers of User2.
User2 sees only his printers and server printers (if there are any).
Remember: User1 can’t print to the User2 printers. 2.2 Non-functional testing of printer redirection to the Terminal Server12. Ideally all mentioned test scenarios should be performed on the different configurations. Configuration list depends on the requirements, of cause. The most widely spread configuration looks as follows:
As you understand it will take a huge time to fill in all cells of this table. In practice we just define priorities and adhere to them. Priorities depends on the requirements. If all above mentioned OS are present in the specification then we base on the most obvious configurations. For example the configuration TS 20032008 with clients XP sp3 x32 RDP 6.0, Vista sp2 x32, Win7 x32 is the highest priority and it should be passed in the first turn for the first release version. Then we can gradually cover other platforms. I want to admit one more time that such priorities should be discussed and agreed with the customer.
13. Let’s consider the situation when our software has some limitations on the number of users to redirect printers to the terminal session. This limitation can depends on the license key. For example only 5 users, who work simultaneously on the Terminal Server, can redirect their printers to the session. Let’s take a look at the possible test scenarios:
14. We should also remember about the performance testing. So we should measure the speed of printing in the terminal session when our software is installed. But how can we define the optimal performance level for our application? Sometimes the numbers are specified by the customer or project manager but much more often we have to define performance bounds ourselves. Using the common sense we can say that the application has bad performance if it takes too long to print the small document. We can also measure the printing speed using Microsoft RDPRemote AppRemote Desktop Web Connection and checking the Redirect printers option – here we assume that the drivers of client printer are installed on the TS and our software is not installed. This neutral situation gives us some number to compare with the printing speed of the same documents with our software. It’s obvious that the speed with our application should not be less than the corresponding speed without our software, and ideally it should be greater. 15. Load testing. 15.1. Let’s consider how the main functionality will work in the high load conditions. For example, continuous printing during several hours/days. To implement this we can develop the small script to send document from the session to the client printer in the loop. Expected result: the test is for check the performance (after the n-th hour/day the performance should not become worse). And also, the printing is possible and the corresponding task is not hung in the pool. 15.2. Different users connect to the same TS from the one client machine and send a document to the one client printer. Here we can check how the printing from the multiple users to the one printer is performed. Expected result: - printing is possible for two users; - the printer icon appears not in the session but on the client PC; - the tasks are not hung in the pool; - the tasks that have queue status pass into In Progress status one by one with the subsequent printing to the client printer. 16. Stress testing. 16.1. Perform session disconnect while the printing is going. Expected result: printing is stopped; after the next connection to the server all client printers are redirected correctly and printing is possible. Client printers are not duplicated in the session. 16.2. Perform session log off while the printing is going. Expected result: printing is stopped; after the next connection to the server all client printers are redirected correctly and printing is possible. 16.3. Restart or reset the TS while the client printers are redirected to the session. As practice shows after that manipulation either the client printers are duplicated in the session or the default printer is shown incorrectly. So we check if all printers are not duplicated and the default printer is shown correctly. 16.4. During the redirection and/or printing process the network cable can be plugged off or the network connection can be switched off. Expected result: printing is stopped; after the next connection to the server all client printers are redirected correctly and printing is possible. ConclusionIn this article I mentioned the most important moments of testing of printer redirection to the terminal session. Of cause you can say that not everything is taken into account and you can propose much more testing scenarios. It’s good and it’s true – I based only on my experience and peculiarities of my projects. I wish you a lot of successful releases! And let your products will be of high quality! |
Dec 16 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||