In my software design course, I recently learned about how using design patterns helps you code better. I thought it would be a good review to go over the concepts this article introduces and potentially link it to things from class and maybe even add some things we did not get through during class.
The three categories Frederico Haag, a computer science engineering student at PoliMi, wrote about are creational patterns, structural patterns, and behavioral patterns.
Based on the design pattern I chose to work on for my individual assignment, I wanted to focus on the facade section–which is a structural pattern. The main take-away of the facade is how it “provides a simplified interface to a larger body of code.” I like how the name itself actually relates to the word facade’s definition: “an outward appearance that is maintained to conceal a less pleasant or creditable reality” (Dictionary.com). As a person who likes the aesthetic side of things, this seems like a convenient design pattern, especially if people who are not working on the code end up seeing it; it may be less overwhelming to some.
Another one of the options my class had for the same assignment above is for the decorator class–which is also a structural pattern. This “adds behavior to an object dynamically without affecting the behavior of other objects from the same class.” For some reason, when I imagine this concept, I think of a decorated cake. Since it is useful for adding the same behavior to many classes; it’s like when you add a spread-out layer of fondant or frosting to a cake, it could either cover the whole section(s) of cake or just some, but it doesn’t mess up the inside of the cake.
Overall, I found this content very useful to reiterate what I had learned and Haag incorporated visual UML diagram examples along with actual snippets of code to help us compare and contrast what he was showing. The content has not changed how I think about the subject because there is no arguing here, it just shows different ways people can structure their code overall. I do appreciate how Haag also listed “typical use cases” for some of them as it makes it easier to imagine.
“Forget about automating your regression tests” is some bold advice from Bas Dijkstra, who has experience as a test automation consultant. It made me wonder what exactly led him to making this kind of statement on regression test scripts and his article, On Ending the Regression Automation Fixation, covered various reasons why.
Two reasons why Dijkstra says starting with automating your regression tests is not ideal includes regression scripts being too long and how regression tests are written from an end user perspective. I find this interesting as a lot of software bloggers are saying automation is not always going to be the answer and their answers have yet to make me disagree.
The reason I chose this is because I am drawn to honesty; two examples above were explained with scenarios with failures Dijkstra has faced from creating inefficient or “plain worthless” cases.
This content will change the way I think about creating potential testing cases as there will be questions to ask myself before proceeding with the task(s) at hand. There will be a lot of reflecting on what could be consuming my test time, which parts are too repetitive, or what can just be done better. I mean of course I’ve already been considering these questions but now there will be a more conscious effort to think about them.
Dijkstra’s process especially considers the difference between how many scripts there could be when a computer is trying to translate what a human could have performed when testing. I realize how that would be an issue when trying to understand what could have went wrong or does not match up fully when there is less (specific) feedback when it comes to automation.
Thanks to this article, I will also try to predict how many layers of regression scripts would be too much of a hassle to develop ways for communication between what is being tested under the application. Overall, this information was useful as we should be reminded that “automation is meant to make your life and testing applications easier”; it should make sense and not be done at random, especially for regression testing.
As someone who will be graduating within the next year, I’m always interested in what software development is currently like. Ekaterina Novoseltseva uses some 2018 statistics and presents interesting facts about software development through Apiumhub—which is a software development company based in Barcelona. The data in this article comes from a collection of over 300 answers from different countries around the world; starting with the challenges in software development.
Although I knew of the current trend(s) for the most part, I was surprised to see what Apiumhub had to conclude on software outsourcing. It shows an infographic where of the people who did outsource software development fully or partially, only 10.06% of them were “absolutely satisfied” and 51.57% were “somewhat satisfied.” Based on what I’d been hearing of people being worried of getting all the tech jobs outsourced, maybe the scare isn’t as bad as people led it on to be. I mean of course, the total majority of responses from that fall under “satisfied” but it was not fully satisfying—this would probably be best for quick, short-term fixes or work. Which shows how there is still more to people-to-people communication in the company’s direct workforce and it puts my mind at ease a little more.
To kick off this series, I wanted to introduce why Software Quality Assurance (SQA) testing is important not only for testers to understand, but for developers as well. From my experience, I’ve become familiar with manual testing and exploring different types of automated testing for web applications. I wanted to know a little more about how being a good developer also includes being a good tester and found an article on SimpleProgrammer which reveals the importance of knowing how to test.
John Sonmez, the founder of SimpleProgrammer, says that he “owe[s] a large amount of the success [he] ha[s] had in [his] career as a software developer to [his] background in testing.” I can see why he feels that way, as using just a little more time to double-check what you have created could save you even more time in the long-run. For instance, if something you have spent hours working on seems complete and you do not double-check it and pass it on to a QA team, you have to wait for someone in QA or a testing platform to check it. That could take anywhere between minutes to a few days or more. Once it is QA tested, maybe a bug is found and your task falls back into your hands again.
Could the scenario above been preventable? Yes and no. It is a true that “you can never find all the bugs or defects in a piece of [theoretical] software and you can never test every possible input into the [theoretical] software” but you can try your best. This doesn’t necessarily mean having to do your own end-to-end regression testing through the entire software each time you add a minuscule feature but you should thoroughly check what you have changed and the features directly connected to it.
The article continues to describe common testing forms and what they each mean for developers. Sonmez supports the Agile cycle of software development and describes it in the article as well.
Ever wondered what it was like to work for a tech company? Here’s a perspective from an entry-level/intern position at ten24 Digital Solutions!
Hi I’m Sam, a rising senior in uni! Throughout the past ~2 months I’ve been working at a company downtown and brought my camera to work one day to vlog what it’s like.
I truly appreciate how welcoming everyone at ten24 was, it makes it hard for me to believe I’ve only been a part of the team for two months so far! I didn’t even know this was possible but my love for technology grew even more through learning to use different software tools that I wouldn’t have known existed until now.
This is the 1st video of my internship series, feel free to stay tuned for more including ‘what’s in my bag’ and internship advice.
Shout out to Nina for helping me film that ending and eventually climbing into the backseat for a better shot haha!
Side note; working here has it’s perks like being in super-walking distance to city events and local coffee shops, lunch spots, and more!
What is Enactus you say? Maybe I’ve never posted something to briefly explain it but I’ll do so now! But first, feel free to check out my vlog I just uploaded of the National Exposition in late May:
Honestly, Enactus is such a broad program (a global one) and it stands for ENtrepreneurial ACTion US. At my university, we have several projects which cover more than six of the United Nation’s 17 Global Goals.
Our projects range from teaching financial literacy to men recovering from opioid addiction to implementing pro-inclusion “Buddy Benches” at 33 of our city’s public elementary schools.
This year, my role as Director of Technology on the E-Board consisted of attending our project events and capturing photos and filming videos then editing them all together to help create our 17-minute visual presentation that goes along with the speech.
The United States’ Enactus Competition process starts with teams competing in their (or other) regions depending on which location they choose and then if they move on from the top tier of their league(s), they compete again at the national level in Kansas City, MO. The panel of judges consists of Fortune 500 company executives or their representatives and the criteria includes project sustainability, how well resources were used, presentation, and a question-and-answer round.
We’re so much more than this little explanation but there is not enough time in the world to cover what Enactus is so if you have any questions, please feel free to ask me anything!
I’m so grateful to have experienced the Enactus National Exposition with my team once again this year and I’m hoping to continue doing so over time!
Your girl is here to help you destress on top of this hectic semester she’s been going through. I’ve always wanted to start making calmer and more productive videos so here’s my first take on it.
Put your contact info in ASAP, if you ever lose your planner aka your life, wouldn’t you want someone to let you know they’ve found it?
Create designated “planning” time, like Sunday mornings to relax and prepare for the upcoming week.
Get a master list of all the events/exams/projects/etc that you have to take on. Or you can just gather all of your syllabuses together.
INVEST IN STICKERS. Or at least colored pens and markers. I swear they’ll make becoming productive more enjoyable. And I mean, the more you spend money on something, the more you’ll feel the need to get use out of it, right?
After going out for so many Saturdays in a row, it feels weird to come home from a Saturday afternoon of working and shopping to a night in lounging in comfy clothes for once. There’s probably a special german word for this feeling, I just don’t know how to google it.
I was asked to attend an event recently and I was given flashbacks to how I always reacted when I found out there was an event for me to attend. I mean, I want to go, but at the same time I don’t know if I really do, you know? The chart I just discovered (above, from @introvertdoodles) will help me figure out whether I should go to things now! I’m always saying “yes!” to things excitedly and then it takes up my entire calendar and now I am going to try and focus spending my energy more carefully.
Every time I take a personality test or compared the sides, my results are definitely more extroverted than introverted because my energy comes from going out and about but I think I may have come to the point of getting burned out because of overloading this. It felt like so much was happening all at once like sensory overload combined with an inconsistent sleeping and eating schedule, I had almost no time for myself. I can’t wait to see what this year brings after being able to reflect on 2017 and trying to make changes.