Read Article: Evolving Role of the Modern Developer
In this article, I have come to realize that my initialize thoughts on the direction of a development between the role of a developer and a QA engineer (or tester or whatever you call the person who verifies your code works as expected) is actually correct. I was confused and thought that perhaps the role of a tester evolved into just software engineer in test (SET) because of the positions that the tech giants were creating. In addition, because I see the evolution of AI testing.
But, on the spectrum of the SDLC the roles are becoming more integrated and in some respects these roles are merging into one. This doesn't mean the SDLC is going way. How a product or service is built will still need the basic engineering principles and cycles applied. However, who plays which role while creating or updating the product via SDLC will become more versatile and need a greater understanding of the customer's expectations of the product (and not just a function or feature). And, since no single developer can remember everything about a product, developers will need to know how to kindly work well with others.
Showing posts with label test engineer. Show all posts
Showing posts with label test engineer. Show all posts
Thursday, April 4, 2019
Friday, October 26, 2018
Selenium Testing - My References & Bookmarks
Quickly Learning to be a Software Engineer in Test (SET)
In short, because I am learning so much and coding/testing so fast, I can't remember everything and I need to remember specific things fast and with order. So, this is my page to help me remember these important things for being a Software Engineer in Test (SET) or in simpler titles known as Test Engineer.Online References
Selenium - FindElement(By <CSS Selectors>)
Useful Background Information
Online Tools
Load Testing Tools
Online Blogs
Labels:
test,
test automation,
test engineer
Thursday, October 25, 2018
Journey into SET: Part 3 - Follow Test Engineers
In this part of the journey, it's important to learn from other Testers (or SETs or Test Engineers). Yes, it's important to learn from Developers as well, but sometimes we forget the benefit of learning from other Testers. After all, we discover different things yet having the same overall mission: test the crap out of software! Well, not for any old reason, but with the goal of producing a quality product useful to our users and ourselves.
Anyhow, here are some Testers in the industry that I'm following.
Anyhow, here are some Testers in the industry that I'm following.
Test Engineers
Test Tools
Friday, October 19, 2018
Types of Testing
Here's an article that I read recently and liked enough to share.
(In case this article is no longer available, the types covered are listed below).
https://www.softwaretestinghelp.com/types-of-software-testing/amp/
This author does an excellent job in covering most, if not all, different types of testing that exist.
Calling out "Mobile Testing" specifically is useful considering our current industry of technology and how there are more users on mobile technology (like smartphones and tablets) than the traditional technology (like desktops or even some laptops).
Either way, this goes to show that the extent of testing in the tech industry will always evolve and expand calling for better testing tools and methods. Good luck!
(In case this article is no longer available, the types covered are listed below).
https://www.softwaretestinghelp.com/types-of-software-testing/amp/
This author does an excellent job in covering most, if not all, different types of testing that exist.
Mobile Testing
One type of testing that I didn't see and expected to see is: Mobile Testing.Calling out "Mobile Testing" specifically is useful considering our current industry of technology and how there are more users on mobile technology (like smartphones and tablets) than the traditional technology (like desktops or even some laptops).
Additional Types of Testing (not in article)
A few other types of testing important to call out are:- API Testing - which is actually listed in the referencing article under Integration Testing
- IoT Testing - but this can be under Integration Testing
- Virtual Reality Testing
Either way, this goes to show that the extent of testing in the tech industry will always evolve and expand calling for better testing tools and methods. Good luck!
Different Types of Software Testing
- Alpha Testing
- Acceptance Testing
- Ad-hoc Testing
- Accessibility Testing
- Beta Testing
- Back-end Testing
- Browser Compatibility Testing
- Backward Compatibility Testing
- Black Box Testing
- Boundary Value Testing
- Branch Testing
- Comparison Testing
- Compatibility Testing
- Component Testing
- End-to-End Testing
- Equivalence Partitioning
- Example Testing
- Exploratory Testing
- Functional Testing
- Graphical User Interface (GUI) Testing
- Gorilla Testing
- Happy Path Testing
- Incremental Integration Testing
- Install/Uninstall Testing
- Integration Testing
- Load Testing
- Monkey Testing
- Mutation Testing
- Negative Testing
- Non-Functional Testing
- Performance Testing
- Recovery Testing
- Regression Testing
- Risk-Based Testing (RBT)
- Sanity Testing
- Security Testing
- Smoke Testing
- Static Testing
- Stress Testing
- System Testing
- Unit Testing
- Usability Testing
- Vulnerability Testing
- Volume Testing
- White Box Testing
Selenium Firefox - Test logging into two windows
I have a test case where I open first window and login. Next, I open a second window (not a tab) and I expect that I don't have to login. However, what I'm trying to understand is if the caching of the user credentials is in the browser session or not. I assume it is since I don't have to log back in (from a different window) when I'm already logged in another window that's still open.
I looked at this article, took some pointers and got the new tab to work.
https://www.testingexcellence.com/open-new-tab-browser-using-selenium-webdriver-java/
However, still working on the new window. Here's my code.
@Test
public void testNoLoginOnNewWindow() {
WebDriver driver2;
// Browser opened already (from @Before), login to application
JavelinApplication.login(driver1, url, username, password);
// Assert user's homepage displays
// Open new browser, navigate to application
driver2 = new FirefoxDriver(new FirefoxProfile());
driver2.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver2.navigate().to(url);
// Assert user's homepage displays without login credentials asked
driver2.quit();
}
This isn't quite working as expected yet. So, I read this article which didn't really help much:
https://stackoverflow.com/questions/17325629/how-to-open-a-new-window-on-a-browser-using-selenium-webdriver-for-python
But, it got me thinking. So, I re-read this article to leverage the code and open a new window from the existing open browser (similar to File -> New Window).
https://www.testingexcellence.com/open-new-tab-browser-using-selenium-webdriver-java/
Here's my code which actually worked as expected according to my test case.
@Test
public void testNoLoginOnNewWindow() {
// Browser opened already (from @Before), login to application
JavelinApplication.login(driver, url, username, password);
// Assert user's homepage displays
// Open new browser, navigate to application
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "n");
ArrayList<String> windows = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(windows.get(1));
driver.navigate().to(url);
// Assert user's homepage displays without login credentials asked
}
Yay, hooray!
Here's my reasoning between the different code used.
On a Linux env, I already have one Firefox window (#1) opened with My Application homepage displayed. When I open a new Firefox window (#2) from the OS, I must enter the username/password credentials. I enter the username/password and see My Application homepage displayed. When I open a new Firefox window (#3) from one of the existing Firefox windows (#1 or #2), I am not asked for login credentials and see My Application homepage displayed.
On a Windows env, I already have one Firefox window (#1) opened with my Application homepage displayed. When I open a new Firefox window (#2) from the OS (using Windows Start Menu -> Run -> Type firefox), I see My Application homepage displayed in window and am not asked for user credentials.
My assumption is that the different behavior is due to the Operating System. I am not sure and would need to do further research and testing, but this explanation is sufficient for now since my goal with the test case was reached. Cheers!
I looked at this article, took some pointers and got the new tab to work.
https://www.testingexcellence.com/open-new-tab-browser-using-selenium-webdriver-java/
However, still working on the new window. Here's my code.
@Test
public void testNoLoginOnNewWindow() {
WebDriver driver2;
// Browser opened already (from @Before), login to application
JavelinApplication.login(driver1, url, username, password);
// Assert user's homepage displays
// Open new browser, navigate to application
driver2 = new FirefoxDriver(new FirefoxProfile());
driver2.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver2.navigate().to(url);
// Assert user's homepage displays without login credentials asked
driver2.quit();
}
This isn't quite working as expected yet. So, I read this article which didn't really help much:
https://stackoverflow.com/questions/17325629/how-to-open-a-new-window-on-a-browser-using-selenium-webdriver-for-python
But, it got me thinking. So, I re-read this article to leverage the code and open a new window from the existing open browser (similar to File -> New Window).
https://www.testingexcellence.com/open-new-tab-browser-using-selenium-webdriver-java/
Here's my code which actually worked as expected according to my test case.
@Test
public void testNoLoginOnNewWindow() {
// Browser opened already (from @Before), login to application
JavelinApplication.login(driver, url, username, password);
// Assert user's homepage displays
// Open new browser, navigate to application
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "n");
ArrayList<String> windows = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(windows.get(1));
driver.navigate().to(url);
// Assert user's homepage displays without login credentials asked
}
Yay, hooray!
Here's my reasoning between the different code used.
On a Linux env, I already have one Firefox window (#1) opened with My Application homepage displayed. When I open a new Firefox window (#2) from the OS, I must enter the username/password credentials. I enter the username/password and see My Application homepage displayed. When I open a new Firefox window (#3) from one of the existing Firefox windows (#1 or #2), I am not asked for login credentials and see My Application homepage displayed.
On a Windows env, I already have one Firefox window (#1) opened with my Application homepage displayed. When I open a new Firefox window (#2) from the OS (using Windows Start Menu -> Run -> Type firefox), I see My Application homepage displayed in window and am not asked for user credentials.
My assumption is that the different behavior is due to the Operating System. I am not sure and would need to do further research and testing, but this explanation is sufficient for now since my goal with the test case was reached. Cheers!
Tuesday, October 16, 2018
Journey into SET: Part 1
So, I'm getting back into the game of software testing and especially with the new test automation tools and techniques. I'm going to log my journey of catching back up in this field after being in software development (away from testing to purely coding without testing - and I know this is bad). So, let's just add that I'm restoring the best practices of a software engineer.
Nowadays, it seems the new title for software testers is either Software Development/Design Engineer in Test (SDET) or Software Engineer in Test (SET) or similar. The emphasis is on the evolving skills of a tester having the capabilities to develop (or code) meanwhile advancing their techniques of applying best practices in test automation. This makes sense when we consider how the multitude of frameworks for development web application and software tools has also evolved.
Here are some articles to read.
Evolution of the Software Testing role:
One can also gain an understanding of what a test engineer (or SDET or SET) does today by looking up the job qualifications on major tech company career websites including Google (specifically "Test Engineer"), Amazon (spec. "Software Development Engineer in Test"), Microsoft (spec. "Software Design Engineer in Test").
A Quick Recap from Microsoft's Personal Experience
Here's a nice recap from Microsoft on the transition of eliminating the Software Test Engineer (STEs) and creating a "combined engineering" team.
Software Test Design
Similarly to developing any software, developing scripts to test software also should go through the design phase in order to create test structure. This helps with organizing tests to correspond to the software design, finding bugs early in the design process of software development, creating a testing framework for easier ramp-up of new Test Engineers and for easier review of the software development team, and more.
Software Test Design - Problems
First problem I'm interested in is what to name the appendages of the class files especially for the automated test scripts via the browser.
Unit Tests use the appendage "Test" like "HelloWorldTest".
Integration Tests use the appendage "IT" like "HelloWorldIT".
I've seen throughout the Selenium docs the term "AUT" (or application under test) and wonder if I should use this as the appendage for my test scripts via browser like "HelloWorldAUT". But is this sufficient?
Software Test Design - Research
https://dzone.com/articles/design-patterns-in-automation-testing
What is SOLID (Principles)?
https://msdn.microsoft.com/en-us/magazine/dn683797.aspx (dated: May 2014)
*There are a number of terms explained in this article that I really like. For instance, the author says "when I say principle, I'm referring to a feature of the computer code that helps maintain the value of that code."
Software Testing Conferences
Here are some conferences to be aware of with respect to software test automation and the future of testing software.
Software Test Tools
There are a lot of tools from the many articles online that I've read. Not to overwhelm one with reading through all the articles and also knowing that the software tool depends on the software developed, here's a short list of tools that I'm learning and applying.
Leading the list is Selenium as the best, open source tool for testing web applications.
I should really keep track of my progress here. This is getting way too long. So I need to split this step into smaller steps and start publishing.
Nowadays, it seems the new title for software testers is either Software Development/Design Engineer in Test (SDET) or Software Engineer in Test (SET) or similar. The emphasis is on the evolving skills of a tester having the capabilities to develop (or code) meanwhile advancing their techniques of applying best practices in test automation. This makes sense when we consider how the multitude of frameworks for development web application and software tools has also evolved.
Here are some articles to read.
Evolution of the Software Testing role:
- https://www.test-institute.org/Software_Testing_Roles_And_Responsibilities.php
- https://learn.org/articles/How_Does_a_Software_Testing_Engineer_Do.html
- https://www.softwaretestingclass.com/what-is-difference-between-sdet-and-tester/
- https://www.ness.com/significance-of-a-software-development-engineer-in-test-sdet-in-the-digital-economy/
- https://www.cigniti.com/blog/rise-of-the-software-development-engineer-in-test-sdet/
- https://www.guru99.com/software-developer-engineer-test-sdet.html
- https://testing.googleblog.com/2011/01/how-google-tests-software.html
- https://testing.googleblog.com/2011/02/how-google-tests-software-part-two.html
- https://www.testing-whiz.com/blog/8-software-testing-trends-every-tester-should-follow-in-2018
- https://www.upwork.com/hiring/for-clients/top-5-emerging-software-testing-trends-follow-2018/
One can also gain an understanding of what a test engineer (or SDET or SET) does today by looking up the job qualifications on major tech company career websites including Google (specifically "Test Engineer"), Amazon (spec. "Software Development Engineer in Test"), Microsoft (spec. "Software Design Engineer in Test").
A Quick Recap from Microsoft's Personal Experience
Here's a nice recap from Microsoft on the transition of eliminating the Software Test Engineer (STEs) and creating a "combined engineering" team.
Software Test Design
Similarly to developing any software, developing scripts to test software also should go through the design phase in order to create test structure. This helps with organizing tests to correspond to the software design, finding bugs early in the design process of software development, creating a testing framework for easier ramp-up of new Test Engineers and for easier review of the software development team, and more.
Software Test Design - Problems
First problem I'm interested in is what to name the appendages of the class files especially for the automated test scripts via the browser.
Unit Tests use the appendage "Test" like "HelloWorldTest".
Integration Tests use the appendage "IT" like "HelloWorldIT".
I've seen throughout the Selenium docs the term "AUT" (or application under test) and wonder if I should use this as the appendage for my test scripts via browser like "HelloWorldAUT". But is this sufficient?
Software Test Design - Research
https://dzone.com/articles/design-patterns-in-automation-testing
What is SOLID (Principles)?
- Single responsibility
- Open-Closed priniciple: open for extension and closed for modification
- Liskov substitution
- Interface segregation
- Dependency injection
https://msdn.microsoft.com/en-us/magazine/dn683797.aspx (dated: May 2014)
*There are a number of terms explained in this article that I really like. For instance, the author says "when I say principle, I'm referring to a feature of the computer code that helps maintain the value of that code."
Software Testing Conferences
Here are some conferences to be aware of with respect to software test automation and the future of testing software.
Software Test Tools
There are a lot of tools from the many articles online that I've read. Not to overwhelm one with reading through all the articles and also knowing that the software tool depends on the software developed, here's a short list of tools that I'm learning and applying.
Leading the list is Selenium as the best, open source tool for testing web applications.
- Selenium - https://www.seleniumhq.org/docs/
I should really keep track of my progress here. This is getting way too long. So I need to split this step into smaller steps and start publishing.
Subscribe to:
Posts (Atom)