Category Archives: CS-443

Quality Assurance Survey Article

 


This week I decided to look up what was going on in the news for software
quality assurance. I found this article about a survey on the future of
quality assurance and found it interesting. The headline was more
specifically about the adoption of A.I. in software testing. I have already
covered some of the potential benefits of the use of A.I. in software
testing, so consider this to be a follow up to that. Keep in mind this
article was written back in December of 2023, so things could have
potentially changed in that time. 

The title of this article states that over 78% of software testers have
adopted A.I. into their testing. This kind of comes as no surprise since
people have been gushing about the new burgeoning technology for a while
now.  The tech industry has made a big effort to adopt A.I. into as
many different fields as possible. The automation of test cases is not a new
subject, but the use of A.I. is a fairly recent addition to the tools
testers have at their disposal. These tools are being implemented in
different sections of the quality assurance process, with an adoption rate
of 51% for test data creation,45% for test automation, 36% for test result
analysis, and 46% for test case formulation. And like I said before, these
are the numbers the end of 2023, who knows what the current numbers
are.

https://www.prnewswire.com/ae/news-releases/ai-adoption-among-software-testers-at-78-reliability-and-skill-gap-the-biggest-challenges-302007514.html

On a side note, the article says that software testers are being involved
much earlier in the development process. This ties in directly with what I
have been learning in class for the past two semesters about sprint
planning. Having testers be there in the sprint planning phase allows to get
the specifications for the test cases earlier than before, but could lead to
test cases without implemented code.

All of this data comes from a survey into the future of quality assurance
by Lambda Test. Some other interesting figures from the survey include
numbers on quality assurance budget and the ratio of QA testers to
developers. Companies, both big and small, seem to see quality assurance as
a valuable part of the software development process, and invest accordingly.
Interestingly, there is also data on the state of testing itself, with a
particularly interesting note about the benchmark for bug identification
being around 10%.

https://www.lambdatest.com/future-of-quality-assurance-survey?utm_source=media&utm_medium=pressrelease&utm_campaign=dec06_kn&utm_term=kn&utm_content=pr

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Quality Assurance Survey Article

 


This week I decided to look up what was going on in the news for software
quality assurance. I found this article about a survey on the future of
quality assurance and found it interesting. The headline was more
specifically about the adoption of A.I. in software testing. I have already
covered some of the potential benefits of the use of A.I. in software
testing, so consider this to be a follow up to that. Keep in mind this
article was written back in December of 2023, so things could have
potentially changed in that time. 

The title of this article states that over 78% of software testers have
adopted A.I. into their testing. This kind of comes as no surprise since
people have been gushing about the new burgeoning technology for a while
now.  The tech industry has made a big effort to adopt A.I. into as
many different fields as possible. The automation of test cases is not a new
subject, but the use of A.I. is a fairly recent addition to the tools
testers have at their disposal. These tools are being implemented in
different sections of the quality assurance process, with an adoption rate
of 51% for test data creation,45% for test automation, 36% for test result
analysis, and 46% for test case formulation. And like I said before, these
are the numbers the end of 2023, who knows what the current numbers
are.

https://www.prnewswire.com/ae/news-releases/ai-adoption-among-software-testers-at-78-reliability-and-skill-gap-the-biggest-challenges-302007514.html

On a side note, the article says that software testers are being involved
much earlier in the development process. This ties in directly with what I
have been learning in class for the past two semesters about sprint
planning. Having testers be there in the sprint planning phase allows to get
the specifications for the test cases earlier than before, but could lead to
test cases without implemented code.

All of this data comes from a survey into the future of quality assurance
by Lambda Test. Some other interesting figures from the survey include
numbers on quality assurance budget and the ratio of QA testers to
developers. Companies, both big and small, seem to see quality assurance as
a valuable part of the software development process, and invest accordingly.
Interestingly, there is also data on the state of testing itself, with a
particularly interesting note about the benchmark for bug identification
being around 10%.

https://www.lambdatest.com/future-of-quality-assurance-survey?utm_source=media&utm_medium=pressrelease&utm_campaign=dec06_kn&utm_term=kn&utm_content=pr

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Quality Assurance Survey Article

 


