SDET(Software Development Engineer in Test) is the official name given to software tester in the context of Software Development. He is highly skilled in both development and testing.
SDET is Unique. He is required to have both testing and development skills. He is expert in technical skills like programming language, test techniques, designing the framework which he learns through training or through past experience. Along with this, personally SDET is required to be highly motivated, responsible, determined and flexible.
Now lets see what is Agile Methodology?
Agile methodology is a way of developing / managing a project by breaking it into different phases. It involves continuous collaboration with project stake holders and other team members. The software is developed with an approach of continual learning, planning, improvement, team collaboration, development and early delivery. It encourages flexible responses to change.
Agile methodology requires the team members to have broad skill set. Below are few skills emphasized:
Programming knowledge, know how a code is developed.
System analysis - requirements gathering, data modeling, process mapping in a development project.
Knowledge of database administration - should be able to manage, install, update and monitor a database.
Knowledge of project management - skills and techniques to the execution of projects in an efficient way.
Experience in software engineering - processes related to software specification, development, and maintenance.
Responsibilities of an SDET
Responsibilities are the tasks to be performed by SDET, they are performed individually or in collaboration with other tasks.
Performing automated unit test, developing the system, performing integration tests and writing test cases.
Refactoring code - as project is developed in iterations in agile methodology, rewriting the code to meet the acceptable standards becomes easier.
Performing acceptance testing - it is also known as Automated Acceptance Testing - AAT (agile testing approach), where the customer gives the requirements as input to the software team, with an acceptance test as a result. Acceptance tests are written in early stages to validate user needs.
Performing positive and negative tests - negative tests are written to trigger an error, this is done to ensure that the system responds to errors as expected.
Performing exploratory testing - this is kind of manual test where the SDET uses his domain expertise to test the challenges which might be faced by end user.
Writing test specification - developers will write scenarios, which will be translated to tests, which will drive the implementation.
Writing user stories - the goal is to write descriptive form of the requirements.
To summarize, SDET is highly skilled resource with development and testing skills. Agile's iterative method makes it more effective and efficient for SDETs to develop the automation framework and test automation tools, which can be used by other testers. In Agile as the project is broken into different phases, it makes it easier for SDETs to rewrite the code incase of changes in requirements or when the code is broken.