Post #4: Testing Documentation and Formatting

Hello and welcome back to Benderson’s blog! This week’s blog will focus on the documentation and formatting you would use for testing software. I found a blog that talked about the right format for documentation and formatting by Chris Kenst. At the beginning of his blog, he talks about how you know what is the appropriate documentation for a test and says it will depend on the degree on the test technique and approach you use. He talks about a couple different techniques in a short sentence but in the end says cramming all of them into one system isn’t really a good idea. The next paragraph talks about how much you need for documentation which he sums up with a small amount because you need to focus more on the project itself than the documentation that you put in there. The time it would take to make all the documentation for the test, you would run out of time for the test and documentation it self. The next and final paragraph focuses on stay agile, “Focusing on the appropriate documentation for your tests and then creating the smallest amount you need to do your job well also allows you to have agility”, this sentence from the blog sums up the whole paragraph really well.

This blog was very informational on the topic of test documentation and formatting and how much you should focus on it. I haven’t really been big on documentation in my four years in college as I always find it as an additional thing that I really don’t have to do but over the years, I’ve began to realize how important it is to have in your code. My reasoning usually is that I know what each of those methods do so it doesn’t need to be documented and formatted but I realized that in the actual work world I will have other people reading my blogs and they won’t know exactly what each method does unless I document it. So going back to this blog, getting all the information I need to know how much I should document and how I should format is very helpful for not only me but my future colleagues who will have to read my code. Knowing exactly what you’re testing is probably a pretty good thing to know. Also, knowing some tidbits such as focus more on the testing than the actual documentation and write a small amount so you have time, will help me make sure I get the tests done and have a good amount of documentation.



Post #3: What/Why Software Testing is Important?

Hello and welcome back to Benderson’s blog where we discuss computer science topics that are happening in present time. This week we are going to discuss what is software testing and why it is important, I got this topic from a blog post posted by Harshit Satyaseel at Technotification. He talks about everything to do with software testing which is very helpful for people to understand and get what is software testing. He first starts by talking about what is software testing and he defines testings as “confirming that whether the actual results match the expect results”. Testing is a long process that makes sure that each and every software component/system passed the expected standard of performance set. Testing in software can be done manually or using automated tools. He then goes into why it is important to test your software and lists off reasons like finding defects/errors in the code, the quality of the software, and some more important reasons. Then he goes into software testability and lists off some characteristics of testability. Generally, what testibility is, is the guidelines and rules of testing and what you should look for to fix and make an improvement on.

The reason I choose this blog to write about besides the fact that the course I’m taking is focused around software/code testing is because it had some interesting tidbits and good guidelines to look for when testing mine or someone else’s code. The writer also talked about what software is which most blogs really don’t do when they are talking about something inside computer science, they always assume you know exactly they are talking about regarding the topic. For me, I know what software is but for the common person trying to gain knowledge on software being told what software is and why software testing is important makes the reader more knowledgable on the topic. He even gives the fact about Alan Turing in 1935 with the theory of software which was a nice touch. When he talks about the reasons for testing software, I like how he listed them out instead of creating a huge paragraph that is a jumbled mess about it. They are also very well listed and easy to understand regarding to software development. I will keep the guidelines and rules that the writer talks about in my mind whenever I test my code now, they are very good things to keep in mind. Thank you for joining me this week and reading my blog post.


Post #2: Why Code Reviews Will Help You

Hello fellow readers and thank you for reading my blog. This week I want to talk about code reviews which are essential to the testing process in computer science. I read a blog post by greenido (Ido Green), where he talks about how code reviews will improve you. He begins his blog by talking about how code reviews promote social interaction as you would like your team members make comments on how to improve your code so it is the best it can be. Most companies like Facebook, Netflix and Google are also using code reviews as a way of promoting social interaction and improving as a company. Then Mr.Green goes into other reasons you would ask for a peer review and they are: Bugs(Accidental errors/Structural errors), helps you get better and lastly they will help make sure it is readable/testable. It also benefits developers in many ways such as increases productivity, reduces unit testing/debugging time, less time performing rework and many more reasons. He also dug up some data and research and provide several different examples of times where code reviews have helped. Lastly, he talks about what not to do which is skip a peer review due to time, never judge coder off the review and always suggest solutions.

