COURSE DESCRIPTION
SDETs is the upcoming Future of Testing.
Microsoft invented one job role called as: “Software Design Engineer in Test” alternatively called as Software Developer Engineer in Test. Nowadays, these type of roles are very much in demand. Infect, Organizations like Amazon, Apple etc. have also started using these type of job roles in there resource management.
Now, the question arises why are these type of roles getting in demand so quickly. This is because many a time while developing the application a person gets in-depth knowledge about the domain and the subject. So, While performing the testing by the same person if he is aware of all the testing practices along with the development he is more likely to save the project management time and covering the breakpoints.
SDET’s have been here for long time. However, their role has evolved impressively during the years. As the Test automation industry will have a huge demand, more and more testers will be taking up the role of the SDETs to be successful.
An SDET will review the software’s design, performance, code for automation as well. Often, it is seen that those Testers who have worked for preparing the framework for some projects are refered to be promoted to SDET’s to review the frameworks of other projects etc. But, there are some differences between a Tester and the SDETs. Following are some:
1. A Tester is supposed to implement the Testcases either Manually or via Automation.
Whereas, an SDET is supposed to have knowledge of both Development as well as Testing practies in depth. He/She will be responsible for Developing the software as well run the Test cases either manually or through Automation, that depends.
2. Testers are usually limited in programming skills, they do Black-Box Testing or Functional Testing or sometimes executing the Automation Script.
Whereas, SDET have strong programming skills. Who will perform White-Box Testing or sometimes these type of resources are utilised as the developer in Test Automation.
3. Software Testers may be required sometimes for using the Software Automation Tools made by SDETs to automate the Test cases used for Testing.
Whereas, SDET s as mentioned above are responsible for preparing the Test Automation Tools for the generic us by the Testing Team. This is as per the demand of the organization, this may not happen always, as there are already a lot of Automation Tools in the market for Open-source use or paid versions. But sometimes due to some security concerns, they are supposed to make a dedicated product for the company for its own use.
Example:
If a task is there to test API of the Application.
There involves the requirement to write some line of code atleast, so here the task will be given to SDET’s and not Software Testers as the Software Tester is supposed to do the Testing of the Functionality, Usability, Graphical User Interface etc.
6. Software Testers cannot do unit level testing or unit testing.
SDET is an Engineer He knows many database concepts, programming languages, data designs and product design are there where he participates. He will be able to perform unit testing because he has the necessary code lnguage knowledge.
7. Software Testers are not supposed to perform any Customer Specific Interactions.
SDETs are good at communicating with the customers, being their advocates, as they understand the best need of the software.
8. Software Testers are there into function after the development Phase is over.
SDETs are working shoulder to shoulder right from the development Phase with the developers then do testing and reporting furthermore.
SDET Profile – Full-stack Testers
What does the profile of a great SDET look like? What skills should SDETs have?
Now, some of us have heard of full-stack developers, but can we have full-stack testers?
In my opinion, an SDET should have at least the following skills and attributes:
- Has a tester mindset, is curious and can come up with interesting test scenarios
- Has a solid understanding of testing principles and methodologies
- Knows that all testing is exploratory in nature and appreciates the difference between testing and checking.
- Can apply appropriate test methods for a given scenario
- knows the difference between testing and QA
- Can code in at least one scripting or programming language (Java and Javascript happen to be the most popular)
- Understands HTTP and how modern web applications are built
- Can write UI as well as API automated tests. One or the other is not good enough!
- Knows Git, Pull Requests, Branching, etc…
- Is agile in nature and knows how testing fits in the agile model
- Can write performance test scripts (Gatling and/or JMeter)
- Thinks about security and is aware of OWASP
- Understands CI/CD and Build pipelines
- Knows the services offered by cloud platform providers such as AWS, Azure and Google Cloud
Demand of SDET
SDET are not just more than a tester. SDET is a mix of developer as well as tester who has exposure to project management, interacts and understands end user software requirements, knows product or domain knowledge, participates in product or software designing, knows how to code and build test automation tools. This all in one kind of skill set make the SDET role very unique HIGH DEMAND in present software industry.