December 20, 2016
XML Quiz
December 28, 2014
Selenium WebDriver Quiz Part 4
You may have already attempted the Selenium Quiz Parts 1, 2 and 3. If not, try those first. Now, attempt this short part 4 of this quiz to check your familiarity with Selenium WebDriver (also known as Selenium 2) basics. Selenium-WebDriver is the new Selenium tool that has a simpler and more powerful API than Selenium 1. Additionally, it addresses the limitations of Selenium RC. Each question in this quiz has four options with one best answer. The score is updated at the bottom left as you answer each question.
December 07, 2014
How to find out more software testing jobs positions?
More software testing jobs
If you are looking for a suitable or better software testing position, consider the following options too. Software testing forums e.g. Software Testing Space, possible internal transfer within your organization and private referrals. These can be powerful options to discover your desired position because the information reaches far fewer interested people than the above common ways. For details, view the video, Top tips to get software testing jobs.March 19, 2014
Example Test Strategy | Test Plan
Introduction to Agile
Agile is an iterative and incremental (evolutionary) approach to software development that is performed in a highly collaborative manner by self-organizing teams within a control framework. High quality and adaptive software is developed by small teams using the principles of continuous design improvement and testing based on rapid feedback and change. Agile is people-centric, development and testing is performed in an integrated way, self-organizing teams encourage role interchangeability, customer plays a critical role and Project Life-cycle is guided by product features.
How Agile is different from Waterfall model
1. Greater collaboration
2. Shorter work cycle and constant feedback
3. Need to embrace change
4. Greater flexibility
5. Greater discipline
6. The goal should be quality and not just speed
7. Greater stakeholder accountability
8. Greater range of skills
9. Go faster and do more
10. Courage
11. Confidence in design
Purpose of this document
The purpose of this Test Strategy is to create a shared understanding of the overall targets, approach, tools and timing of test activities. Our objective is to achieve higher quality and shorter lead times with minimum overhead, frequent deliveries, close teamwork with team and the customer, continuous integration, short feedback loops and frequent changes of the design. Test strategy guides us through the common obstacles with a clear view of how to evaluate the system. Testing starts with the exploration of the requirements and what the customer really wants by elaborating on the User stories from different perspectives. Testing becomes a continuous and integrated process where all parties in the project are involved.
Guiding standards
| Standard | Description |
| Shared Responsibility | Everyone in the team is responsible for quality. |
| Data Management | Production data must be analyzed before being used for testing. |
| Test Management | Test cases, code, documents and data must be treated with the same importance as the production system. |
| Test Automation | Attempt to automate all types of testing (Unit, Functional, Regression, Performance, Security) as far as feasible. |
Requirements strategy
1. Always implement highest priority work items first (Each new work item is prioritized by Product Owner and added to the stack).
2. Work items may be reprioritized at any time or work items may be removed at any time.
3. A module in greater detail should have higher priority than a module in lesser detail.
Quality and Test Objectives
| Feature | Description | Measure and Target | Priority |
| Accuracy | Features and functions work as proposed (i.e. as per requirements) | 100% completion of agreed features with open
|
Must Have |
| Integrity | Ability to prevent unauthorized access, prevent information loss, protect from viruses infection, protect privacy of data entered |
|
Must Have |
| Maintainability | Ease to add features, correct defects or release changes to the system |
|
Must Have |
| Availability | Percentage of planned up-time that the system is required to operate | System is available for 99.99% for the time measured through system logs. | Should Have |
| Interoperability | Ease with which the system can exchange information with other systems User interface renders and functions properly on the following (and later) browsers versions:
|
Must Have | |
| Performance | Responsiveness of the system under a given load and the ability to scale to meet growing demand. |
|
Should Have |
Test Scope (both business processes and the technical solution)
In Scope
Identify what is included in testing for this particular project. Consider what is new and what has been changed or corrected for this product release.
- Automated) Unit testing
- Code analysis (static and dynamic)
- Integration testing
- (Automated) Feature and functional testing
- Data conversion testing
- System testing
- (Automated) Security testing
- Environment testing
- (Automated) Performance and Availability testing
- (Automated) Regression testing
- Acceptance testing
Out of Scope
Identify what is excluded in testing for this particular project.
Testing Types
| Testing type | Definition | Test tool examples Remove tools that will not be used. |
| Unit testing | Testing that verifies the implementation of software elements in isolation | Xunit test tools (Nunit, Junit), Mocking tools |
| Code analysis (static and dynamic) | Walkthrough and code analysis | 1. Static code tool ->
Java – Checkstyle, Findbugs, Jtest, AgileJ Structure views
.Net – FxCop, stypeCop, CodeRush 2. Dynamic code tool ->Avalanche, DynInst, BoundsChecker. |
| Integration testing | Testing in which software elements, hardware elements, or both are combined and tested until the entire system has been integrated | Vector Cast C/C++ |
| Functional and Feature testing | Testing an integrated hardware and software system to verify that the system meets required functionality:
| UFT, Selenium WebDriver, Watir, Canoo webtest , SoapUI Pro |
| System testing | Testing the whole system with end to end flow | Selenium, QTP, TestComplete |
| Security testing | Verify secure access, transmission and password/ session security | BFB Tester, CROSS, Flowfinder, Wireshark, WebScarab, Wapiti, X5s, Exploit Me, WebSecurify, N-Stalker |
| Environment testing | Testing on each supported platform/ browser | GASP, QEMU, KVM,Xen, PS tools |
| Performance and Availability testing | Load, scalability and endurance tests | LoadRunner, JMeter, AgileLoad test, WAPT, LoadUI |
| Data conversion testing | Performed to verify the correctness of automated or manual conversions and/or loads of data in preparation for implementing the new system | DTM, QuerySurge, PICT, Slacker |
| Regression testing | Testing all the prior features and re-testing previously closed bugs | QTP, Selenium WebDriver |
| Acceptance testing | Testing based on acceptance criteria to enable the customer to determine whether or not to accept the system | Selenium , Watir, iMacros, Agile Acceptance Test Tool |
Test Design strategy
1. Specification based / Black box techniques (Equivalence classes, Boundary value analysis, Decision tables, State Transitions and Use case testing)
2. Structure based / white box techniques (Statement coverage, Decision coverage, Condition coverage and Multi condition coverage)
3. Experience based techniques (Error guessing and Exploratory testing)
Test Environments strategy
| Name | Description | Data Setup | Usage |
| Development | This environment is local and specific to each developer/tester machine. It is based on the version/branch of source code being developed. Integration points are typically impersonated. | Data and configuration is populated through setup scripts. | Unit, Functional and Acceptance Tests. Test tools e.g. Xunit test tools (Nunit, Junit), Mocking tools. Source code management for version control |
| Integration | This environment supports continuous integration of code changes and execution of unit, functional and acceptance tests. Additionally, static code analysis is completed in this environment. | Data and configuration is populated through setup scripts. | Unit, Functional and Acceptance Tests. Static code analysis Continuous Integration tools e.g. Cruise control |
| Staging | This environment supports exploratory testing | Populated with post-analysis obfuscated production data | Exploratory testing |
| Production | Live environment | New instances will contain standard project reference data. Existing instances will have current data migrated into the environment | Production verification testing |
Test Execution strategy
We will keep in mind the following points:
- Agile testing must be iterative.
- Testers cannot rely on having complete specification.
- Testers should be flexible.
- They need to be independent and independently empowered in order to effective
- Be generalizing specialists.
- Be prepared to work closely with developers.
- Focus on value added activities.
- Be flexible.
- Focus on What and Not How to test.
- Testers should be embedded in agile team.
- Flexible to contribute in any way then can
- Have wide range of skills with one or more specialties
- Shorter feedback cycles
- Focus on sufficient and straightforward situations.
- Focus on exploratory testing.
- Specify the meaning of "Done” i.e. when activities/tasks performed during the system development can be considered complete.
- Define when to continue or stop testing before delivering the system to the customer. Specify which evaluation criteria is to be used (e.g. time, coverage, and quality) and how it will be used.
1. Steps to build the system
2. Steps to execute automated tests
3. Steps to populate environment with reference data
4. Steps to generate test report/code metrics
Test Data Management strategy
Use this section to describe the approach for identifying and managing test data. Consider the following guidelines:
1. System and user acceptance tests – a subset of production data should be used to initialize the test environment.
2. Performance and availability test – full size production files should be used to test the performance and volume aspects of the test.
Test Automation strategy
Adopt a planned approach to developing test automation. Increase the quality of test automation code. Select the test cases for automation based on the following factors:
- Risk
- How long it takes to run the tests manually?
- What is the cost of automating the test?
- How easy are the test cases to automate?
- How many times is the test expected to run in project?
The Test Plan, test scenarios, test cases and bug report should be in a same system as in Bugzilla, Zira. Any agile tool can be used where User stories, Test Plan, Test scenarios, test cases and bug report can be stored in the same place.
Risks and Assumptions
Risks and assumptions raised in Daily stand up meeting (in front of all team members, scrum master and members) should be logged and addressed immediately.
Defect Management strategy
Ideally, defects are only raised and recorded when they are not going to be fixed immediately. In this case, the conditions under which they occur and the severity needs to be accurately recorded so that the defect can be easily reproduced and then fixed.
Defect Classification
| Severity | Description |
| Critical | Defect causes critical loss of business functionality or a complete loss of service. |
| Major | Defect causes major impact to business functionality and there is not an interim workaround available. |
| Minor | Defect causes minor impact to business functionality and there is an interim workaround available. |
| Trivial | Defect is cosmetic only and usability is not impacted. |
Defect Lifecycle
| Step | Description |
| Identify Defect | Ensure defect can be reproduced. Raise in defect tracking system. |
| Prioritize Defect | Based on severity defect is prioritized in team backlog. |
| Analyze Defect | Based on analysis acceptance criteria and implementation details. |
| Resolve Defect | Implement changes and/or remediate failing tests. |
| Verify Resolution | Execute tests to verify defect is resolved and no regression is seen. |
| Close Defect | Close in defect tracking system. |
Specify the shared defect tracking system.
Copyright © Software Testing Space
Please put any questions that you have in the comments.
January 17, 2014
What is quality?
What is quality?
Quality is relevant when considering any kind of a thing like a pen, a smart-phone, a vehicle or a software application. The perception of quality depends on the individual's preferences. For some, it can be meeting the specifications. For some, it is a large number of features. For others, it is the combination of other properties like performance, reliability, maintainability, security, portability, usability or aesthetics. High quality is naturally desirable to people. High quality means that the thing is better than its substitutes. Therefore, people tend to prefer items, products, services or systems with high quality. Manufacturers and service providers understand the users' preference for things of high quality.A system can be specified by laying out its external features, inputs, internal processes, workflows, usage and outputs. For example, if you want to purchase a new car, you could look at the specifications of the model that interests you. You may want to see the dimensions, power, torque, seating capacity, fuel, engine type, driving features and so on. Then, figure if these specifications meet your requirements or not. As another example, consider an email application. Here, the specifications could be the type of email address, read email, write email, send email to one or more email addresses, include attachments and so on. Based on these specifications, you could estimate if this email application is suitable for you or not.
Another way of estimating the system quality is to look at the features. You could determine if there are many useful features in the system or not. For example, consider a calculator application. You could find if it has the basic features like addition, subtraction, multiplication and division. Then find if it has other useful features like sine, cosine, log, square root and so on. Then, figure if these features meet your requirements or not.
Yet another way of finding the quality is to examine other properties of the system. You could determine if it is fast (performance), able to work for long time (reliable), easy to repair (maintainable), safe (secure) and easily shifted from one environment to another (portable).
It is common to use any or all ways of estimating the quality. If the system meets the specifications, has a large number of useful features and has good performance, reliability, maintainability, security, portability, usability and aesthetics, it is perceived to be of a high quality.
Testing a system gives us data to estimate the quality of that system. Testing a system lets us know if the system meets each of its requirement specifications or not. It gives us data about working features of the system. It also provides data about other relevant system properties like performance, security and usability. Testing provides this data when the system is actually used. This why testing is so important. Especially software testing to estimate software quality.
Note: Enjoy our free testing videos by subscribing here.
October 31, 2013
Selenium IDE and Selenium WebDriver Training Videos - learn automated testing
The problem that I see (painfully) very often is that some testers feel that they can download a functional web testing tool, read a few blog posts or watch a couple of videos to see how it works and they will have test automation skills. Not quite. These folks have hardly done any coding or written any automation program. In many cases, they don't even recall basic HTML syntax. When they build some automation, they are at the mercy of web test recordings, which are very fragile. If there is something that cannot be recorded e.g. a condition or a loop, they search some source code on the web, which meets their exact requirement. They are afraid to modify this source code because they really don't understand it. Then the automation that they manage to hack together doesn't work too often. More seriously, it suffers from unknown issues. It's a big problem.
You can solve this problem by using our Selenium IDE and WebDriver training videos. The training videos start with training on HTML, CSS, XPath before training on Selenium IDE (the record/script and playback tool) all in detail. This builds a strong foundation in testing web apps using not only Selenium but also any other functional testing tool because the web technologies are the same. Then the training videos cover the relevant object-oriented programming (OOPS) concepts, programming logic and Java coding. These programming skills give the confidence to build the automated Selenium test scripts (or test scripts in any other tool) in real life. Then the training videos cover Selenium WebDriver code in detail, with data parametrization and page object pattern. Finally, the videos cover TestNG, which is a testing framework. All these languages, tools and technologies are covered in the videos from beginner level. The training videos are 25 hours in total. They have ample explanations of all relevant concepts and numerous practical demonstrations.
The training videos are private and there is a fee to view them. There is one month support to provide any clarifications or resolve your queries, if any, on the training material presented in the training videos. If you need access to the training videos, please email me @ isingh 30 at g mail dot com (with no spaces).
Here are the comments by few of the software testing professionals who have used these training videos to learn Selenium:
- Akim I enjoyed it a lot and learned a lot from your videos - specially on the java side. Once again, I greatly appreciate it.
- Alex I just want to say thank you for your great tutorials.
- Adarsh I am happy with the way you provide the training, its very easy to understand and concepts that are explained are crystal clear. Hats off to you!!!! I am enjoying learning Selenium from your training videos. I simply love the way you explain the concepts, you do it so well.
- Angela The training is going well thanks. Good thing with the videos is u can playback which is a great advantage. You explanations are very good and I'm sure when I get to the actual web driver it will be clear. Great foundation work.
- Brij Hi Inder, No questions nothing just wanted to say that I find your videos very very good and easy. In fact, no problems understanding till now i.e. firepath. It is really really easy. Thanks.
- Farhod I watched your videos, very easy to understand, thanks, nice job.
- Guillermo I finished all your videos and I learned a lot. Thank you. I will continue practicing.
- Jetal you are very nice tutor and i must say would like to make u my mentor too.
- Karthik They (the training videos) are clear and audible.
- Linda I have been learning your classes, so far it's good. :)
- Marco first of all, congratulations, you're an awesome teacher...
- Mike I am making good progress with the videos, so thank you. You do a great job presenting the material in a way that makes learning much easier than it would be otherwise.
- Niharika I have completed the training and it is really very helpful. Thanks a lot for sharing the knowledge, I am glad I took up this training.
- Paul cheers Inder its excellent so far, thanks for this, ur effort is awesome.
- Pooja everything is well understood. Great work & great stuff, should say. Also, I am practicing it everyday.
- Preeti I am going through the Selenium videos and its very clear and I am able to understand. So, I am very thankful for that.
- Renji ...The best videos for learning Selenium.
- Roshitha the way u teach is simply awesome.
- Simona You are an excellent tutor. I have been reading books and just watching your video I have learned more in a day. Your video are clean and clear.
- Sujeet Your training videos are awesome and very much practical in itself. I am following your concepts and its is quite helpful.
- Siva I found training is very useful. Thanks make it effective. Thanks for your support as always.
- Shwetha In one word i would say the course as "WOW". I could see that the you have put on a lot of effort in each training and have shared your knowledge extensively.
- Vani The videos are very informative and useful.
- Adarsh I did go through all the video sessions that you shared. It was a good learning experience. Infact, I am new to Java and that postponed me to learn webdriver. Your training sessions is helping me to understand on the concepts.
Selenium IDE
Selenium WebDriver
Selenium Interview Questions and Answers
October 02, 2013
JMeter Web Performance Testing Training Videos
June 09, 2013
VBScript Questions and Answers
1. Which browser has built-in support for executing VBScript?
2. Which statement is true for VBScript names e.g. variable names or procedure names?
3. What is the datatype of a variable in VBScript?
4. What is the difference between the Sub procedure and Function procedure?
5. In the Select Case statement, which case is used for unknown cases?
6. Which loop is used to iterate till a condition becomes true?
7. What is the purpose of the Set keyword in VBScript?
8. Which VBScript function returns the day of the week for any date?
9. Which VBScript function converts an input string to all lowercase?
10. Which VBScript function can compare two strings?
Score is 0/ 10.
Mention your scores in the comments below.
May 27, 2013
Checkpoints in Automation Testing
April 30, 2013
Script test in TestComplete
April 26, 2013
How to create a keyword test in TestComplete (from SmartBear Software)?
March 31, 2013
Selenium RC Quiz Part 3
Instead of this quiz, you may want to see my video on Selenium Questions and Answers where I have compiled all these questions.
1. What are the different modes that Selenium uses?
2. How do you start the browser?
3. Do you need to have Selenium .jar files as a dependency of your tests?
4. How many parameters does the Selenium object take when using DefaultSelenium?
5. How do you start selenium rc server with user extensions?
6. Which Selenium command do you use to run commands in slow motion in Selenium RC?
7. Which command is used to get the alert box?
8. Which command is used for verifying if a web element exists?
9. Which command is used for typing in a textbox?
10. What is the command to load a page?
Score is 0/ 10.
Please remember to mention your scores in the comments below. Now answer the quiz on Selenium WebDriver (also known as Selenium 2).
March 06, 2013
Selenium IDE Quiz Part 2
Instead of this quiz, you may want to see my video on Selenium Questions and Answers where I have compiled all these questions.
March 01, 2013
Selenium IDE Quiz Part 1
February 24, 2013
Java Questions and Answers Part 2
1. How can you add GUI elements to a Java application?
Java has an API called swing to provide GUI components such as textboxes, checkboxes, radiobuttons, comboboxes and so on. These components are available on importing javax.swing.*. The process to add a GUI element to a Java application involves creating a new object of the component class, adding the object to the container and attaching an event handler to the object.
2. How can you accept user input to a Java application?
This can be done by importing the java.util.Scanner class. The Scanner class has methods like nextInt, nextDouble, nextLine and so on to accept inputs of different data types from the user into a variable.
3. What methods are available to search within a string?
The String class in Java has a vast number of methods. There are many methods to search for characters within a string. Some of these methods include charAt, contains, indexOf, lastIndexOf, startsWith and endsWith.
4. How do you draw graphics in an application?
Java has a built-in Graphics object. This object has methods such as drawArc, drawImage, drawLine, drawRect (empty rectangle)/ fillRect (solid rectangle), drawPolygon/ fillPolygon and so on that can be invoked to draw the respective lines and shapes in any desired color.
5. How can you work with files and folders?
First, import the java.io.File library. Then create an object of the File class and point it to the required file or directory. This object will have the file's properties (e.g. length, isDirectory, lastModified) and methods (e.g. listFiles, createNewFile, getPath). A Scanner object can be created for the File object and used to fetch the contents in the file.
6. How do you handle exceptions?
There may be code which if executed may throw an exception. Such code is put inside a try block, which is followed by a catch block containing the exception handler. If the code throws an exception when it is executed, the control flows to the catch block. The try block may have one or more lines of code. Each line of code may have its own try block. There can be one or more catch blocks to handle different types of exceptions. All such catch blocks immediately follow the try block.
7. What is recursion?
A recursive method is one that calls itself. See the example below. For a given integer input that is greater than one, this method sums all integers from the input down to one. This method has the base case for input equal to one. The recursion exists where sumAll method calls itself in the last line.
public static int sumAll(int n){
if (n==1)
return 1;
else
return n + sumAll(n-1);}// recursion is in this line of code
8. What is the benefit of using a List instead of an array?
The Collections class has several useful methods that work on a List but not on an array. Examples of these methods are addAll, binarySearch, copy, fill, max, min, reverse, shuffle and sort.
9. What is the difference between Stack and PriorityQueue classes?
A new element can be added to the Stack by the push method. The new element is always added at the top of the Stack. In an existing Stack, the top element can be removed by the pop method. The Stack has other methods to add and remove elements at specified positions within the Stack.
In a PriorityQueue, a new element is added by the offer method. This new element is always inserted at the bottom of the queue. In an existing queue, the top element can be removed by using the poll method. The queue does not have methods to add and remove elements at specified positions within the queue.
10. How can different code in a program be executed concurrently?
This can be done using threads. A Java application can have multiple threads of execution running at the same time. A thread can be created by writing a class that implements the Runnable interface which means implementing the run method. Thereafter, a new thread can be created by instantiating a new Thread passing the new object of this class as parameter. A Thread object has a number of methods like setPriority and start.
February 13, 2013
Java Questions and Answers Part 1
February 04, 2013
JavaScript Quiz Part 2 (final part)
January 28, 2013
HTML (HyperText Markup Language) Quiz
January 24, 2013
Software Testing Effort Estimation: 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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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 / FreeDigitalPhotos.net
January 21, 2013
JavaScript Quiz Part 1
2. What is the result of applying an arithmetic operator on a string?
3. How do you reduce the time it takes a javascript switch statement to execute?
4. What is the difference between == and === operators in javascript?
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.
6. Which javascript loop runs at least once?
7. What is the result of running the following loop?
var i=1;
8. In javascript, what is the preferred way of creating just one instance of a user-defined object?
9. The concat method does which of the following tasks in javascript?
10. In javascript, the elements of an associative array can be referred by their number index. True or false?

