My company hired me for developer's position. However, as they don't have a project, I was moved to Testing.
Is this a bad move for my career?
The Workplace Stack Exchange is a question and answer site for members of the workforce navigating the professional setting. It only takes a minute to sign up.Sign up to join this community
No, getting another skill in your resume is not bad. It never is. Testing is an important part of the software development process and even as a programmer, you will be helped by knowing these skills.
If it turns out you're stuck as a tester for a long period when you really want to program, then you should talk to your boss. If you both agree that this is a short term situation, then embrace it and make sure you learn as much as you can.
Let me dissent with the other answerers - assuming you don't want to be a tester, this is horrible for your career.
Sure, having the experience doing testing is a new and valuable skill that you can use to do a better job creating software.
But his means that your resume now has a gap where you didn't actually create software. HR will look at that and not count it as the always desired "years of experience". Hiring managers (and your peers!) will look at that and wonder why you got moved to testing, was it because you couldn't write code?
Worse yet, you're not gaining the experience actually designing, writing, and troubleshooting code. This experience more than anything will make you a better software engineer. And the skills you do have will quickly grow obsolete, even if you do enough to keep them from atrophying. The opportunity cost is too high.
And then there's the work itself. Being a QA engineer of any sort involves a lot of mindless repetition. Oh, there's a new release candidate. I get to run through my thousands of test cases again. Or I get to extend this automated test framework to handle UI widget 4033. Most software engineers I've known have found the work itself to be maddening. Not only are they not good at it (since they're not engaged - or thrive when creating things, not breaking things), but they quickly look for new work - derailing any momentum in their current job (though it could be argued that the job shift did that already).
And that's all before considering pay. Fair or not, QA Engineers make about 15% less than software engineers. Sure, you're keeping your current salary for now, but the new work will guide your raises, which in turn will influence your salary for years to come.
Is being moved to Testing better than sitting around all day doing nothing? The consequence of inactivity is unemployment.
Is testing an essential part of the development process?
Is it necessary for senior developers have to understand the Testing process well enough to work with the testers?
If you determine that the answer to the questions above is "yes", then being moved to Testing is good for your career. If you determine that the answers to the questions above is "no", then you are wasting time going to work.
Proper test design can be a highly skilled field of its own, and requires a fairly deep understanding of programming to predict what usage patterns will be edge cases/stress tests. Arguably, every programmer should be writing testcases for their own code as they go, but that rarely happens... and there are sometimes emergent properties that can only be provoked when testing the system as a whole. If they have you designing tests for a while, consider it a good learning experience ... just as working customer support, while frustrating at times, is a good education in how customers are using and thinking about the product.
If you do a job well and cheerfully, it can only reflect well on you.
If it isn't what you want to do or where you think your skills are best used, remind management of that periodically (not more than four to six times per year) and they'll eventually move you back to development.
Don't regard this assignment as a season in jail. Instead, treat it as a rare opportunity. Seriously.
What career trajectory do you hope for?
Most careers in the world of software creation require a deep knowledge of the lifecycle of software. That lifecycle includes many phases of work other than the cutting of new code.
There's specification. There's detailed design. There's unit testing. There's usability testing, system testing, integration testing, and load testing.
There's deployment support, ongoing support. There's maintenance and defect correction.
Real world experience in software quality assurance will improve your skills at every single one of these phases of software creation.
For example, in specification: you'll be able to understand "how are we going to test this system?" In detailed design, you'll be able to design for testability. This is especially challenging for system that will scale up and require load testing.
So, talk to your manager and say you hope to learn all you can from this temporary assignment to a software quality assurance team. Talk to your software-quality professional colleagues, and get to know something about how they think.
Find a copy of the classic book "The Mythical Man Month" by Dr. Fred Brooks, and read it. It explains the wide difference between code-creation and software product development.
Testing is pretty vague. The answer depends a lot on what you are doing. Writing automated tests is a valuable skill. Executing manual tests is a poor practice, and will retard your technical advancement. If your organization is manually testing, can it be automated?
In short, if they are stuck on you executing manual tests, I suggest you find something else to do.