Sunday, December 16, 2007

Simple Test






A SIMPLE TEST FOR YOU

Which way is the bus below travelling?

To the left or to the right?



Can you make up your mind?

Look carefully at the picture again.

Post your responses in the comments...



Thursday, December 06, 2007

Computer Data Measurements


I found this computer data measurement chart to be very useful and worthy of sharing...


Computer Data Measurement Chart

Data Measurement Chart
Data MeasurementSize
BitSingle Binary Digit (1 or 0)
Byte8 bits
Kilobyte (KB)1,024 Bytes
Megabyte (MB)1,024 Kilobytes
Gigabyte (GB)1,024 Megabytes
Terabyte (TB)1,024 Gigabytes
Petabyte (PB)1,024 Terabytes
Exabyte (EB)1,024 Petabytes

Connection Speed Chart
Internet TechnologyData Rate (per second)Data Rate (per second)Data Rate (per second)Data Rate (per second)
28.8K Modem28.8 Kbps28,800 Bits3,600 Bytes3.5 Kilobytes
36.6K Modem36.6 Kbps36,600 Bits4,575 Bytes4.4 Kilobytes
56K Modem56 Kbps56,000 Bits7,000 Bytes6.8 Kilobytes
ISDN128 Kbps128,000 Bits16,000 Bytes15 Kilobytes
T11.544 Mbps1,544,000 Bits193,000 Bytes188 Kilobytes
DSL512 Kbps to 8 Mbps8,000,000 Bits1,000,000 Bytes976 Kilobytes
Cable Modem512 Kbps to 52 Mbps53,000,000 Bits6,625,000 Bytes6,469 Kilobytes (6.3MB/sec)
T344.736 Mbps44,736,000 Bits5,592,000 Bytes5,460 Kilobytes (5.3MB/sec)
Gigabit Ethernet1 Gbps1,000,000,000 Bits125,000,000 Bytes122,070 Kilobytes (119MB/sec)
OC-25613.271 Gbps13,271,000,000 Bits1,658,875,000 Bytes1,619,995 Kilobytes (1.5GB/sec)

Computer Technology Chart
Computer TechnologyData Rate (per second)Data Rate (per second)Data Rate (per second)Data Rate (per second)
ADB256 Kbps256,000 Bits32,000 Bytes31.2 Kilobytes
USB12 Mbps12,000,000 Bits1,500,000 Bytes1,464 Kilobytes (1.42MB/sec)
USB 2.0480 Mbps480,000,000 Bits60,000,000 Bytes58,593 Kilobytes (57.2MB/sec)
FireWire (a.k.a. "IEEE 1394" or "i.Link")400 Mbps400,000,000 Bits50,000,000 Bytes48,828 Kilobytes (47.6MB/sec)
Ultra ATA/33 (a.k.a. Ultra DMA/33)33 MB/sec
Ultra ATA/66 (a.k.a. Ultra DMD/66 or Fast ATA-2)66 MB/sec
SCSI-15 MB/sec
SCSI-25-10 MB/sec
Fast SCSI-210-20 MB/sec
Wide SCSI-220 MB/sec
Fast Wide SCSI-220 MB/sec
Ultra SCSI-3 (8-bit)20 MB/sec
Ultra SCSI-3 (16-bit)40 MB/sec
Ultra-2 SCSI40 MB/sec
Wide Ultra-2 SCSI80 MB/sec
Ultra-3 SCSI160 MB/sec
Serial ATA (Gen 1)150 MB/sec1.2 Gbps
Serial ATA (Gen 2)300 MB/sec2.4 Gbps
Serial ATA (Gen 3)600 MB/sec4.8 Gbps

Video Format Chart
Video FormatsNTSC Resolution (525 Vertical Lines)
8mm250 Horizontal Lines
VHS250 Horizontal Lines
VHS-C250 Horizontal Lines
Hi8400 Horizontal Lines
S-VHS400 Horizontal Lines
DV500 Horizontal Lines
DVD500 Horizontal Lines

Audio/Video Chart
Audio/Video TechnologyData Rate (per second)Data Rate (per second)Data Rate (per second)Data Rate (per second)
CD1.4112 Mbps1,411,200 Bits176,400 Bytes172 Kilobytes
DVD10 Mbps10,000,000 Bits1,250,000 Bytes1,220 Kilobytes (1.1MB/sec)
DV30.1 Mbps30,195,712 Bits3,774,464 Bytes3,686 Kilobytes (3.6MB/sec)
DLP37 Mbps to 43 Mbps43,000,000 Bits5,375,000 Bytes5,249 Kilobytes (5.2MB/sec)

