5

I have been working as a software tester for the last 4 years. I have the following skills and day job experience:

1 - Manual Testing of websites & Mobile Applications.

2 - Automation using Selenium webdriver & TestNG.

3 - Automation using Appium for Android and iOS mobile applications.

I am in doubt about what next to learn to improve my skills in QA.

Should I learn WebdriverJS OR Junit OR PhantomJS? or any other tool?

  • JUnit is very similar to TestNG, so there's not much to learn. The rest depends really on companies you want to work for, products and frameworks they use. So there's no single answer. – dzieciou Oct 9 '15 at 11:32
  • 1
    The roles you've described are "Testing" and not purely QA roles. So are you looking into advanced testing roles or QA roles. – demouser123 Oct 9 '15 at 13:19
  • @dzieciou - I understand , I am OK with current company. I mean according to projects of current company my skills are enough , but I am having fear that when I will looking for change , will these skills enough? or I will need to learn some specific tools.. – Helping Hands Oct 10 '15 at 7:36
  • @log_file - I agree with you , I think I got satisfied answer.. thanks for indication. – Helping Hands Oct 15 '15 at 5:20
5

As a part of testing you should start looking into the NFRs testing like Performance, Load, Security, UX etc. testing. Study about the FRUPS+ . Performance testing too is equally important as other functional testing, as I have seen many projects to get failed/escalated to higher levels which failed to deliver good performance and Performance testing indeed is a very vast topic to be covered especially about:-

  1. What is it and its impact?
  2. How to measure performance?
  3. Different tools available in market
  4. Performance planning and execution
  5. Report analysis
  6. System monitoring etc.

Now, a days many performance testing tools provide integration with functional testing tools (like JMeter with Selenium, HTTPWatch with WatiR/WatiN etc.). Performance in mobile applications is a big challenge as there you have very limited resources and mobile applications are more in trend now.

Then, you can also start with the security testing/OWASP. This again includes mobile applications. Another area to be looked upon is Database testing; this too is a good, technically sound, interesting and required feature for testers.

These are from testing point of view and require Dynamic + Static testing involvement and will increase your technical knowledge too about the applications under consideration.

Running a new tool may not be a big deal for you if you have good command on one tool as your concepts are clear and you yourself have worked good in one tool, definitely you can explore more tools for adding up to your knowledge.

Go for some kind of certification (if you not already have) this will add value to you resume and skillset too. But not having certification doesn't mean that you don't have knowledge.

From QA point of view there is a lot to be covered and you can start with that too, like:

  1. Participation in requirement analysis and review
  2. Manual and Automated test cases review for other team members
  3. Involve yourself in Client meetings/calls (if not directly then indirectly i.e. sit in call as a passive user but make notes and analyze the client requirements)
  4. If there are more QAs in your team, ask to start mentoring a fresher/junior (I assure you will learn a lot from this mentoring, but only if your manager permits so, as it depends from Organization to Organization)
  5. Involvement in Static testing/Reviews/Demo etc.

There is much more in this line but to start with these are good options. Responsibilities of your QA line may also depend upon your team and Organization, but if you develop capability and show learning skills you should definitely get opportunity to implement them.

5

My recommendation would be to become more competent in programming, preferably in Python (excellent language for small admin tasks and generic data fiddling), and learn Linux administration with good understanding of networking. There is no limit to scaling up your skills in these areas, and neither technology will ever go away - not in your lifetime, so it is a safe time investment. And it will make you more rounded professional, not pigeon-holed into QA only.

For both, you can get excellent free online courses on edX.org, I can highly recommend the platform and the courses.

Another option would be to dive into JavaScript, learning Protractor to test Angular applications, but IMHO this is less preferable, because it is a narrow skill-set limited to QA.

Especially if you learn in your free time you want to expand your skill-set into adjacent territories. Get paid to specialize in work, but in your free time expand your skills.

3

I am currently at the same point. I work for 3 years in QA. I strongly believe that if you have mastered the job you are currently doing in your present position you should consider expanding your knowledge in fields closely related to QA.

My opinion is that it does not really matter if you use Selenium and then learn Robot Framework, and then Watir or Windmill. I feel that if you master one of them and you are a good programmer you can pick up anything else in a day or two. Besides I don't think that a company can afford to have people using what ever tool they feel like when they have set up their work environment with one that works and are satisfied with.

I would advise you (as I am doing) to learn Linux administration / Docker / Ansible / Selenium Grid / Amazon Web Services / Load/Performance/Security testing and try to combine QA, DevOps, SysAdmin, Scaling to try to automate your testing pipeline. As I am seeing it, anything can enhance my testing pipeline. Examples:

  • Learn Jenkins to automate the test execution

  • Learn docker so you can have more than one branch to test on staging server

  • Learn a Load testing tool and then Ansible/Fabric(Python) and AWS API to manage the load testing infrastructure
  • Set up a Selenium Grid to cut enormously the time your tests are running
  • and many more....

As I see it, you are not always going to be a Tester. You'll want to become a QA Engineer or even a QA Team leader with DevOps and high scalability background.

  • Thanks buddy...you gave me lot of ideas to move to next level.. – Helping Hands Oct 10 '15 at 7:43
3

From my point of view it makes sense to dig into the next areas:

  • Performance Testing. There are some good free and open source tools, you can choose one and master it. Don't try to learn the specifics of them all, creating and running a performance test is easier and lesser part of the process, the main point is results analysis, bottlenecks and saturation points definition and localization, recommendations on what needs to be done to improve performance. This role assumes knowledge of different network protocols, databases, operating systems, application and web servers, proxies, load balancers, etc.

  • DevOPS. Continuous integration and delivery is already area of big interest and it is constantly growing. The process of building the product, performing automated tests (including performance), deployment and packaging is something, controlled by DevOPS. Usually they need to know at least one scripting language to automate OS processes, programming language like Python to extend automation to tasks which OS cannot handle, have advanced experience on variety of operating systems, configuration management systems like Chef container systems like Docker, etc.

  • Management. Finally you can become a manager. I cannot provide any recommendations on how to achieve the position as requirements and responsibilities differ from company to company, from country to country, etc. Be prepared that everyone will hate you: bosses - for taking care of subordinates and trying to get more time, more budget, etc. and subordinates for trying to hit the deadlines and to track the progress.

  • DevOPS seems more interesting... – Helping Hands Oct 10 '15 at 7:44
2

I think QA is more then just (automated) testing skills and tooling knowledge. Learn how to learn one tool and you can learn em all. I would focus on more general quality concepts and how to introduce these into a companies life-cycle.

The earlier quality is introduced into the process the better. Often there is a lot to win outside of adding test coverage. Personally I think Agile and XP practises have a lot to offer. Doing an Agile/Scrum training and trying to work better in teams are skills usefull even in non software development.

Also have a look at the Agile self and peer assessment tools to find area's you can improve and develop your software life-cycle skills.

  • Thanks , Sure I will go for Agile. That seems more interesting. – Helping Hands Oct 14 '15 at 8:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.