Author Archives: Adrianna Frazier

TEST AUTOMATION

Today’s blog post is about test automation. I chose to use a youtube video created by the YoutTube channel “Testopic”. In this video, Testopic goes over the importance of automated testing as well as the when it’s warranted, the pros and cons, and a demonstration on how it works using a certain automated testing platform. I chose this topic because it is directly related to the material that we are learning about in class when it comes to testing code. I also chose this because we have not touched much on automated testing with in class activities and I wanted to expand my knowledge on this topic. 

This video was very helpful because I was able to learn about the best ways to integrate automated testing and understand that it is not always indicated in all aspects of testing; in fact it is sometimes less efficient. Since automation is run by a machine and, once implemented, can be very fast, it is best to utilize it in scenarios that test on smaller units of code that needs to be tested repeatedly. This is best applicable to unit testing, where developers need to test small components of the larger project individually. Since the components are smaller it is easier on the tester to teach the machine how to test the code. Teaching the machine is part of the upfront time that goes into test automation; this upfront time is elongated when attempting to test larger sections of code such as with integration testing and end to end testing. Using automation with testing this level of code will take up too much upfront time and take the machine longer to run repeatable tests. When using automation with integration or system testing, it will also require more maintenance when a smaller component is changed.  

Learning about automation testing not only helps expand my knowledge on the course work but will also help me in my personal endeavors. As an aspiring web developer, I will need to learn how to test small aspects of my site and learning how to automate those will be very helpful. The benefit of this was shown in the video where the youtuber demonstrated how he used Selenium to demonstrate automated testing with the way google connects a search result to a certain chosen link. I will be able to use some of the methods seen in this video to help with future projects this summer. 

From the blog Anna The Dev by Adrianna Frazier and used with permission of the author. All other rights reserved by the author.

The Next Phase: Integration Testing

https://www.geeksforgeeks.org/software-engineering-integration-testing/

Amongst all of the phases of testing and quality assurance, one of the most critical, and arguably the most satisfying, is integration testing. In an article posted to the geeks for geeks website, the author dives into the importance of this phase that comes after all unit testing has been completed. The article notes that this software testing technique focuses on verifying the interactions and data exchange between different components or modules of a software application. It helps to identify and resolve integration issues early in the development cycle, thereby reducing the risk of more severe and costly problems later on.

I chose this topic because I wanted to have a better understanding of the individual components that make up the complete software testing life cycle. For our final group project, we chose to create a lesson plan around integration testing and system testing. Part of my portion of the project is developing a module based around integration testing; this article gives a comprehensive overview on this topic.

The biggest takeaway from this article was about the different methods of integration testing. I was not aware of the different approaches that you can take when doing this type of testing. Big- bang testing is a method that is simple to implement because it combines and tests all modules at once. However, this is not the most efficient when it comes to larger systems because it can be harder to diagnose where a problem has stemmed from. Bottom up testing tests component integration starting with the lower level modules and working their way up while Top-down testing does the opposite. Both come with their own set of advantages and disadvantages but most can be mediated with mixed integration testing; mixing both bethods together.

At first impression, the article made me draw connections from this phase of testing to how I have developed and tested things in the past, especially my personal website. I feel like going from unit testing to integration testing to system testing is an inherently human way of developing anything. When I was building my personal website, I was learning CSS and HTML as I went along. I found that I naturally performed integration testing directly after testing individual components of my site. It was during this testing phase I was able to get the first feel of how my site, webpages, links, and API’s worked together; it was the one of the more satisfying parts of my web development journey. Moving forward, now having a better understanding of this phase of testing, I will try to implement a more systematic angle of integration testing in future projects being sure to utilize the different methods that were outlined in this article.

From the blog Anna The Dev by Adrianna Frazier and used with permission of the author. All other rights reserved by the author.

Test Driven Development Lifecycle

Today’s blog is about Test Driven Development or TDD. In this video titled TDD – Test Driven Development ( Red | Green | Refactor ), the youtube poster details the TDD lifecycle, its importance, and an example of its application. Throughout the video, the poster highlights the advantages of TDD and why it may be the best way to help design well implemented code when it comes to code quality and code coverage. 

I chose this video because I wanted to expand my knowledge on the concept of TDD in order to help with my current homework assignment. This particular concept was tough for me to grasp since I was not in class for the POGIL assignment and after reading information on it in the textbook, I felt I needed a more visual example of someone working through the TDD lifecycle from start to finish. It was also important to find a video that explained this using jUNIT.

In order to write your tests it is important to understand the specifications provided to you and account for all the ways the test could fail. One of the most important things I have learned from this video is the concept of the Red, Green, and Refractory stages of TDD. The Red stage signifies the first step in this testing strategy, being making your test fail. Before the programmer writes any code in a method that would describe its functionality, the person must first write a test that is testing a specification, but then fails due to the functionality having yet to be written. From there the programmer will write simple code that will make the pointed test pass, thus satisfying the ‘Green’ stage of TDD. From there, the youtuber continues to ‘Refactor’s’ the code to improve it without changing its behavior. He does this by making sure the behavior of the method will cover all failure possibilities.  After looking over a handful of videos on this topic, this particular video was the most beneficial because it was straightforward, used a very basic test example, as well as showing different ways a person could approach this type of testing. I also appreciated his inclusion about test coverage and how this TDD method helps achieve 100% coverage. After having watched this video I have taken another look at my team’s code from the POGIL assignment that I missed and now have a better understanding of how they completed the assignment.  I will be applying this poster’s methods and knowledge to my upcoming homework assignment on this topic.

Source: https://www.youtube.com/watch?v=UzRa5cLma0g

From the blog Anna The Dev by Adrianna Frazier and used with permission of the author. All other rights reserved by the author.