Data Comparison Chart
Kilobits (Kbps)Bits (bps)Megabits (Mbps)Bytes (Bps)Kilobytes (KBps)Megabytes (MBps)Minutes On 650MB CDMinutes On 4.7GB DVD
2828,0000.0283,5003.410.003343,24524,031
3030,0000.033,7503.660.003583,02922,429
5656,0000.0567,0006.830.006681,62212,015
8080,0000.0810,0009.760.009541,1358,410
100100,0000.112,50012.200.011929086,728
150150,0000.1518,75018.310.017886054,485
200200,0000.225,00024.410.023844543,364
300300,0000.337,50036.620.035763022,242
500500,0000.562,50061.030.059601811,345
800800,0000.8100,00097.650.09537113841
900900,0000.9112,500109.860.10729100747
1,0001,000,0001125,000122.070.1192190672
2,0002,000,0002250,000244.140.2384245336
4,0004,000,0004500,000488.280.4768422168
5,0005,000,0005625,000610.350.5960518134
10,00010,000,000101,250,0001,220.701.19209967
15,00015,000,000151,875,0001,831.051.78814644
30,00030,000,000303,750,0003,662.103.57628322

Friday, November 23, 2007

Guide To Job Interview Answers

Hi,

    Here is a very useful guide for Job Interviews... This is a very good guide, but it is not free... you can buy it online.

 

 

Ultimate Guide To Job Interview Answers

 

"Job Interview? ... How To Answer Any Question An Interviewer Could Possibly Throw At You!"

 

Arm yourself with these Proven Behavioral Interview Answers! ... Use them as templates to "Package & Spin" your work experience so you can demonstrate your critical thinking skills, be more likeable, increase your confidence, uncover the interviewer's hidden needs, and tell them exactly what they want to hear -- So You Get Hired! ...

 

Product Details

·  Format: Guide; 81 pages

·  Publisher: 2007; Job-Interview-Answers.com™

·  ISBN: 146520607

·  Average Customer Review: Based on 24 reviews.

·  "... great interview preparation that really helped me get the job."

 

Click here to for more details on Ultimate Guide To Job Interview Answers

 

 

Winrunner Questions - 5

 
What is the purpose of GUI map configuration?
GUI Map configuration is used to map a custom object to a standard object.

How do you make the configuration and mappings permanent?
The mapping and the configuration you set are valid only for the current WinRunner session. To make the mapping and the configuration permanent, you must add configuration statements to your startup test script
 
What is the purpose of GUI spy?
GUI Spy can be used to view the properties of any GUI object on your desktop. You use the Spy pointer to point to an object, and the GUI Spy displays the properties and their values in the GUI Spy dialog box. You can choose to view all the properties of an object, or only the selected set of properties that WinRunner learns.
 
What is the purpose of obligatory and optional properties of the objects?
For each class, WinRunner learns a set of default properties. Each default property is classified “obligatory” or “optional”.
  • An obligatory property is always learned (if it exists).
  • An optional property is used only if the obligatory properties do not provide unique identification of an object. These optional properties are stored in a list. WinRunner selects the minimum number of properties from this list that are necessary to identify the object. It begins with the first property in the list, and continues, if necessary, to add properties to the description until it obtains unique identification for the object.
 
What is the purpose of location indicator and index indicator in GUI map configuration?
In cases where the obligatory and optional properties do not uniquely identify an object, WinRunner uses a selector to differentiate between them. Two types of selectors are available:
  • A location selector uses the spatial position of objects.
The location selector uses the spatial order of objects within the window, from the top left to the bottom right corners, to differentiate among objects with the same description.
  • An index selector uses a unique number to identify the object in a window.
The index selector uses numbers assigned at the time of creation of objects to identify the object in a window. Use this selector if the location of objects with the same description may change within a window.
 
How do you handle custom objects?
A custom object is any GUI object not belonging to one of the standard classes used by WinRunner. WinRunner learns such objects under the generic “object” class. WinRunner records operations on custom objects using obj_mouse_ statements. If a custom object is similar to a standard object, you can map it to one of the standard classes. You can also configure the properties WinRunner uses to identify a custom object during Context Sensitive testing.
 
 
What is the purpose of different record methods 1) Record 2) Pass up 3) As Object 4) Ignore.
  • Record instructs WinRunner to record all operations performed on a GUI object. This is the default record method for all classes. (The only exception is the static class (static text), for which the default is Pass Up.)
  • Pass Up instructs WinRunner to record an operation performed on this class as an operation performed on the element containing the object. Usually this element is a window, and the operation is recorded as win_mouse_click.
  • As Object instructs WinRunner to record all operations performed on a GUI object as though its class were “object” class.
  • Ignore instructs WinRunner to disregard all operations performed on the class.
 
What are the virtual objects and how do you learn them?
  • Applications may contain bitmaps that look and behave like GUI objects. WinRunner records operations on these bitmaps using win_mouse_click statements. By defining a bitmap as a virtual object, you can instruct WinRunner to treat it like a GUI object such as a push button, when you record and run tests.
  • Using the Virtual Object wizard, you can assign a bitmap to a standard object class, define the coordinates of that object, and assign it a logical name.
      To define a virtual object using the Virtual Object wizard:
  • Choose Tools > Virtual Object Wizard. The Virtual Object wizard opens. Click Next.
  • In the Class list, select a class for the new virtual object. If rows that are displayed in the window. For a table class, select the number of visible rows and columns. Click Next.
  • Click Mark Object. Use the crosshairs pointer to select the area of the virtual object. You can use the arrow keys to make precise adjustments to the area you define with the crosshairs. Press Enter or click the right mouse button to display the virtual object’s coordinates in the wizard. If the object marked is visible on the screen, you can click the Highlight button to view it. Click Next.
  • Assign a logical name to the virtual object. This is the name that appears in the test script when you record on the virtual object. If the object contains text that WinRunner can read, the wizard suggests using this text for the logical name. Otherwise, WinRunner suggests virtual_object, virtual_push_button, virtual_list, etc.
    You can accept the wizard’s suggestion or type in a different name. WinRunner checks that there are no other objects in the GUI map with the same name before confirming your choice.
 

