Monday, January 28, 2013

HTML (HyperText Markup Language) Quiz

HTML5 is the upcoming HTML standard. It introduces a number of new features like built-in video support, geolocation, drawing and so on. It also integrates XHTML, CSS and JavaScript. Check your awareness of HTML5 with this short quiz which is created using HTML5. Each question has one best answer. Your score will always be visible in the bottom left. Please use the latest version of an A-class browser like Chrome, Firefox or Internet Explorer to view this post. The latest versions of these browsers already implement a lot of HTML5 features.

Wednesday, January 23, 2013

Software Testing Effort Estimation: Questions and Answers

Software test effort estimation is a key skill required of a Test Manager (for multiple projects), a Test Lead (for the activities of the testing team) or a Tester (for own activities). In this post, I will not explain what software test effort estimation is or how to do it. If you need to know these things, view my video on Test Estimation techniques, formula example and Questions and Answers

In this post, I will pose relevant questions regarding effort estimation in software testing. These questions are useful to guide yourself when you do estimation. They help clarify thoughts during discussions among project stakeholders. Also, these questions are useful in interviews for various testing positions. I have also discussed these questions and their answers in the above video on Test Effort Estimation.

Now, you may know that once the effort estimates are agreed, there is a (sometimes unsaid) expectation of commitment to these estimates. Therefore, generating a fair effort estimate in software testing is a serious task. Get the effort estimate loose and the resources and time would be under-utilized. Get the effort estimate too tight and there is a risk of stressing the resources and, in extreme cases, even failure to meet project deadlines. With this in mind, let us see the questions.

1. What data would you gather and analyze before starting test effort estimation?
I would need the scope of work (i.e. the size of the system, types of testing required, test strategy, planned test cycles, "non-test" activities e.g. test data generation, defect logging and tracking, triage meetings etc.). The scope of work is better defined in a Work Breakdown Structure (WBS) for the project. Also I would need historical data of similar projects (as similar as possible in size, development life cycle, technology and team composition). This history data may be available in the company records or can be gathered from the team who worked in the similar project.
It is quite possible, in fact common, for some of the above data to be not available. But in any case, the scope of the work should be defined and agreed by the stakeholders (i.e. the client/ business, management and the project team) before test effort estimation is done.

2. What approach would you use to create a test effort estimate?
There are several approaches that can I can use for test effort estimation. It depends on the available data and the time in hand to generate the estimates (which, in turn, may or may not affect the accuracy of the estimates). Some of the common effort estimation approaches include the using the software size, using the WBS (include "non-test" activities in the WBS, if missing), use project history data or if available, use the company's estimation software and estimation models. If (some of) the above data is not available, I could use my expert judgment (or judgment of more than one person). It is better to use at least two approaches. This way, I can see and address any obvious problems in the effort estimate.

3. Which approach would you prefer if the test effort estimates are needed quickly?
There may be business situations requiring estimates to be generated quickly. In such a case, I would prefer estimating activities at a summary/ group level. Then use another estimation approach to know if the estimates seem okay. Further, I would add some buffer, of say 5%, of overall effort, to use just in case there are unforeseen tasks to perform in the test.

4. Which approach would you use to get accurate test effort estimates (for example, as required by a services company to quote in a fixed bid project)?
If possible, I would like to use the bottom-up approach for creating effort estimates for all tasks in the WBS. The individual effort estimates roll up to give the effort estimates for each group task. In order to refine the effort estimates further, some work items may be sampled and then executed. The actual effort spent on performing these work items can be used to improve the effort estimates.

5. What is the two-estimate approach?
It is possible that the client has a fixed budget for which they can be billed. Internally, the contracting person or company may have reasons to work more hours than for which they bill the client. In such a case, the effort estimates with the client and the contracting person/ company would be different.

6. What data would you analyze to confirm or revise your test effort estimate?
I would gather and analyze the actual time data logged by the team members against project tasks. It's quite possible that the team spends more or less time than estimated on individual project tasks. The reasons for doing so should be understood so that effort estimates of similar tasks yet to be performed can be refined, if required.

7. Is any supporting data required with your test effort estimate?
It is not possible to get buy-in for an effort estimate without giving the estimation approach used. Therefore, I would outline the effort estimation approaches used to generate and support the estimates. Further, I would provide the assumptions used while creating the estimates.

8. What risks do you see to render a test effort estimate inaccurate?
There are an infinite number of risks that could throw an effort estimate off. But the important risks include scope risks (e.g. important activities missed in estimation, feature creep, last minute system changes), resource risks (e.g. resource not committed to the project or not productive), quality risks (e.g. build rejects) and technical risks (e.g. test environment not available, test deliverables not accepted).
Despite risk mitigation measures in the testing risk management plan, if a particular risk turns true it should be communicated to the project stakeholders. It is possible that someone within the team or outside it has a solution to this issue. If there is no solution, the team has to absorb the risk impact.

9. When would you revise the test effort estimates?
I would revise the estimates Whenever there are material changes in the project. Examples of such changes are scope changes (e.g. new features added to the system under test, new types of testing like load testing needed) and resource changes (e.g. team member replaced in the team).

