Go Premium for a chance to win a PS4. Enter to Win

x

Quality Assurance

663

Solutions

1K

Contributors

Quality assurance (QA) is a way of preventing mistakes or defects in products and systems, and avoiding problems when delivering solutions or services to customers. QA is applied to software to verify that features and functionality meet business objectives, and that code is relatively bug free prior to shipping or releasing new software products and versions. Quality assurance comprises administrative and procedural activities implemented in a quality system so that requirements and goals for a product, service or activity will be fulfilled. Two principles included in quality assurance are: "Fit for purpose" (the product should be suitable for the intended purpose); and "right first time" (mistakes should be eliminated).

Share tech news, updates, or what's on your mind.

Sign up to Post

IT teams define success as solving problems quickly. To enable ITSM modernization we have to think of adopting the tools and methods that will enable resolution of ITSM issues more quickly.
0
Concerto's Cloud Advisory Services
LVL 5
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Learn how ViaSat reduced average response times for IT incidents from 10 minutes to 30 seconds.
0
Find Your Happy Place. Every company and every work group has their own culture. If you are considering starting a new job here are some good engineering/culture questions to ask a prospective employer.
1
 
LVL 6

Expert Comment

by:Mikkel Sandberg
Comment Utility
Great article Marlon!
1
By this time the large percentage of day-to-day transactions have shifted to mobile banking; here are some overriding areas QAs must investigate while testing mobile banking apps.
 
0
Learn by example how to specify CSS selectors for Selenium WebDriver test automation software.
0
Five Golden Stars
Every business owner understands the significance of online customer reviews and the impact it can have on sales and revenues. With technology advancing at such a rapid pace, getting online reviews has never been easier, especially when many regions around the world are already using the Internet.
0
 
LVL 2

Author Comment

by:Superb Internet Corporation
Comment Utility
Do you know when my articles will be approved? Not sure if that's why I only have a few points per the recently submitted articles (x3). Thanks
0
 
LVL 2

Author Comment

by:Superb Internet Corporation
Comment Utility
Understood. Will wait for your update tomorrow on the approvals for the articles. Thanks
0
The Quality Assurance engineer of an Agile scrum team must "own" the acceptance criteria for sprint tasks.
1
Introduction
This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how to add it to a test suite, then running and debugging it.

This article doesn’t aspire to be The Way To Do Automation and it doesn’t go into deep details on processes or tools, but if you read it you should come away with a reasonably clear picture of one way to efficiently and effectively develop and execute automation tests for a website. This process helps us achieve our test automation goals.

Test Design Approach
Experts Exchange website consists of a large set of web pages. There are groups of pages with the same format. For example, all the pages that display a question have the same layout. We refer to this as the view question layout. Likewise, we refer to the view article layout and the view video layout for the pages where articles and videos are displayed.

To test our site EE QA uses something called the Page Object model. Basically, this is an encapsulation of a web page into a class. For example, we have ViewQuestion, ViewArticle and ViewVideo classes. Our test cases for the view question layout call ViewQuestion methods, rather than have each test try to directly interact with items (buttons, text boxes, etc) on the page. The page’s attributes and actions are encapsulated in…
4
 
LVL 66

Expert Comment

by:Jim Horn
Comment Utility
Nicely illustrated.  Voted Yes.
0
Introduction
This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by Experts Exchange QA Team. We develop our automated test cases in a Windows environment so that’s the focus here.

Java and Eclipse Installation and Configuration
First we install Java and Eclipse. We use Installing Eclipse video as our guide. You should be able to install and configure them after watching this video. More java help can be found here.

TestNG Installation and Configuration
Installation and configuration of TestNG is fairly simple. Follow the steps for Eclipse plug-in here. Here’s a snapshot of part of the installation process. The installation wizard does a good job of walking you through the process.

EEQA_2_NG.png
Installation of the Eclipse plug-in makes it possible to run TestNG suites while in Eclipse, but the TestNG classes are actually included in the selenium WebDriver jar file. You’ll see in EE QA: Developing and Running Automated Tests For Our Website how we use TestNG features in our automation.

Selenium WebDriver Installation and Configuration
We use the standalone server in our environment so all we do is get it from the download page.
EEQA_2_WD.pngAfter it is downloaded we add it to our Eclipse build path by right clicking on the project, then going to Build Path -> Configure Build Path
EEQA_2_BP.png
2
Introduction
This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to achieve those goals.