Monday, November 19, 2007

Winrunner Questions - 4


How do you find an object in a GUI map?
The GUI Map Editor is been provided with a Find and Show Buttons.
  • To find a particular object in the GUI Map file in the application, select the object and click the Show window. This blinks the selected object.
  • To find a particular object in a GUI Map file click the Find button, this gives the option to select the object. When the object is selected, if the object has been learned to the GUI Map file it will be focused in the GUI Map file.

How does WinRunner handle varying window labels?
We can handle varying window labels using regular expressions. WinRunner uses two “hidden” properties in order to use regular expression in an object’s physical description. These properties are regexp_label and regexp_MSW_class.

  • The regexp_label property is used for windows only. It operates “behind the scenes” to insert a regular expression into a window’s label description.
  • The regexp_MSW_class property inserts a regular expression into an object’s MSW_class. It is obligatory for all types of windows and for the object class object.

What is the purpose of regexp_label property and regexp_MSW_class property?
  • The regexp_label property is used for windows only. It operates “behind the scenes” to insert a regular expression into a window’s label description.
  • The regexp_MSW_class property inserts a regular expression into an object’s MSW_class. It is obligatory for all types of windows and for the object class object.

How do you suppress a regular expression?
We can suppress the regular expression of a window by replacing the regexp_label property with label property.


How do you copy and move objects between different GUI map files?
We can copy and move objects between different GUI Map files using the GUI Map Editor. The steps to be followed are:
  • Choose Tools > GUI Map Editor to open the GUI Map Editor.
  • Choose View > GUI Files.
  • Click Expand in the GUI Map Editor. The dialog box expands to display two GUI map files simultaneously.
  • View a different GUI map file on each side of the dialog box by clicking the file names in the GUI File lists.
  • In one file, select the objects you want to copy or move. Use the Shift key and/or Control key to select multiple objects. To select all objects in a GUI map file, choose Edit > Select All.
  • Click Copy or Move.
  • To restore the GUI Map Editor to its original size, click Collapse

How do you clear a GUI map files?

We can clear a GUI Map file using the “Clear All” option in the GUI Map Editor.

How do you filter the objects in the GUI map?
GUI Map Editor has a Filter option. This provides for filtering with 3 different types of options.
  • Logical name displays only objects with the specified logical name.
  • Physical description displays only objects matching the specified physical description. Use any substring belonging to the physical description.
  • Class displays only objects of the specified class, such as all the push buttons.

Thursday, November 15, 2007

Winrunner Questions - 3


What do you mean by the logical name of the object?
An object’s logical name is determined by its class. In most cases, the logical name is the label that appears on an object.

What is the different between GUI map and GUI map files?

1) The GUI map is actually the sum of one or more GUI map files. There are two modes for organizing GUI map files.

  • Global GUI Map file: a single GUI Map file for the entire application
  • GUI Map File per Test: WinRunner automatically creates a GUI Map file for each test created.

2) GUI Map file is a file which contains the windows and the objects learned by the WinRunner with its logical name and their physical description.

How do you view the contents of the GUI map?
GUI Map editor displays the content of a GUI Map. We can invoke GUI Map Editor from the Tools Menu in WinRunner. The GUI Map Editor displays the various GUI Map files created and the windows and objects learned in to them with their logical name and physical description.

What is set_window command?

Set_Window command sets the focus to the specified window. We use this command to set the focus to the required window before executing tests on a particular window.

Syntax: set_window(, time);
The logical name is the logical name of the window and time is the time the execution has to wait till it gets the given window into focus.

How do you load GUI map?
We can load a GUI Map by using the GUI_load command.

Syntax: GUI_load(<file_name>);

What is the disadvantage of loading the GUI maps through start up scripts?

  • If we are using a single GUI Map file for the entire AUT then the memory used by the GUI Map may be much high.
  • If there is any change in the object being learned then WinRunner will not be able to recognize the object, as it is not in the GUI Map file loaded in the memory. So we will have to learn the object again and update the GUI File and reload it.
What happens when you load GUI map?
When we load a GUI Map file, the information about the windows and the objects with their logical names and physical description are loaded into memory. So when the WinRunner executes a script on a particular window, it can identify the objects using this information loaded in the memory.

How do you unload the GUI map?
We can use GUI_close to unload a specific GUI Map file or else we call use GUI_close_all command to unload all the GUI Map files loaded in the memory.

Syntax: GUI_close(<file_name>); or GUI_close_all;