This blog was very well written and helped me understand why peer review code reviews are important to the testing development. I’m pretty self conscious about most of my work, back when people had to peer review essays for class, I would always hate when someone read my paper because I felt like it was bad. Well with code I know I’m not the best and I understand after reading the blog that to get better I need to have someone help review my code. What makes sense to me, may make no sense to someone else that is reading my code and I need to make sure my team members know what is going on during a certain part of my code. That goes back to part of the blog where Mr.Green talks about readability in your code and how the peer reviews are important for discovering if everything will make sense. Also if you’re working on a project with someone else, you would want the opposite where you want to review their code and make sure you get the general grasp of it so you can understand what it does. In my recent projects that I have had in my computer science classes, I try my best to make sure my code is easily readable for the teacher. Code reviews are essential to the testing process without it coding would be worse.


Post #1: Tests Adding Value

Have you ever wondered if your tests are adding value to your work? Well I was reading a post by Andy Knight at Automation Panda who talks about the worries of testing and why people may think that it isn’t adding value. Andy begins by talking about how important testing is to software engineering stressing that people make a job out of it so it must be important. He clarifies that testing is important with one word: Bugs. Bug counting though is not the best way to make sure your test are adding value. Andy talks about three main facts that make bug counting not the best way to see if testing is adding value. They are fast feedback, good testing reduces bug count, bug counting drives bad behavior and bugs are usually rare. He goes into detail on all of these and how they effect the value of testing and he has some really good points for all of them. After he establishes why bug counting hurts testing, he goes onto talk about metrics that would be good for testing. He provides three different metrics being: Time to bug discovery, coverage and test failure proportions. He provides reasoning for all those metrics as well.

I don’t know too much about testing, mostly because the class I’m in is going to teach me about testing but this blog post provides a lot of insight on why testing is important and not a waste of time. Testing is a big part of programming as it makes sure that your code doesn’t have too many bugs so it runs as you want it and if it does have bugs, that you find them and able to fix them as soon as possible. I was able to learn that bug counting isn’t the best metric to figure out that your tests are adding value as they have many negative side effects such causing bad behavior or believing that its a waste of time because there are little bugs even though that means its just good code. It is just good to know that there is other metrics that make testing feel more valuable to the software engineering process. After reading about coverage being a metric, it makes a lot of sense why that would be more helpful of a metric than bug counting, covering a wide spread for testing would make it better to find the bugs and makes sure everything is in smoothly. Testing is an important part of software engineering and since it is so important, you want to use the best metrics for it and this blog post provides the best.



Introductory Blog CS-443

Hello and welcome to Benderson’s blog where I will be posting weekly blogs about Computer Science related events. When I was a child, I was always trying to get to technology, starting at the age of four I got my first console which was the N64 and I fell in love with video games. Later on I just started getting more and more invested into technology that in high school I decided that since I’m always around technology and love using them, I want to be a Computer Science major when I got to college. Fast forward to present time, I’m a Senior at Worcester State University going for my Computer Science degree with a minor in Communications and looking forward to getting a job in the field.

My life is so invested in technology that my mom tells me when I come home from college, the families electric bill goes up a whole $100, which is a lot of money for an electric bill by itself. I look forward to posting blogs about future technology or different computer science programming languages and techniques that are out there and that I can find and provide my input on how I feel about them. Hopefully you enjoy reading my blog and come back every week. Thank you for reading and have a wonderful day!

Blog 9: Decorator Design Pattern Response

In today’s blog I’m going to talk about a blog that was written by Brian Ambielli who is a Senior Software Engineer and he wrote a blog talking about a topic that I have to do a project for called the Decorator Design Pattern. There are many design patterns for programmers, some that I learned this year were strategy, singleton and factory patterns which we used for our first two projects in the class. Anyways, Brian goes in depth about what the Decorator pattern is about and how it is used.

