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.
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.
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.
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!
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.
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.
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.
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.
In today’s blog, I read the blog by Java2Blog which is a blog about java problems and other java frameworks and techniques. This post by them talks about how you could get an error for not reserving enough space for an object heap in Java.
First they go over a cause of this error, obviously though the first cause is that you ran your Java program without specifying a heap size which will cause you to get an error. The error would say something along the lines of “Could not reserve enough space for object heap”. The blog also tells you that you will encounter this error more in 32 bit JVM (meaning Java Virtual Machine) than in 64 bit JVM. The blog goes over the reason of this error which is 32-bit Java needs contiguous free space in memory to run the program. Then the fix for this problem is by running Java with a lower heap size and then it gives you a line of code you could use.
The next cause of error is specifying too large memory with -Xmx option on 32-bit VM. The fix for this issue is just lowering the heap size with a single line of code said in the blog. Lastly, the last cause of this error is if you specify a large heap size more than physical memory available on either 64-bit or 32-bit. The way you fix this problem is by again running a single line of code provided in the blog post which I will leave a link to at the bottom for you to check out. The last part of the blog covers certain fixes for Linux and Windows and just a conclusion of the whole thing.
The reason I choose this blog is not only because it relates to Java programming but that it also may come up in my future while I’m working in computer science, who knows that if I’m in IT somewhere in the future or some other computer job that has this problem and I’m one of the only people to know how to fix it. That would probably get me a lot of brownie points at my job which is really nice. Also this blog was well written and straight to its point. Gives you three causes for a problem and gives you the solution to each of them which is really helpful to understand. Java is a very vast programming language and remembering everything about it is hard so getting little reminders of how everything works is always nice. They aren’t joking when they say “Java programming language” because it really is like a whole other language and so is the other programming languages, you got to know every little thing about them or you screw up and everything is wrong. That is my little sidetrack on programming languages but back to the blog, I remember hearing about heaps in my intro. to programming class freshman year and I think we did a little thing with them but not much but hey, the more you know can’t hurt when it comes to programming. Thank you for reading this weeks programming talk with me, come back next week for more.