What is the purpose of the temp GUI map file?
While recording a script, WinRunner learns objects and windows by itself. This is actually stored into the temporary GUI Map file. We can specify whether we have to load this temporary GUI Map file should be loaded each time in the General Options.

What is the extension of gui map file?
The extension for a GUI Map file is “.gui”.

Wednesday, November 07, 2007

Winrunner Questions - 2

How can we perform debugging of the scripts?
We can debug the script by executing the script in the debug mode. We can also debug script using the Step, Step Into, Step out functionalities provided by the WinRunner.

How do you run your test scripts?
Test scripts can be run in Verify mode to test your application. Each time WinRunner encounters a checkpoint in the test script, it compares the current data of the application being tested to the expected data captured earlier. If any mismatches are found, WinRunner captures them as actual results.

How do you analyze results and report the defects?
Following each test run, WinRunner displays the results in a report. The report details all the major events that occurred during the run, such as checkpoints, error messages, system messages, or user messages. If mismatches are detected at checkpoints during the test run, you can view the expected results and the actual results from the Test Results window. If a test run fails due to a defect in the application being tested, you can report information about the defect directly from the Test Results window. This information is sent via e-mail to the quality assurance manager, who tracks the defect until it is fixed.

What is the use of Test Director?
TestDirector is Mercury Interactive’s software test management tool. It helps quality assurance personnel plan and organize the testing process. With TestDirector you can create a database of manual and automated tests, build test cycles, run tests, and report and track defects. You can also create reports and graphs to help review the progress of planning tests, running tests, and tracking defects before a software release.

How do you integrate your automated scripts from TestDirector?
When you work with WinRunner, you can choose to save your tests directly to your TestDirector database or while creating a test case in the TestDirector we can specify whether the script in automated or manual. And if it is automated script then TestDirector will build a skeleton for the script that can be later modified into one which could be used to test the AUT.

What is the purpose of loading WinRunner Add-Ins?
Add-Ins are used in WinRunner to load functions specific to the particular add-in to the memory. While creating a script only those functions in the add-in selected will be listed in the function generator and while executing the script only those functions in the loaded add-in will be executed else WinRunner will give an error message saying it does not recognize the function.

What are the reasons that WinRunner fails to identify an object on the GUI?
WinRunner fails to identify an object in a GUI due to various reasons.

  • The object is not a standard windows object.
  • If the browser used is not compatible with the WinRunner version, GUI Map Editor will not be able to learn any of the objects displayed in the browser window.

Saturday, October 27, 2007

Interesting Java puzzles

I came across a set of interesting java puzzles... Do share your views/results on these.

  1. public class StringTest
    {
    public static void main(String[] args){
    foo();
    bar();
    }
    public static void foo(){
    String s = "str4";
    String s1 = "str" + s.length();
    System.out.println("(s==s1) = " + (s1==s));
    }
    public static void bar(){
    String s = "str4";
    String s1 = "str" + "4";
    System.out.println("(s==s1) = " + (s1==s));
    }
    }

  2. public class Assignment {
    public static void main(String[] a){
    int count = 0;
    for (int i = 0; i < 3; i++)
    count += count++;
    System.out.println(count);
    }
    }

  3. class StaticTest {
    static { initIfNecessary(); }

    private static int sum;

    public static int getSum() {
    initIfNecessary();
    return sum;
    }

    private static boolean initialized = false;

    private static synchronized void initIfNecessary() {
    if (!initialized) {
    for (int i = 0; i < 100; i++)
    sum += i;
    initialized = true;
    }
    }
    public static void main(String[] args) {
    System.out.println(getSum());
    }
    }

  4. package click;
    public class CodeTalk {
    public void doIt() { printMessage(); }
    void printMessage() { System.out.println("Click"); }
    }
    ------------------
    package hack;
    import click.CodeTalk;
    public class TypeIt {
    private static class ClickIt extends CodeTalk {
    void printMessage() { System.out.println("Hack"); }
    }
    public static void main(String[] args) {
    new ClickIt().doIt();
    }
    }


  5. public class Lazy {
    private static boolean initialized = false;
    static {
    Thread t = new Thread(new Runnable() {
    public void run() {
    initialized = true;
    }
    });
    t. start();
    try {
    t.join();
    } catch (InterruptedException e) {
    throw e.printStackTrace();
    }
    }

    public static void main(String[] args) {
    System.out.println(initialized);
    }
    }
 

Wednesday, October 17, 2007

WinRunner Questions... 1

Winrunner is Automation Test Tool for Software Testing. Here are some of the most frequently asked Questions and their Answers on Winrunner.

WinRunner testing process?

WinRunner testing process involves six main stages

  • Create GUI Map File so that WinRunner can recognize the GUI objects in the application being tested
  • Create test scripts by recording, programming, or a combination of both. While recording tests, insert checkpoints where you want to check the response of the application being tested.
  • Debug Test: run tests in Debug mode to make sure they run smoothly
  • Run Tests: run tests in Verify mode to test your application.
  • View Results: determines the success or failure of the tests.
  • Report Defects: If a test run fails due to a defect in the application being tested, you can report information about the defect directly from the Test Results window.