This week I decided to look up what was going on in the news for software
quality assurance. I found this article about a survey on the future of
quality assurance and found it interesting. The headline was more
specifically about the adoption of A.I. in software testing. I have already
covered some of the potential benefits of the use of A.I. in software
testing, so consider this to be a follow up to that. Keep in mind this
article was written back in December of 2023, so things could have
potentially changed in that time. 

The title of this article states that over 78% of software testers have
adopted A.I. into their testing. This kind of comes as no surprise since
people have been gushing about the new burgeoning technology for a while
now.  The tech industry has made a big effort to adopt A.I. into as
many different fields as possible. The automation of test cases is not a new
subject, but the use of A.I. is a fairly recent addition to the tools
testers have at their disposal. These tools are being implemented in
different sections of the quality assurance process, with an adoption rate
of 51% for test data creation,45% for test automation, 36% for test result
analysis, and 46% for test case formulation. And like I said before, these
are the numbers the end of 2023, who knows what the current numbers
are.

https://www.prnewswire.com/ae/news-releases/ai-adoption-among-software-testers-at-78-reliability-and-skill-gap-the-biggest-challenges-302007514.html

On a side note, the article says that software testers are being involved
much earlier in the development process. This ties in directly with what I
have been learning in class for the past two semesters about sprint
planning. Having testers be there in the sprint planning phase allows to get
the specifications for the test cases earlier than before, but could lead to
test cases without implemented code.

All of this data comes from a survey into the future of quality assurance
by Lambda Test. Some other interesting figures from the survey include
numbers on quality assurance budget and the ratio of QA testers to
developers. Companies, both big and small, seem to see quality assurance as
a valuable part of the software development process, and invest accordingly.
Interestingly, there is also data on the state of testing itself, with a
particularly interesting note about the benchmark for bug identification
being around 10%.

https://www.lambdatest.com/future-of-quality-assurance-survey?utm_source=media&utm_medium=pressrelease&utm_campaign=dec06_kn&utm_term=kn&utm_content=pr

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

Quality Assurance Survey Article

 


This week I decided to look up what was going on in the news for software
quality assurance. I found this article about a survey on the future of
quality assurance and found it interesting. The headline was more
specifically about the adoption of A.I. in software testing. I have already
covered some of the potential benefits of the use of A.I. in software
testing, so consider this to be a follow up to that. Keep in mind this
article was written back in December of 2023, so things could have
potentially changed in that time. 

The title of this article states that over 78% of software testers have
adopted A.I. into their testing. This kind of comes as no surprise since
people have been gushing about the new burgeoning technology for a while
now.  The tech industry has made a big effort to adopt A.I. into as
many different fields as possible. The automation of test cases is not a new
subject, but the use of A.I. is a fairly recent addition to the tools
testers have at their disposal. These tools are being implemented in
different sections of the quality assurance process, with an adoption rate
of 51% for test data creation,45% for test automation, 36% for test result
analysis, and 46% for test case formulation. And like I said before, these
are the numbers the end of 2023, who knows what the current numbers
are.

https://www.prnewswire.com/ae/news-releases/ai-adoption-among-software-testers-at-78-reliability-and-skill-gap-the-biggest-challenges-302007514.html

On a side note, the article says that software testers are being involved
much earlier in the development process. This ties in directly with what I
have been learning in class for the past two semesters about sprint
planning. Having testers be there in the sprint planning phase allows to get
the specifications for the test cases earlier than before, but could lead to
test cases without implemented code.

All of this data comes from a survey into the future of quality assurance
by Lambda Test. Some other interesting figures from the survey include
numbers on quality assurance budget and the ratio of QA testers to
developers. Companies, both big and small, seem to see quality assurance as
a valuable part of the software development process, and invest accordingly.
Interestingly, there is also data on the state of testing itself, with a
particularly interesting note about the benchmark for bug identification
being around 10%.

https://www.lambdatest.com/future-of-quality-assurance-survey?utm_source=media&utm_medium=pressrelease&utm_campaign=dec06_kn&utm_term=kn&utm_content=pr

From the blog CS@Worcester Alejandro Professional Blog by amontesdeoca and used with permission of the author. All other rights reserved by the author.

The Importance of Security Testing