The second article covers installation and configuration of these tools. It is aptly titled EE QA: Install and Configure Selenium, Java, Eclipse, and TestNG. We work in a Windows environment so the article is written from that perspective.

The third article, EE QA: Developing and Running Automated Tests For Our Website, covers our approach to test case design and implementation, as well as our runtime environment. It contains some good design and implementation practices.

Our Test Automation Goals
In order to continually improve our member’s experience, our engineering teams focus on quickly delivering high quality, high value enhancements to our web site. To facilitate these activities we use the Agile Development process. In Agile, testing is an ongoing activity of each sprint. Within a sprint our QA folks manually test new features and also write new automated test cases …
6
 
LVL 17

Expert Comment

by:Kyle Santos
Comment Utility
Great job, Marlon!
0
 
LVL 7

Expert Comment

by:Yashwant Vishwakarma
Comment Utility
Nice information Marlon
Voted "Good Article" :)
0
Independent Software Vendors: We Want Your Opinion
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Introduction
I've been in the software industry for over 20 years. I've interviewed at lots of companies, from start ups in stealth mode to some of the biggest and most successful. I've also conducted lots of interviews, especially as I've become a more senior quality assurance engineer. Since I'm an individual contributor most of my experience is with interviewing candidates for individual contributor positions. I've never been the only employee who interviews candidates. I've always been part of a team that interviews candidates. In this article I offer some suggestions for how teams and individuals can conduct interviews for software quality assurance openings so they can find great candidates.

Before the interview, as a team
Whether the candidate talks to employees one at a time or in a group interview setting, the candidate will be evaulating the interview team, therefore your team should be prepared and organized.

The interview team can do a couple simple things to get the most out of the interview. Have a brief meeting  with all the employees who will talk with the candidate(s). Cover these items
  • Most likely there is a job description for the opening but it's a good idea to have the hiring manager verbally describe what's most important for this opening. Doing this in front of the interview team gets everyone on the same page and allows people to ask the manager questions.
  • If multiple employees will be talking with the
5
 
LVL 17

Administrative Comment

by:Kyle Santos
Comment Utility
Great article!
0
I worked at a US software company that used offshore contractors for ten years and offshore employees for three years. We had a positive experience and you can too.
 
When I interviewed people for positions in the US, I would tell them that we worked with offshore staff. Some of the candidates had experience with this, but none of them had really positive experiences.
 
Why would you want to work with offshore staff?
  • Reduce expenses, but don’t get too greedy on this. Salaries may be less, but you have additional costs for travel, infrastructure, and inefficiencies.
  • Offshore staff can deploy Internet services during their day, when it is nighttime for your customers.
  • It may take less time to hire software professionals offshore than in some US cities.
  • People can work ‘round the clock on problems.
  • If you have a disaster onshore, the offshore staff can still work and vice versa.
 
From the beginning, we emphasized building relationships and developing people in addition to getting work output.
 
To build relationships we travelled. The president, CTO, VP, directors, managers and individual contributors all travelled offshore. The reverse was also true. Managers established regular visits in both directions to build relationships and understanding of environments. Managers went on shorter trips, while individual contributors from offshore spent longer periods in the US.
 
Develop the offshore staff…
3

Software development teams often use in-memory caches to improve performance. They want to speed up access to, or reduce load on, a backing store (database, file system, etc.) by keeping some or all of the data in memory.

 

You should implement a system in the simplest way. Then after performance testing, you should optimize only when necessary. The reason for this is that performance optimizations make code more complex and may introduce defects. Often these defects are subtle, difficult to find and expensive to fix.

 

Developers often do not consider thorough testing of caching optimizations. They consider a cache as an implementation detail rather than functionality requiring testing.

 

A write-through cache approach writes to both the cache and the backing store at the same time. A service can use this approach when it is the single source of the backing store data in a system.

 

I recommend that you consider the following items when designing, implementing, and testing caches. I have seen live defects in almost all of these areas.

 

You need to have enough memory for the cache. What is the size of each object in the cache? What is the maximum number of objects in the cache? Do you have enough memory on your machine or JVM when the cache is full? What happens when the cache is full and you need to add one more object to it?

 

How is the cache initialized? If it’s initialized when your application starts, how long does that take when you cache the maximum number of objects? Can your application serve requests during initialization? If objects are cached as requests are made, is the response time of the cache miss or write-through transaction acceptable?

 

Verify that the cache is used. If the cache is not write-through you can request the data, then change the data in the backing store, then request it again and it should not change. Or you could request some data to cause it to be cached, then make the backing store inaccessible, and request the same data.