What is contained in the GUI map?
WinRunner stores information it learns about a window or object in a GUI Map. When WinRunner runs a test, it uses the GUI map to locate objects. It reads an object’s description in the GUI map and then looks for an object with the same properties in the application being tested. Each of these objects in the GUI Map file will be having a logical name and a physical description.

There are 2 types of GUI Map files.

  • Global GUI Map file: a single GUI Map file for the entire application
  • GUI Map File per Test: WinRunner automatically creates a GUI Map file for each test created.

How does WinRunner recognize objects on the application?
WinRunner uses the GUI Map file to recognize objects on the application. When WinRunner runs a test, it uses the GUI map to locate objects. It reads an object’s description in the GUI map and then looks for an object with the same properties in the application being tested.

How does WinRunner evaluates test results?
Following each test run, WinRunner displays the results in a report. The report details all the major events that occurred during the run, such as checkpoints, error messages, system messages, or user messages. If mismatches are detected at checkpoints during the test run, you can view the expected results and the actual results from the Test Results window.

What is contained in the test scripts?
The test scripts contain the statement in Mercury Interactive’s Test Script Language (TSL). These statements appear as a test script in a test window. You can then enhance your recorded test script, either by typing in additional TSL functions and programming elements or by using WinRunner’s visual programming tool, the Function Generator.

Thursday, September 20, 2007

Software Testing Best Practice Award


An email I received from IIST

===================================================

The International Institute for Software Testing is
giving away FIFTY days of free training.

Up to TEN companies may win. Each company will get Five
days of free training.

Apply for the IIST's Software Testing Best Practice Award
at
http://www.iist.org/bestpractice and receive the following benefits:

**** Get your company featured as an Award Winning Company
In all IIST publicity channels and press releases
**** Tell everyone how great your test process is
**** Get 5 days of free training at the International
Testing Certification Super Week to be held in
Las Vegas, NV, November 26-30, 2007
Chicago, IL, March 24-28, 2008
See details at
http://iist.org/superweek
**** Get your company and your test team recognized and identified
as an Award Winning Team during these remarkable events


The International Testing Certification Super Week will be
held in the following cities:

Las Vegas, NV, November 26-30, 2007
Chicago, IL, March 24-28, 2008

During these events, IIST will offer 25 Full day
in-depth courses taught by Leading Industry Experts
in Software Testing & Quality.

**** Register by September 30th, and save 20% (Las Vegas)
See details at:
http://www.iist.org/stpw/lasvegas/index.php

**** Register by December 31st, 2007 and save 30% (Chicago)
See details at:
http://www.iist.org/stpw/chicago08/index.php

===================================================

Tuesday, September 11, 2007

Requirements Testing

Testing software is an integral part of building a system. However, if the software is based on inaccurate requirements, then despite well written code, the software will be unsatisfactory. Most of the defects in a system can be traced back to wrong, missing, vague or incomplete requirements.

Requirements seem to be ephemeral. They flit in and out of projects, they are capricious, intractable, unpredictable and sometimes invisible. When gathering requirements we are searching for all of the criteria for a system's success. We throw out a net and try to capture all these criteria.

The Quality Gateway

As soon as we have a single requirement in our net we can start testing. The aim is to trap requirements-related defects as early as they can be identified. We prevent incorrect requirements from being incorporated in the design and implementation where they will be more difficult and expensive to find and correct.

To pass through the quality gateway and be included in the requirements specification, a requirement must pass a number of tests. These tests are concerned with ensuring that the requirements are accurate, and do not cause problems by being unsuitable for the design and implementation stages later in the project.

Make The Requirement Measurable

In his work on specifying the requirements for buildings, Christopher Alexander describes setting up a quality measure for each requirement.

"The idea is for each requirement to have a quality measure that makes it possible to divide all solutions to the requirement into two classes: those for which we agree that they fit the requirement and those for which we agree that they do not fit the requirement."

In other words, if we specify a quality measure for a requirement, we mean that any solution that meets this measure will be acceptable. Of course it is also true to say that any solution that does not meet the measure will not be acceptable.

The quality measures will be used to test the new system against the requirements. The remainder of this paper describes how to arrive at a quality measure that is acceptable to all the stakeholders.

Quantifiable Requirements

Consider a requirement that says "The system must respond quickly to customer enquiries". First we need to find a property of this requirement that provides us with a scale for measurement within the context. Let's say that we agree that we will measure the response using minutes. To find the quality measure we ask: "under what circumstances would the system fail to meet this requirement?" The stakeholders review the context of the system and decide that they would consider it a failure if a customer has to wait longer than three minutes for a response to his enquiry. Thus "three minutes" becomes the quality measure for this requirement.

Any solution to the requirement is tested against the quality measure. If the solution makes a customer wait for longer than three minutes then it does not fit the requirement. So far so good: we have defined a quantifiable quality measure. But specifying the quality measure is not always so straightforward. What about requirements that do not have an obvious scale?

Non-quantifiable Requirements