The Decorator Pattern allows you to give your objects new responsibilities at run time without making any code changes to their underlying classes. This pattern allows the user to extend objects with added functionality at run time and also gives the developers the power to compose objects that are purpose driven for current demands of their users. Brian says that Decorators can be thought of as wrappers around the object they are decorating, the object being decorated in these cases is the SuperType, then the decorated object can be passed and used in a program in place of the original wrapped object. Then he shows a diagram exampling what the Decorator pattern looks like and after explains what each of the parts of the diagram do to make it a Decorator Pattern which is really nice if you don’t understand it by looking at it. Then Brian provides a example with a Pizza shop talking about its toppings and different crusts and all the variables that are considered with a pizza, he then puts another diagram up showing how the decorator pattern would look with this example. Lastly, Brian provides some negatives of the Decorator Pattern and why it can be a pain to use sometimes.

This blog by Brian was very helpful, not only helpful because I didn’t know what the Decorator class was before this blog but that it is also the same topic I’m doing my project on for my college class, so now I have something to look at and use for my tutorial that I have to write for this class. Brian providing examples will also help me with this project as it helps me understand it better and makes it easier for me to make my own so I can get a good grade on the project. Besides this being helpful for my school work, Brian provided a lot of detail in his blog that could be helpful to anyone trying to learn about the Decorator patterns, him providing examples and telling people how the Decorator class exactly works and may help people decide to use this for their programs in the future. Brian didn’t just do the decorator patterns, Brian has blogs on all different types of patterns. The blog also providing what the negatives of this patterns are helpful for people like me who want to see what could go wrong with using this design pattern in future cases. Thank you for reading my blog post on the blog by Brian for the Decorator pattern, if you want to check out any of Brian’s blogs on any other patterns, I’ll leave a link at the bottom.


Blog 8: Angular 2 Response

Hello readers, today I’m doing my response blog on a post from AshuTomar who wrote a very nice blog related to computer science and something that is actually being talked about in my computer science class right now.

The blog starts by talking about typescript, the writer says it is type safe which means it can generate errors at compile time only. It is also purely object oriented an extends object oriented javascript. Typescript also allows to write class, interface and module-statements just like in Java and lastly typescript can transpile to any version of javascript code.

Next the writer talks about the speed and performance of Angular 2 and that it supports lazy loading which means you don’t need to load the complete app at once but modules can be loaded dynamically whenever there is a requirement. Angular 2 also supports AOT compilation which allows you to compile your code ahead of time.

Skipping the uses of the valid HTML, DOM section, the writer talks about the modular design of Angular 2 and how it is easier for Java based programmers to learn a new Javascript framework. Lastly though in the blog the writer shows code how to use the bootstrapping application and talks about and shows dependency injection enhanced.

The reason I chose this blog was because it is very familiar to what we are talking about in my software class in college right now. We are trying to do typescript in webstorm for our duck simulator program that we had to write in different strategy patterns. Getting back to Angular 2 and typescript, this blog explained a little about typescript and what the writer learned from Angular 2 and how it works and what it can do. I’m not an expert on Angular yet, just learned it was a thing so getting any information from anywhere right now is always good to improve my skills. The writer says Angular 2 allows people the ability to make a single page application in a perfect viable way. Reading that makes me really want to get into Angular and learn it because going to a work place and applying to a job, if you can make them a webpage or do any computer science things that involve creating applications, it makes you more wanted than if you didn’t. That is given that if you have more impressive details on your application then you will be more wanted by a job, well with this skill in angular you could also do some freelance work, make webpages or applications for different companies for a side job, a lot of people could make a lot of money just by doing that, so I’m not shying away from learning angular and type script. In conclusion, Angular and typescript are very important for a computer scientist future, also this blog is a good read, gives some details about angular 2 and how it works. Thank you for reading my blog this week, come back next week for some more programming talk with me.