Friday, July 9, 2010

All You Can Expect In A TCL Interview

TCL is an easy to learn language that has a number of features and it can be used for a wide range of applications. The most common one is the automation. It can be used with expect to create interactive applications, where we send the commands to the command line, expect an output and evaluate the output using TCL via scripts.

Having a base in any programming language will help you learn TCL quickly. But this is not mandatory because most of the commands in TCL are simple and self explanatory. This post is meant for aspiring engineers who wish to work in a TCL automation project. This post would be useful especially for people who have started attending interviews and trying hard to get into this field.

To be honest, there are very few people who know TCL here in this industry. This is because the developers who are good at programming go for usual stuff like C, C++, Java etc. Testers are mostly manual testers who always develop a fear for programming. The concept of automation is something that bothers the testers as they consider it is as a very difficult task. As a result of all these attitudes, we have very less people for TCL automation but there are quite a lot of opportunities.

A little bit of practice is more than enough to get into a TCL automation project. Most of the requirements would say, “Should be good at TCL/TK. Knowledge of networking is preferred”. So going through the basics of networking would definitely help. One month before you start attending interviews, start taking notes of OSI layers from the net or from good networking books. This would be useful for you to brush up the concepts on the previous day of the interview. Have a clear cut idea about the layers, what they do and the protocols they use. Difference between TCP and UDP is a standard question in any networking interview. A detailed and crispy answer to this is available here:

http://networkinterviewquestionsandanswers.blogspot.in/2012/08/difference-between-tcp-and-udp-best.html

Since it involves testing, some of the testing questions can be asked. Eg:

1. Difference between black box and white box testing.
2. Who does white box testing(Developers or testers)?
3. Is unit testing white box or black box?
4. Difference between regression and re-testing
5. Why is testing essential for a project? What is the significance of testing?
6. Name a bug that you had fixed in your project that was appreciated?

The answers to the above questions are available here

http://tclinterviewquestions.blogspot.com/2011/12/answers-to-questions.html

Now we will come to the important part where most of the questions will be asked i.e TCL. If the interviewer is not a TCL person (though it does not happen mostly) the expected questions would be:

1. Write down all the list commands and explain what they do?
2. Write down all the string commands and explain what they do?
3. Write a regexp to match an ip address.(very common question)
4. Write the syntax of “for” and “if” loops?

If the interviewer is a TCL person, the questions might be:

1. Write a regexp to match an ip address?
2. How do you pick each part of the ip address and place them in separate variables?
3. What do these signify (. * ? +) in regexp?
4. What is command substitution, variable substitution and backslash substitution?(very common question)
5. Difference between using curly braces and quotes in TCL?
6. Convert a string into a list.
7. Convert a list into a string.
8. Write a program to reverse a string.
9. Find the length of a string without using “string length” command.
10. What are your strong areas in TCL?(string, list regexp etc..)
11. What is upvar and uplevel in TCL?
12. Write a program to connect to a system and to login using EXPECT script?

Answers to some of these questions are available here. Planning to post the remaining as well.

http://tclinterviewquestions.blogspot.in/2012/01/answers-to-tcl-interview-questions.html

Hope this post was useful for aspiring engineers. All the best everyone!
If you require answer for any of these questions, feel free to leave a comment.