Suppose a requirement is "The automated interfaces of the system must be easy to learn". There is no obvious measurement scale for "easy to learn". However if we investigate the meaning of the requirement within the particular context, we can set communicable limits for measuring the requirement.

Again we can make use of the question: "What is considered a failure to meet this requirement?" Perhaps the stakeholders agree that there will often be novice users, and the stakeholders want novices to be productive within half an hour. We can define the quality measure to say "a novice user must be able to learn to successfully complete a customer order transaction within 30 minutes of first using the system". This becomes a quality measure provided a group of experts within this context is able to test whether the solution does or does not meet the requirement.

An attempt to define the quality measure for a requirement helps to rationalise fuzzy requirements. Something like "the system must provide good value" is an example of a requirement that everyone would agree with, but each person has his own meaning. By investigating the scale that must be used to measure "good value" we identify the diverse meanings.

Sometimes by causing the stakeholders to think about the requirement we can define an agreed quality measure. In other cases we discover that there is no agreement on a quality measure. Then we substitute this vague requirement with several requirements, each with its own quality measure.

Requirements Test 1

Does each requirement have a quality measure that can be used to test whether any solution meets the requirement?

By adding a quality measure to each requirement we have made the requirement visible. This is the first step to defining all the criteria for measuring the goodness of the solution. Now let's look at other aspects of the requirement that we can test before deciding to include it in the requirements specification.

Requirements Test 2

Does the specification contain a definition of the meaning of every essential subject matter term within the specification?

When the allowable values for each of the attributes are defined it provides data that can be used to test the implementation.

Requirements Test 3

Is every reference to a defined term consistent with its definition?

Requirements Test 4

Is the context of the requirements wide enough to cover everything we need to understand?

Requirements Test 5

Have we asked the stakeholders about conscious, unconscious and undreamed of requirements?

Requirements Test 5 (enlarged)

Have we asked the stakeholders about conscious, unconscious and undreamed of requirements? Can you show that a modelling effort has taken place to discover the unconscious requirements? Can you demonstrate that brainstorming or similar efforts taken place to find the undreamed of requirements?

Requirements Test 6

Is every requirement in the specification relevant to this system?

Requirements Test 7

Does the specification contain solutions posturing as requirements?

Requirements Test 8

Is the stakeholder value defined for each requirement?

Requirements Test 9

Is each requirement uniquely identifiable?

Requirements Test 10

Is each requirement tagged to all parts of the system where it is used? For any change to requirements, can you identify all parts of the system where this change has an effect?

Conclusions

The requirements specification must contain all the requirements that are to be solved by our system. The specification should objectively specify everything our system must do and the conditions under which it must perform. Management of the number and complexity of the requirements is one part of the task.

The most challenging aspect of requirements gathering is communicating with the people who are supplying the requirements. If we have a consistent way of recording requirements we make it possible for the stakeholders to participate in the requirements process. As soon as we make a requirement visible we can start testing it. and asking the stakeholders detailed questions. We can apply a variety of tests to ensure that each requirement is relevant, and that everyone has the same understanding of its meaning. We can ask the stakeholders to define the relative value of requirements. We can define a quality measure for each requirement, and we can use that quality measure to test the eventual solutions.

Testing starts at the beginning of the project, not at the end of the coding. We apply tests to assure the quality of the requirements. Then the later stages of the project can concentrate on testing for good design and good code. The advantages of this approach are that we minimise expensive rework by minimising requirements-related defects that could have been discovered, or prevented, early in the project's life.

References:

An Early Start to Testing: How to Test Requirements
Suzanne Robertson

Wednesday, September 05, 2007

Testing Webinar

I came to know about the EuroSTAR Webinar which is schduled for Wednesday, 5th September! I think the topic is:
An Introduction to Testing on Agile Teams – The Practices & Beyond: presented by Antony Marcano, testingReflections.com, UK.

More Details follow:
======================
Date: Wednesday, 5th September, 2007
Time: 10:00 am London-Dublin / 11:00am CET
Duration: 30 minutes

Abstract: An increasing number of organisations are considering, or are in the process of, adopting Agile software development practices. Often, how testers integrate into this process is an afterthought. Worse still, organisations assume that it changes nothing about how testers function and operate. This couldn’t be further from the truth. In fact, a capable Agile team can change the very raison d’etre of a tester in all the ways that testers have often hoped for. No longer does the tester *need* to be the gatekeeper of quality; the whole development team cares about quality like never before. No longer are testers at the end of the process; testers are involved from the outset of the project!

During this webinar, Antony discusses:

Key Points
• What is it that makes a team ‘Agile’? – Practices such as Test Driven Development are a reflection of underlying values and goals. It’s the adoption of these values and goals that allows a team to gain the greatest benefit from adopting an Agile approach to software development.

• What are the common ‘Gotchas’ for testers on Agile teams? – For example, extraordinarily short iterations producing software with end-to-end features can catch out many testing teams. This is especially true if the test team is used to being segregated from the developers as a separate team and/or rely on large amounts of manually executed scripted tests.