10. How do you improve your estimation skills?
Like other skills, practice makes perfect. Comparing effort estimate data and actual effort data leads to continuous improvement. A big opportunity for improvement is project reviews (gate/ phase-end reviews and project completion reviews). Lastly, my estimation skills improve with doing estimation on more and more projects.

Image courtesy of imagerymajestic /

Sunday, January 20, 2013

JavaScript Quiz Part 1

As you know, JavaScript is a very popular programming language used to create interactive websites. Also, much test automation is also written in JavaScript. Attempt this quiz to find out how well you know JavaScript and see how many questions you are able to answer correctly.

1. In javascript, what happens when two functions call each other recursively?
Javascript error
The two functions keep calling each other endlessly.
The recursive calls stop after some time.
The browser displays an alert asking the user to decide if the recursive calls should continue or not.

2. What is the result of applying an arithmetic operator on a string?
Javascript error
The program execution stops at the error.

3. How do you reduce the time it takes a javascript switch statement to execute?
Write all possible cases for the expression.
Write a break statement after every case.
Include a default.
Change the value of the expression within every case.

4. What is the difference between == and === operators in javascript?
There is no === operator in javascript.
There is no difference between the two.
== compares the value but === assigns first and then compares the value so it always returns true.
== compares only the value but === compares both the value and the datatype.

5. What happens when a javascript function is called with extra parameters? For example, the function is defined with 2 parameters but is invoked with 3 parameters.
All the extra parameters at the end are ignored.
All the parameters are turned undefined.
Javascript error
All the extra parameters at the beginning are ignored.

6. Which javascript loop runs at least once?
for loop
for in loop
while loop
do while loop

7. What is the result of running the following loop?
var i=1;
for(;;) {
if (i>5) {break;}
Javascript error in the for statement

8. In javascript, what is the preferred way of creating just one instance of a user-defined object?
createObject function
Object constructor function
Object initializer
You cannot create user-defined objects in javascript

9. The concat method does which of the following tasks in javascript?
Creates a new array joining two or more existing arrays
Appends one array to another array
Appends one or more arrays to an array
Concatenates all the strings in the array elements

10. In javascript, the elements of an associative array can be referred by their number index. True or false?
Please now go to the Part 2 of this JavaScript Quiz by clicking here.

Friday, January 18, 2013

Automation Criteria - Which test cases take less effort to automate?

In software testing, test automation involves automatic execution by your computing device of test cases which would otherwise be executed manually by a tester. Obviously, test automation has to be created for such test cases before automated execution can be done. If you have limited time (as always) to create test automation, you may be wondering which of your test cases you could automate with the least effort. The purpose of this post is to make you aware of several considerations before you select the test cases for test automation. But first, let us see how test automation works.

Wednesday, January 16, 2013

HTML and CSS Quiz Part 2

If you haven't done so, learn HTML, CSS and SEO first. Then attempt this second and final part of the quiz on HTML (HyperText Markup Language) and CSS (Cascading Style Sheets). If you have not answered the part 1 of this quiz, attempt that here first. Most of the questions below have just one correct answer. See how many of your answers are green :)

1. Which attribute(s) is used to define the size of a TEXTAREA?
rows, cols
height, width

2. Which input type is used to create a Browse button?

3. In CSS, which tag can be used to style multiple elements all at once?

4. In CSS, which prefix is used before the class selector?
No prefix is required

5. Which of these CSS selectors for a paragraph is (are) INCORRECT?

6. Which position places an element down and left to its normal position?

7. Which position places an element so that it stays in place even when the web page is scrolled?

8. How are external stylesheets (styles applied to multiple web pages) written?
As regular HTML documents with <HTML>, <HEAD> <STYLE> and <BODY> tags
With only the <STYLE> tag
With only the specific styles

9. If there is a conflict between the style defined in an external stylesheet and that defined within the web page, which style is applied to the element?
The bottom most style is applied
The style defined within the web page is applied
The style defined in the external stylesheet is applied

10. Which of these attributes of a FORM tag is(are) INCORRECT?

Sunday, January 13, 2013

HTML and CSS Quiz Part 1

HTML (HyperText Markup Language) and CSS (Cascading Style Sheets) are the fundamental building blocks of web pages. Learn HTML, CSS and SEO. Then attempt this quiz to see how well you understand these. Most of the questions have just one correct answer.

Monday, January 7, 2013

Testing Maps

We are all familiar with maps since childhood. Maps are of various types but each one of them visually depicts some space, either in 2D (on a plane) or 3D. Road maps are probably the most common maps. But there are maps of regions as small as organs of the human body and buildings to regions as large as the whole world and even entire solar systems and galaxies. What are the key items to test in a map within any application?

Thursday, January 3, 2013

Testing cross-site scripting (XSS)

We have heard about cross-site scripting (XSS) attacks on major websites and also that a majority of websites are open to XSS attacks. How can we test for XSS vulnerabilities in our own web application?