A Feast of Decisions

We recently went over how to test our programs and code using decision table testing. Decision table testing is extremely useful for laying out the requirements and conditions so that it is easier to comprehend and understand. This blog goes over, in detail, how to set up a decision table for a problem with an ATM and what conditions must be met to withdraw money. You can find it here: http://reqtest.com/requirements-blog/a-guide-to-using-decision-tables/ (I also used their pictures.)

I chose this blog to share with you because it relates directly to the assignment we were given for decision table testing. It has a section before the steps that give you the advantages and disadvantages to using the decision table which I thought would be useful to know and highlight. It also has every step for creating a decision table and is easy to understand.

“One advantage of using decision tables is that they make it possible to detect combinations of conditions that would otherwise not have been found and therefore not tested or developed. The requirements become much clearer and you often realize that some requirements are illogical, something that is hard to see when the requirements are only expressed in text.” – Ulf Eriksson, ReQtest

This advantage to decision table testing is a big one. Being able to easily cover every single case without being confused is extremely helpful. Essentially, decision tables give you a visual to go with the words.

The disadvantage to using decision table testing is that the decision table does not represent the complete test cases. Meaning you will have to think a little harder about how you write your cases.

With this being said, decision table testing can be used anywhere and this blog stresses that the tables should be constructed during system design so that the designers and testers are able to take advantage of the tables.

The steps are pretty easy to creating a decision table, the blog goes into more details with pictures (I recommend checking it out).

First, you want to figure out the conditions and actions in your problem. Conditions will be a requirement while actions will be the thing that happens if specific requirements are fulfilled.

conditandactions

Second, You want to figure out how many rules you are going to have. This is found by 2^n where n is the number of conditions in your table.  Your going to want to fill out your table with the different possibilities of conditions being true/false.

numbofcond

3

Third, you want to reduce your table by combining redundant cases. The “-” means that you don’t care if credit is granted sense you have enough money in your account regardless.

4

Notice how Column 1 and 3 were the same? Now they are combined.

5

This is the final table you would use to write test cases for this program! Overall, Decision Table Testing is a great way to lay out all requirements in front of you to ensure you do not miss any possible combinations of input!

 

 

Advertisements

The Importance of Quality Software

Sure, software can be of the most useful tools to people trying to get their job done. But if you make mediocre software, it can just cause stress and annoyance to the person trying to use it.

So why test your software? Why should you make it as easy as possible to use?  A blog on SmartBear talks about 5 main reasons why software quality assurance is so important. It can be found here: https://blog.smartbear.com/sqc/5-reasons-why-software-quality-matters-to-your-business/

This blog really drives home the importance of software quality from a business view. Obviously, we all know the saying “quality over quantity”, so it should not be a big surprise that the quality of a company’s product should be excellent. The blog isn’t very long but I picked it because it makes very good points about how creating good software effects the people around.

The main five subsections of the blog are predictability, reputation, employee morale, customer satisfaction, and bottom line.

Predictable software is one of the most satisfying things to come across as a coder. It should do this, and it does just that. Nothing better than that! Software that is predictable is easier to use and people have a much better experience using the software. I like that the blog says “do it once and do it right” but don’t expect to get it right the first time. Re-work it even if it works, just to make it better! This leads to a good reputation.

Reputation is important to who you are and it sure is just as important in software quality. You want to have a good reputation so you have to put in the work to make sure the software works as it should. You could have hundreds of good quality programs and one really bad one and still have a bad reputation, just because of that one bad program.

Think about the people using your software! Do you really want them to have to keep restarting it because it won’t load? I know I have a few programs at work that I try to avoid at all costs! Using programs like these cause people to hate you, yes you, the creator. Which is why the blog talks about “Employee Morale” and how good quality makes everyone that much happier.

Happier people means less work in the long run. Do it right and be organized and your customers will be satisfied with your software. If they are unsatisfied, that means you have to fix things and make it better, OR run your reputation into the dirt! Test your code so much it hurts.

The bottom line is that your software quality NEEDS to be good. All of these things above come from well-tested code. So if you are reading this and you are studying testing like me, just remember that whatever you do, don’t slack on testing, it is one of the most important part of creating software!

 

 

Future of Testing: From the Experts

I came across one from QA Symphony about the future of software testing from the eyes of experts. It can be found here: https://www.qasymphony.com/blog/5-trends-future-software-testing/ .

I have never actually met an expert software tester or anyone that is solely that, a tester. So when I saw a blog that interviewed 12 of the supposed best software testing experts around, I thought I could learn a thing or two from them.

The blog is written in categories, so it is easy to read and understand exactly what they are talking about. I also really enjoyed the setup of the tabs on the left side.

The categories the blog includes talks about automation, up and coming tech., willingness to adapt and learn, blurry lines, and how skill sets will bear the test of time.

Automation

All of the experts that were interviewed agreed that automation is extremely important in the field of testing. However, most of them stated that it is a dangerous place to “over-automate”. The compromise that the experts talked about that I will be keeping in mind is that automation should be used to free up some time to explore into your testing further.

Up and Coming Technology

The biggest focus in this section was machine learning and AI. One of the experts, Seghal, states “these technologies will give us an additional layer of automation. They will become prescriptive, they will augment testing and they will become self-adaptive.”

This is obviously huge in the area of testing. To have a computer learn the best way to test a certain program and then do it for you without even asking? Sounds like a dream!

While the experts talk about how hopeful these technologies can be, they also talk about the challenges they will cause, which the next section covers.

Willingness to adapt and learn

One of the experts, Suma Daniel says “To succeed in the future, testers need to be willing to adapt and learn new technologies and embrace more fluid development cycles, such as DevOps.”

Always question the way you are testing, if you think you can do better, than try and do better. This blog emphasizes that you should invest yourself in your company and try to improve and advance to be better than before. You would think this is obvious, but some testers just don’t think the same way as developers.

Lines will get blurred

All this means is that when you are testing, you should be working very closely with the people creating the software. Have communication and be ready to work in a development environment rather than just a production environment.

Skills bear the test of time

With all this said about new technology, don’t forget about the human touch.”Critical thinking, communication and interactional expertise are vital to being valuable to your business and managing risk.” I think this is my favorite part because those basic skills are extremely vital to your success as a software tester.