• What role do testers play and how can you deliver the most value? – Your primary role is no longer just to inform the project of how the software doesn’t work, but to be a welcomed guide who helps, before the first line of code is written, to make sure that the software does work.

Register Here - http://qualtechconferences.arobis.com/content.asp?id=246

Monday, September 03, 2007

Best Practices... 2

... Continued from previous post.
 
 
  1. Plan real life resource intensive tasks in advance and procure resources accordingly

Some applications may require processing large number of data for final output. During

functional testing of such applications, for quick results, a tester keeps on doing testing with

small set of data, which may take very less time. But user of that application will work with real

data, which may take significant time. A QE should process real time data that requires

application long time to process the data. Testing such cases in the end is not good idea. A

failure for long duration run is difficult to isolate. Isolating of such bugs is time consuming

activities. In the end of cycle such bugs will create panic and may delay major milestone.

Proper planning should be done to ensure smooth testing for long duration tests.

 

  1. Test smartly

As the project/product becomes more and more complex, testing becomes a bigger challenge.

It is indeed impossible to test each and every scenario. Hence there is a need to test smartly.

Some of the smart testing approaches that one can adopt are:

a) Catching them early

One important thing to remember is to catch the bugs as early as possible in the life cycle.

The cost of fixing a bug early in the cycle is very less in comparison to the bug logged late in the

cycle.

b) 80-20 rule

This law states that eighty percent of the functionality should be covered in twenty percent of the

test cases. This method is a very handy resource of saving time and helps to cover the most

important scenarios as fast as possible.

c) Automation

Automation helps a lot in covering a lot of regression features thereby reducing the overhead of

the test team to test out the old features. Automation saves the tester time and can do repeated

tasks over and over again.

 

  1. Sanity testing on every build

The sanity testing is very important and after every check-in, the sanity needs to be run.

Sometimes a change in one module may affect the other modules as such and also the entire app/product.

Sanity on every check-in/change will ensure that the basic things are working fine.

The issue with sanity is how many tests and which tests are you going to cover in the sanity pack.

The sanity pack should contain at least one test from all the features.

  1. Feature sweep, Compatibility sweep etc for every feature.

a)Feature sweep

Feature sweep covers basic test cases of functionality. For every major milestone, these test

cases should be executed to ensure that functionality is not broken.

b) Compatibility Sweep

There are many features that require test cases for multiple hardware platforms,

Operating System among others. For a application that is supported on multiple OS (e.g.

Windows, Mac OS), different hardware configuration (AMD, Intel, Dual processor, hyper

threaded machine, different RAM etc.) and hardware (e.g. different printer for printing

application) such sweeps are very important.

 

 

  1. Proper documentation

Documentation is a very wide term and includes any kind of written communication that helps the

project in sailing through. Documentation can be classified into four broad categories:

1) From the developers point of view

• Feature spec

• Design document

• Commenting

2) From the testing point of view

• Test plan

• Test script

• Execution matrix

• Resource planning document

• QA plan, among others

3) Documentation meant for the external users.

• User guide

• Help files

• Readme documents

4) Project management and Product management

• Requirement Specs

• Project Schedule

As a good Quality Engineer one should try to do the right amount of documentation ensuring that

the documentation helps smooth execution of the project and also helps to catch bugs early in

the cycle. Also the QE should make sure that the Developer has done the proper documentation

and if not the QE should follow up with the developer to get it done.

 

Thursday, August 09, 2007

Product Review: ManagerAssistant


Following is my review of the product "ManagerAssistant"

ManagerAssistant.com is a company which develops Workforce Management Software.




One of its products is titled the same, i.e. the product is named ManagerAssistant.


The current version of this product is 3.0. A detailed description of the product is available here - http://www.managerassistant.com/products.html
If you just feel like going through a tour, the link goes here - http://www.managerassistant.com/tour.html


What is ManagerAssistant?
To put it in simple words, ManagerAssistant is a software that helps managers for employee management.

This software empowers managers to track, evaluate, and control the behavior, performance, and activities of employees.

From a single application, ManagerAssistant software addresses the following workforce management processes and activities:

Employee review
Employee information tracking and monitoring
Hiring and recruitment
Employee evaluation
Employee attendance tracking
Employee appraisal
Vacation tracking
Incident tracking
Paid time off tracking
Employee goals
Employee training & development administration
Employee HR detailed info


Free Demo Download.

There is a free demo download available; unfortunately, this requires you to register. This may not be such a good idea where you force upon the visitors to register to download a demo.

Anyways, I can tell you a hack how to avoid the registration.

This is a php website and you can directly use this link to download the demo without registering - http://www.managerassistant.com/download.php

The download was very slow(at least for me) - it took almost an hour to download the exe file.
















You did better use Download Accelerator Plus(DAP), which is available here for free - http://www.speedbit.com/

Using DAP I was able to download in almost 5-7 mins. The file is approx 111 MB.
System Requirements