Link to blog: https://www.computer.org/publications/tech-news/trends/application-security-testing

The whole semester we have been exploring various ways of testing code, namely styles that ensure the code works as it should. However, there is another aspect of testing we have not discussed yet; security testing. 

It is of the utmost importance to ensure that your software, database, website, etc. is safe from hackers and leaks. Security testing would help just that: making sure your system is unbreakable, or at the very least mostly protected from vulnerabilities and flaws. I think it is important to learn about this aspect of testing, which is how I came across Adam Stead’s article What is Security Testing? How to Check The Security Strength of Your Application.

Stead stresses the importance of security in software and also lists some important security testing techniques, such as vulnerability testing, black box testing, penetration testing, and more. There are many benefits of security testing besides identifying vulnerabilities. Some examples listed by Stead include protecting sensitive data, enhancing customer trust, and cost-effectiveness. Data leaks have been pretty common as of the past several years and it is a huge deal for those companies to lose their customers’ trust and their own reputation. With increased security comes increased trust, which is beneficial to both the business and the customer. 

Stead mentions some security testing best practices, and reinforces the idea of starting early and prioritizing risks. Security testing early on in development can help prevent flaws in your code, and you should continue to test throughout production. Prioritizing risks ensures that your important flaws don’t go unnoticed, and you fix your biggest holes before fixing the smaller ones.

Stead ends the article by discussing some attributes of effective security testing (thoroughness, continuity, scalability, etc.) and stresses the importance of checking the security strength of your software regularly.

I selected this article because this is a topic we have not discussed much in class even though it is still a very important part of software testing. This article emphasizes the key elements of security testing and how important it is to include it as a part of your testing regime.

The content of the resource was very informative and understandable for someone who already has a bit of understanding of software testing. An interesting thing I learned was about fax online, which is a method that businesses use to securely send documents. I did somewhat enjoy the article, it was informative, however I wish it included some examples of certain testing types. I expect to apply my newfound security knowledge to future jobs and software practices.

From the blog CS@Worcester – Josh's Coding Journey by joshuafife and used with permission of the author. All other rights reserved by the author.

Performance Testing in Software Development

Our class discussed many code-driven testing methods, including Test Driven Development and Unit Testing. I thought it would be interesting to research what goes into performance testing, which doesn’t need coding to test but is still important to determine if there are any bottlenecks in your code. Many errors in our code go beyond whether it provides the correct output. If our software cannot function quickly and with many users, it doesn’t matter if our code functions if it doesn’t work in practice. The article “Performance testing, best practices, metrics & more” by Tricentis is a comprehensive look into how performance testing works and its role in software development. 

This article mainly provides the fundamentals of performance testing. It discusses why it’s important, the tests involved, what is measured, and a step-by-step process for ensuring your code functions correctly. It also discusses whether coding is necessary, when to conduct performance testing, and clears up performance and load-testing misconceptions. 

Reading the section on why performance testing is important had me finding a parallel to behavior-driven development because both focus on the user’s experience. If BDD provides an understanding of how the user is supposed to interact with the software during development, then performance testing is how users will interact with it when completed. If the users are stuck waiting for their application to load, find that it crashes often, or are unable to access it, then user experience will fall. That negative experience could lower revenue or reputation for the application’s company.

The section describing the testing methods highlighted how many ways you could poke and prod a system until it breaks. When I think of performance testing, I usually think of testing speed and user capacity, so seeing the other methods was enlightening. As I have not dabbled in performance testing, seeing the sequential steps to ensure speed and stability in our code was informative. It is vague enough for those new to performance testing to use it as a guideline. It was also interesting to learn that with agile methodologies at the forefront of software development, companies are looking for automation when doing performance tests to keep up with faster software development.

Overall, this article covered many aspects of performance testing, and those interested in learning would find it helpful. I plan to use performance testing to ensure users have a better experience, expose bottlenecks, and find where my code’s stability is weakest. 

The Article: https://www.tricentis.com/learn/performance-testing

From the blog CS@Worcester – KindlCoding by jkindl and used with permission of the author. All other rights reserved by the author.

Test-Driven Development