What happens when the backing store is unavailable? A request for data that is cached should probably return successfully. A request for data that is not cached should probably return an error or degraded functionality.

 

If the cache is not write-through (some other process writes to the backing store), you may have to refresh the data periodically or on demand. Is it acceptable for the cache to be different than the backing store? How long is it acceptable? Verify that the data is refreshed properly.

 

Will it hold all of the objects or only some of them? Which object do you evict when the cache is full and you need to replace the item? What eviction scheme do you use – Least Recently Used (LRU), Least Frequently Used (LFU) or First In First Out (FIFO) or do entries expire after a period? Verify the eviction scheme.


In addition, for testing and/or production support, you may need the ability to evict individual objects and/or all objects from the cache. One use case for this is you may want to fix some bad data in the database for a particular customer, then clear the cache just for that customer.

 

Finally, verify you get the performance improvement you expect. Test it using production traffic patterns. When the cache is live in production, monitor the size of the cache and the hit ratio (when a request finds the object in the cache) to determine if the cache works properly. You may need to make improvements.

 

I hope you agree with me that caches have a lot of functionality that deserves proper design, implementation and testing.

2
If you are using Scrum Framework or another agile process, a retrospective may be part of it. Does your team perform retrospectives? Are you getting value from your retrospectives?

I see a common anti-pattern when people conduct a retrospective for a sprint or write a root cause analysis for a defect. First they will point out the sequence of events that led to some code executing which caused the wrong thing to occur. Then to prevent that kind of problem from happening in the future they will basically conclude "we will try harder" or "we won't do that next time."

The purpose of a retrospective is to improve your process continuously. First identify something that didn't go well; perhaps it's a defect. Next your team must examine each step of the process which resulted in the defect. For each step think about whether the defect got created in that step and whether the defect escaped detection in that step. Finally, decide what actions to take to improve your process.

For the scrum framework process, you might think about the following.
  1. Did you groom the story in the backlog before adding it to the sprint?
  2. Was the story too big?
  3. Did you rush to finish the story to make the sprint deadline?
  4. Were the acceptance criteria sufficient?
  5. Were the acceptance criteria specific?
  6. Did you write the acceptance criteria together or review them?
  7. Did you add acceptance criteria during the sprint instead of putting them on the backlog?
  8. Did you do Test Driven Development?
0
Winter Path
One of the most important skills a software quality assurance engineer can possess is the ability to write clear and concise test case descriptions. Regardless of whether the test case is to be executed programmatically or manually, a well written description will benefit all who read the description. Adhering to a consistent format and a common set of phrases across a set of test cases will enhance the comprehension of the reader and encourage anyone contributing to the suite of test cases to follow the established nomenclature.

This article provides some common sense recommendations for describing functional test cases. These recommendations are based on my over 15 years of experience reading, writing and maintaining software test cases.

Test cases typically consist of a title and a body. The test tracking tools that I’ve used (TestRail, Quality Center, home-grown tools) are designed to show a set of test case titles, usually grouped within a folder. To see the body of a test case takes either creating a report or drilling into the individual test cases.

Writing the Test Case Title
Other people will most likely read your test case titles at some point. Whether your tests are being reviewed for approval or someone else is going to take over running your tests you’ll want to compose a test case title that gives the reader a quick, clear sense of what the test does. I use this very simple format

Confirm | Verify 
  • Confirm welcome screen appears when user logs in
3
 
LVL 14

Expert Comment

by:Mark Bullock
Comment Utility
In the title I find it useful to lead with the page name or function being tested. For example, "Login: Confirm welcome screen appears when user logs in." Then when you search your test cases you can quickly scan the results for the area you're interested in.
0
Cobalt Digital Marketing began using the Scrum Framework development process in summer 2009.  We hired a consultant to train the teams, observe meetings, and answer questions.

He recommended that we begin using one-week sprints for several reasons.  The team gets feedback quickly.  You fail faster and succeed faster.  You go through the complete sprint cycle many times so you gain experience quickly.

In my experience those made sense in theory and they were valuable in practice during our transition.  The consultant was also able to repeatedly coach the teams to learn agile principles.

You may hear that common practice is to use a two-week or four-week sprint.  Why, after more than two years, do we continue to use one-week sprints?

We plan to release our main application once per week.  The cadence of the sprints matches our release cadence.

The limited amount of time forces teams to create small stories.  We try to limit story size to two days for two people.  Small stories are easier to code review and demo.
Most of our teams have members in both the US and India.  Product managers work in the US.  India staff are hungry for all the communication they can get.  They miss some discussions in the US with the product managers, design sessions, and planning meetings.  The one-week sprint forces the team to communicate more often in planning, backlog grooming, and demo meetings.