- Operating System: Microsoft® Windows® Vista, XP Home/Pro, Microsoft Windows 2000 SP4 Pro, or Microsoft Windows Server 2003
- Intel Pentium® or compatible processor (700 MHz or greater)
- 512 MB RAM or greater
- 150 MB disk space
- SVGA with 256 colors (1024 x 768 with 16-bit color recommended)
Installation

Double click the executable and the installer opens up, the follow up is pretty simple. Unfortunately, the installer does not give me the option of choosing the installation directory.
The files are installed under C:\Program Files\ManagerAssistant.com\ManagerAssistant 3.0\

There is only a windows version of this product, they do not have a Linux or anything else.

If you have an earlier version of ManagerAssistant, you can even migrate the data to the new version.




Once the Installation is over, just double click on the icon to open the application.

The front page shows up like below.





Reminders: There is a set of reminders on the left hand side, you can even view only the reminders that were set by you alone.

You can view reminders for 1. For the day 2. For the week 3. For the Month

Also present is a calendar with the current date highlighted.

CheckList: Here you can add any number of folders and TO-DO list. The Completed items appear in Blue color, Pending items in Green and Overdue items in Red.

Employees Tab:

This is a very useful tab and gives the complete information of the employee.

Just right click on the right taq and you get the list of columns.




There are a total of pre-defined 79 columns and you can select/deselect these columns.

Unfortunately, there is no way to add your own columns. And you cannot re-name these columns.

You can add/edit/delete an employee record and the best of these I think is the "email as pdf" feature. This will email the emp record in a pdf.

You can filter the records, There are a variety of reports which are very good.
The data can be exported in the form of grid in 4 types - XML, HTML, Text, XLS


Attendance Tab

This is another important tab in the product. Very helpful to track the attendance of the employees.

This can be very useful when the you have employees who are employed part-time as well as full-time.

There are 4 sub tabs
1. Calendar View
2. Table View
3. Attendance overview
4. Employee Year View

The salient features here include:
a. You can select the columns to view.
b. You can sort the columns.
c. Adding an attachment to the details is allowed.
d.
Allows marking for different types of attendance out reasons like: bereavement, maternity, medical, sick, late/tardy, vacation, comp time, military duty, floating, jury duty and more.
Never a days the employee attendance is recorded by the magnetic swiping of the emp ID card at the entrance door.

It would be great if this applicaiton can be import data on a day to day basis from the the server. May be that needs a plugin or something to be added to acheive that???

Here is a report for attendance I created. This is Bar Graph created from the existing data.







Performance Review Tab

This can be used to produce reviews of employees within a short time, no need of storing the data in word formats etc...

You can send out reminder emails as well and there is self calculating ratings. You can modify the ratings and change the categories, weighted averages etc.

Also other features include - spell check, thesaurus, email as pdf, print hte reviews.

Below is a snapshot of the Review details.






The Goals Tab

This can be used to create a set of goals for the employees which they need to accomplish over a period of time. One advantage here is you can keep track of the progress of the employees.

This is how the goals tab looks like.




The Incidents Tab

Helps you to keep track of any incident that happened. This can be any good or bad incident.

You can add an attachment, Also note the plan of action.

The accomplishments Tab

Whenever an employee acheives something, you need to keep track of that, lest you may forget. The managers need to keep track of all the employees and they may forget the employee acheivements.

This tool can be very useful to keep track of the accomplishments and the employees who accomplish something great should be given bonus.

The Training Tab

Helpful in keeping track of the training a candidate takes during his employment.


The Recruitment Tab

This is helpful in recruiting.

1. you can enter the data of the candidates applying.

2. If he is selected, you can convert him into an employee - should add the employee data at the time.

But what I was looking for here the flow of recruitment process. Like when 1st round of interview is over, he(first interviewer) should be able to transfer the candidate to the second interviewer.

And then the next interviewer. Unfortunately this is missing. Generally this process is very tedious and people send emails. An application would be good.

The Expenses Tab

You can add your expenses reports here.

Customers

Here is a list of customers including which ManagerAssistant has.


Pricing
Single-User Edition Version3.0 $395.00
Network/Multi-User Edition Version 3.0 Starting at $895.00

Documentation:


The help and documentation provided with the app is very good.


Un-installation

They do not provide a un-installer link in the start - programs menu. Nor do they provide a unistall.exe in the installed directory.

You need to go to the control panel to unistall the product.


Summary


The website of ManagerAssistant is good, but it would be good if they can come up with something better. I was able to download the app by-passing the registration form.


ManasgerAssistant is a good application, with a lot of features all integrated. I found the “Employee” tab and the “Performance Review” tabs very useful. The attendance tab is also good but I was wondering if there was an integration with the swiping card attendance. If there can be a way by which we can integrate the attendance with the app, then the time-in, time-out of the employees can be noted and also the attendance. Also there should be a way by which the employees can apply for vacation through the intranet, and the app should update itself automatically.


Definitely this is a very good app for the Managers and can save a lot of time and imporve the productivity.


===============================

Disclaimer: Do not make a purchase based on this review; I suggest you to Download ManagerAssistant, test it for a few days and see if you like it yourself.


This is a sponsored review; Do you want your product to be reviewd? Check out ReviewMe