Test-driven development (TDD) seemed odd to me when I was first introduced to it, much like the majority of others. The idea of writing tests before code felt weird in a way, as you write tests for nothing. However, the more I read about the benefits and how to properly apply TDD, the more obvious it was how useful TTD really is. Jacob Schmitt does a great job explaining TDD along with its benefits and best practices in his blog “Test-driven development (TDD) explained” (https://circleci.com/blog/test-driven-development-tdd/).

Test-driven development is a software development approach where tests are written before code. It follows an iterative cycle: write a test, ensure it fails, write code to pass the test, and refactor. This means that a large amount of planning needs to go into the start of a project. Designing tests requires an understanding of what the feature you are adding should accomplish. This includes testing that things should pass when expected and fail when expected.

As I mentioned before, it feels counterintuitive to write a test for code that does not exist. That is, until you understand the benefits of having tests. Tests are going to be required for any serious project. Having the tests written first will greatly increase your chances of finding bugs as early as possible. This also ensures that any refactoring does not break any existing functionality. This is great when working with a team, ensuring that everyone is on the same page and that changes made by anyone will be tested. TDD also ensures that all code that is written is tested. This greatly increases the code reliability and ensures functionality aligns with the user expectations.

One of the most impactful benefits of TDD as a developer is the increased confidence that any changes you make in the code will have immediate feedback on if it passed the tests or not. This confidence extends to every developer on the team, as these tests ensure everyone’s code works as intended.

Catching bugs early can save a huge amount of time and money. It makes sense that testing code incrementally as it’s added is better than waiting until it is all developed to test. This also makes sure no code is ever added that isn’t tested. Meaning tests are being rushed near the end of deadlines, and potentially missing some.

From the blog CS@Worcester – CS Learning by kbourassa18 and used with permission of the author. All other rights reserved by the author.

Pytest

As a student of computer science, encountering different tools that streamline coding processes is a cornerstone of my educational journey. One such tool that has caught my attention this semester is pytest, a testing framework for Python that allows for simple unit tests as well as complex functional testing. After a thorough exploration, here’s why I believe every budding software developer should dive into pytest’s documentation.

Why I Chose This Resource

The reason I chose to delve into the pytest documentation is twofold. Firstly, our course has increasingly emphasized the importance of test-driven development (TDD), a method pytest excels at supporting. Secondly, several industry professionals I look up to have recommended pytest for its simplicity and efficacy, making it an essential skill in a developer’s toolkit.

Summary of the Resource

The pytest documentation provides a comprehensive guide to getting started with pytest, from installation to writing your first test. It covers key features like fixtures for a scalable and modular setup, markers for categorizing tests, and plugins to extend pytest’s capabilities. The documentation is well-organized and rich with examples, making it accessible to newcomers and a valuable reference for experienced developers.

Personal Reflection and Application

Reading through the pytest documentation was an enlightening experience. It not only clarified the mechanics of pytest but also underscored the benefits of using such a tool in real-world programming. One of the standout sections was on ‘parametrized testing’, which illustrated how to execute multiple permutations of a test with different input sets, ensuring broader coverage with fewer lines of code.

This resource has profoundly affected my approach to programming. It has instilled a more disciplined mindset towards testing, making me appreciate how early detection of issues can save time and resources in the development cycle. I now plan to integrate pytest into my upcoming projects, confident that it will enhance the quality and reliability of my code.

Future Practice

The knowledge gained from the pytest documentation is something I intend to apply in all my future software development endeavors. I see it as a step towards adopting best practices in testing, which is vital for any aspiring software engineer dedicated to producing robust and fault-tolerant software.

Conclusion

For any student of computer science, understanding the tools at your disposal is as crucial as mastering programming concepts. The pytest documentation is a goldmine of information that promises to elevate your testing skills. I highly recommend it to anyone looking to embrace test-driven development fully.

From the blog CS@Worcester – Abe's Programming Blog by Abraham Passmore and used with permission of the author. All other rights reserved by the author.

How to Become a Game Tester? 

Hello everyone,

Today I want to discuss the field of game testing. First of all, I am a gamer. I spend a lot of time playing video games every week. I am very passionate about video games. Every time I play a game, I often encounter some bugs or very unreasonable things. Therefore, when I took the software testing course, I was very interested in the job of game testing AKA game QA. Below is a Podcast I want to share:

How to Become a Game Tester? [Game QA tester]

link:https://www.youtube.com/watch?v=n81GxMaHHmo&list=PLNvmTlrQ-tBUrtqZ7T29KIS7lu8IPdOOG&index=3

by How Real Life Works

First of all, he emphasized an issue that I had never thought about, that is writing ability. I have considered many of the abilities required to enter this field, such as logic, game ability, and game experience, but I have never thought about the ability to write. But Alex explained very well why writing skills are so important.

First of all, he emphasized an issue that I had never thought about, that is, writing ability. I have considered many of the abilities required to enter this field, such as logic, game ability, and game experience, but I have never thought about the ability to write. But Alex explained very well why writing skills are so important. If you cannot explain these issues clearly, there is a high probability that you will not succeed. Alex also gave an example. For example, if you find a bug, after you write a written document, let someone who has never played the game understand the bug. If he can understand the bug from your written document, What causes it and how to fix it. Then your writing ability is passed.

Next, he talked about whether entering the field of game testing requires a corresponding diploma. His summary is not necessary. Because when you enter this field after completing your studies, the technology has been updated. The best way is to work with someone in this field and learn from his experience. My personal understanding is that it is necessary to learn basics and logic through a degree. This will lay a good foundation for us and make learning very efficient.

However, I think game QA is a very interesting job and the threshold is not very high. Of course, you need to have enough enthusiasm for games and high enough logical sensitivity. I think if I want to find this job, I need to improve my writing skills. I can try to write about the relevant content first to exercise this ability.

From the blog CS@Worcester – Ty-Blog by Tianyuan Wang and used with permission of the author. All other rights reserved by the author.

behavior driven testing and what is cucumber

For our final assignment for the course, we are being tasked to create a sort of activity similar to the activities we have been doing in class this semester for my software testing course. In working on this activity, we chose to write an assignment based on behavior driven development, using the Cucumber tool. As such, before we really get into the weeds of the assignment, I thought it would be a good idea to look into the tool myself and what behavior driven development looks like.

For today’s post, I’m looking at a blog post from Moisés Macero on The Practical Developer blog.

Firstly, behavior driven development is built for fostering communication and discussion around systems and how they should properly be working. Typically, the process is in three stages: discuss, capture, and write tests. We want to talk about what the requirements really should be between the product owner and developers, refine what our requirements and targets should be, then move forward to building the software and testing it.

What Cucumber does for this is introducing syntax, called Gherkin, to enhance the readability of tests even for people who don’t know how to read code. The syntax is styled in a format of ‘given’, ‘when’, ‘then’. You mark these test cases with keywords such as feature, scenario or example to accurately describe what the code should be doing and how it is being tested. One of the examples used in the article is the following:

  Scenario: Users solve challenges, they get feedback and their stats.
    Given a new user John
    When he requests a new challenge
    And he sends the correct challenge solution
    Then his stats include 1 correct attempt

Here, you can see that the syntax is (probably) easily readable and understandable even if you don’t have any software development experience. These statements are stored in .feature files, and act as sorts of definitions for tests.

For the actual testing, you apply these definitions by writing Cucumber expressions in a step definitions file. These are essentially files that not only test the code in a step-by-step approach, but also features readable headers for each function. Here’s an example of a couple of functions using Cucumber expressions (taken from this post in the same series):

    @Given("a new user {word} is created")
    public void aNewUser(String user) {
        this.challengeActor = new Challenge(user);
    }

    @When("they request a new challenge")
    public void userRequestsANewChallenge() throws Exception {
        this.challengeActor.askForChallenge();
    }

    @Then("they gets a mid-complexity multiplication to solve")
    public void getsAMidComplexityMultiplicationToSolve() {
        assertThat(this.challengeActor.getCurrentChallenge().getFactorA())
                .isBetween(9, 100);
        assertThat(this.challengeActor.getCurrentChallenge().getFactorB())
                .isBetween(9, 100);
    }

Cucumber supports a variety of different languages, and also supports testing frameworks such as JUnit, which means it is also very versatile and can be used alongside a testing driven development environment as well.

From the blog CS@Worcester – V's CompSCi Blog by V and used with permission of the author. All other rights reserved by the author.