Product owners can see progress and give feedback every week.

Business owners …
3
Jira and Code Reviews
Recently our company was researching switching from our current issue tracking system over to using Atlassian’s Jira product.  While doing the switchover I wanted to make sure that my team would be able to do formal code reviews to guarantee quality of code changes.  While looking at all the plug-ins and external products that Atlassian offers, our team was unable to figure out exactly which products we should use.  We had it narrowed down between Stash, Bitbucket and Fisheye and Crucible, but really couldn’t tell which one was best for us.  We eventually needed to call a sales engineer to figure it out, so I would like to share what we learned from that call.

Fisheye and Crucible
Fisheye and Crucible is a tool that Atlassian recommends for users that are not using a DCVS system.  This would include using revision control systems like CVS and SVN.  Since we were looking at using GIT as our repository, the sales engineer did not recommend using Fisheye and Crucible.

Stash
Stash is a useful tool that can be used for GIT repositories.  Stash can also be used for code reviews.  The sales engineer recommended using this product if you want to host the GIT repository yourself.  Since our team wanted to host our repository in the cloud we decided that this was not the solution for us.

Bitbucket
Bitbucket is Atlassian’s cloud based solution for hosting GIT repositories.  Since we wanted a cloud solution, this was the tool…
3
Test Automation Framework

Before we proceed into the depth of framework design and related components, I would like to clarify some common notions related to Software Test Automation.

It is often considered that Automation will help in identifying more bugs in the application under test (AUT), which is absolutely incorrect. It is basically useful in reducing the time involved in doing some complex tasks that the manual QA guy would usually take longer time to perform and may be prone to human errors.

So does this mean that I would be eliminating the use of Manual QA in my team? The answer is a big NO. The manual QA team is there to understand the complex business functionalities and other minute details that may not have been covered in automation; they are the ones who know the business functions inside out. Overall the Software QA team functions well only if the Manual and Automation teams are in sync and both mutually add value to the final output – Deliver a good quality software product.

Now coming back to our main topic of automation frameworks, I will quickly list down the commonly known frameworks going by the bookish concepts -
•      Modular
•      Data Driven
•      Keywork Driven
•      Hybrid Test Automation

Here is a quick description of each of these types and in the coming sections we will discuss more on the Hybrid framework as gives you the liberty to tweak the framework as per your requirements.

Modular framework
Most …
8
 
LVL 15

Expert Comment

by:Eric AKA Netminder
Comment Utility
DharamV,

Your article has been selected by the Page Editors as an Editors' Choice, making it one of the top articles published at EE.

Congratulations!

ericpete
Page Editor
0
 

Expert Comment

by:sat ban
Comment Utility
Thank you...its good and very informative.
0
This Article will help the novice users to use JMeter for load testing their web application.  Most web applications failures are because of performance issues, so it is a must that you have a performance requirement to  your product.  There are a lot of tools available in the industry for performance tuning / testing, but most of them are too costly to be implemented by smaller companies.  Open source products like JMeter is one of the products, in which you can do some basic load testing of your product, but without the hefty price tag.

Hopefully this will help you get started on the basic flow of using JMeter once you have gone through the article in its entirety and exploring the tool for yourself.

Download JMeter from the link:
http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi

Once downloaded, extract the zip file and go to the bin folder, where you will find the jmeter.exe file.  Double-click on that file.  In the JMeter window tree view you will find two items: workbench and test plan.  Workbench is usually used to test and create components of your test. Test Plan is used to run the tests using the components created in the Workbench.

Note: in order to run jmeter.exe, you need to have installed a Java Developer's Kit (JDK) and configured the JDK bin in your system's PATH environment variable.


Proxy Server
JMeter supports recording of the user action.  This is done with the help of the …
2

Quality Assurance

663

Solutions

1K

Contributors

Quality assurance (QA) is a way of preventing mistakes or defects in products and systems, and avoiding problems when delivering solutions or services to customers. QA is applied to software to verify that features and functionality meet business objectives, and that code is relatively bug free prior to shipping or releasing new software products and versions. Quality assurance comprises administrative and procedural activities implemented in a quality system so that requirements and goals for a product, service or activity will be fulfilled. Two principles included in quality assurance are: "Fit for purpose" (the product should be suitable for the intended purpose); and "right first time" (mistakes should be eliminated).