Welcome!

Java IoT Authors: Zakia Bouachraoui, Pat Romanski, Elizabeth White, Liz McMillan, Yeshim Deniz

Related Topics: PowerBuilder

PowerBuilder: Article

Can't We All Get Along?

How to live with and even come to love your QA team

We've all had days when QA made things difficult. When we take a closer look at what caused it we usually find that there was some miscommunication between QA and the programmers. And this miscommunication was most likely caused by the business having unrealistic expectations of the development team or the business/programmers not understanding the best way to utilize QA. So where does QA fit?

Sometimes programmers forget that for most companies QA is actually part of the development team. But programmers should be aware that most QA persons (me for one) think a bit differently about the application being developed and tested.

Programmers want to have new code validated to substantiate their work. Having a new program or modification pass QA gives a programmer a sense of accomplishment. QA, on the other hand, may feel that if it passes a new enhancement the first time through, then a bug has been missed. The difference in thinking is only natural. We (QA included) all want a sense of accomplishment - "I created this new module," "I created this new report." But remember that when a new modification is delivered to the customer QA wants to be sure that it's is not going to break, whereas the cocky developer is thinking, "It is going to work."

Programmers typically think about use cases for making a system work as designed, whereas QA is interested in making sure the user can't break it. How can programmers and QA use these different approaches to get the application developed?

Just as programmers like to divide and conqueror so does QA. QA benefits from an iterative development process the same as programmers. If QA gets a beta version of huge new modifications and the scheduled release date is two days away it's under the gun and is probably just going to find the big obvious bugs to get the release out. That way the overall quality of the software suffers...the showstoppers are found, but important bugs may be missed.

Is there a competent developer anywhere who wants important bugs missed? Obviously not, so how does a programmer help QA find bugs? It's simple. By incorporating QA into the development process early and often. Planning for QA early and often in the development process creates a less stressed development environment. According to many books on development, utilizing QA for at least 20 minutes out of every 100 minutes of development greatly reduces the number of unintentional transition errors.

If QA detects bugs shortly after they're introduced this will give a programmer the opportunity to take corrective action earlier. The longer a bug remains in code the longer it usually takes to eradicate it. Having QA test throughout an iterative development cycle helps insure a smoother development cycle.

Is QA Part of the Development Team or Just a Thorn in Your Side?
Instead of having an adversarial relationship with QA, act as a team with the goal of creating quality, on-time software.

A strained relationship with QA comes primarily from miscommunications and a lack of understanding about the design specification. A good business analyst clearly defines what the programmer is supposed to create to satisfy the businesses needs. The business analyst should also make sure that both QA and development understand what is expected. For QA this means understanding what the testing's baseline should be; whereas for the programmer this means being able to deliver work that meets both QA and the business analyst's requirements. Making sure one understands what's supposed to be created early avoids the miscommunications that lead to delays in development, so taking care of any potential miscommunications early helps to avoid the dreaded rework.

Some miscommunications are caused by fear of communicating (programmer to QA).Sometimes when programmers are afraid of QA, the real status of the development process isn't being accurately portrayed to the business. Why? Because the business thinks no news is good news and that everything must be on schedule. When programmers are afraid of falling behind the development schedule, they have a tendency of only showing the things that are complete.

This pattern of behavior is called Johnson's Syndrome after President Lyndon B. Johnson. During the Vietnam War, President Johnson's aides initially brought him some intelligence that showed the bombing campaigns weren't going as well as they should have, which ticked Johnson off. So to avoid making the president angry, his aides started avoiding showing him the negative data, which gave the president an inaccurate impression of the situation.

When a developer is thrust into an "everythingis okay" work environment QA can actually become an asset. Instead of the programmer always being behind the expected development process, QA can present that certain elements have been completed the alpha or beta process.

Can QA Make a Difference in the Development Cycle?
If QA is doing what it should be doing and spending most of its time developing regression testing scripts and programs it's contributing to the development cycle and is saving programmers from the monotony of verifying manually that every window functions/works as it should.

Utilizing QA's ability to regress systematically through an application as soon as it's stable enough to be tested ultimately helps the business ensure the long-term stability of an application. It also helps the programmer(s) complete development quicker by identify the implications of unintended changes to a program. Most significantly, regression testing lets the development team identify bugs quicker than if the application is tested by manual QA methods.

What Kind of Code Architecture Can Ensure that QA Creates Effective Dynamic Regression Testing Scripts?

  • Employing Microhelp - This small coding best practice (see below) lets QA key on something that should be dynamic to an application. An example is when your application does an export. By having Microhelp enabled with information like "exporting line X of Y" the regression tool doesn't have to have manual delays set. and the logic can key in on the Microhelp status.

    long ll_index, ll_count

    ll_count = dw.RowCount()

    FOR ll_index = 1 TO ll_count
        IF Mod ( ll_index, 10 ) = 0 THEN
          w_frame.SetMicroHelp ( "Exporting line " + String ( ll_index ) + " of " + String ( ll_count ) )
        END IF
    ...(some task here)...
    NEXT

  • Avoid having your Datawindows overlap - IBM's Rational Robot has problems determining what control is supposed to be active if the controls overlap. The program has enough problems without having to worry what window it's supposed to be Setting Context to.
  • Consider a limit of seven levels of nesting in a Treeview - Especially when a Treeview can be dynamically created within your application. By doing this it allows for functional automated regression testing. Once again, automated testing tools, Rational Robot in particular, aren't capable of handling extreme levels of nesting in a TreeView control.
Conclusion
Involving QA early and continuously throughout the development process will speed up the overall development process. This is facilitated by open communication, which is enhanced by understanding how developer's thinking differs from QA. Putting these perspectives to use during an iterative development process gives both QA and programmers the ability to divide and conquer the development process. Finally, employing some basic coding architecture will allow QA's regression testing to be developed dynamically. All these items will ultimately give the application under development a greater chance of success.

More Stories By Todd Suzuki

Todd Suzuki with over 14 years of IT experience. Presently, employed by Integrated Data Systems-IDS. Previous employers include Symantec, City of Los Angeles, Sony Pictures, and the US Navy.

Comments (5)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
Moroccanoil®, the global leader in oil-infused beauty, is thrilled to announce the NEW Moroccanoil Color Depositing Masks, a collection of dual-benefit hair masks that deposit pure pigments while providing the treatment benefits of a deep conditioning mask. The collection consists of seven curated shades for commitment-free, beautifully-colored hair that looks and feels healthy.
The textured-hair category is inarguably the hottest in the haircare space today. This has been driven by the proliferation of founder brands started by curly and coily consumers and savvy consumers who increasingly want products specifically for their texture type. This trend is underscored by the latest insights from NaturallyCurly's 2018 TextureTrends report, released today. According to the 2018 TextureTrends Report, more than 80 percent of women with curly and coily hair say they purcha...
The textured-hair category is inarguably the hottest in the haircare space today. This has been driven by the proliferation of founder brands started by curly and coily consumers and savvy consumers who increasingly want products specifically for their texture type. This trend is underscored by the latest insights from NaturallyCurly's 2018 TextureTrends report, released today. According to the 2018 TextureTrends Report, more than 80 percent of women with curly and coily hair say they purcha...
We all love the many benefits of natural plant oils, used as a deap treatment before shampooing, at home or at the beach, but is there an all-in-one solution for everyday intensive nutrition and modern styling?I am passionate about the benefits of natural extracts with tried-and-tested results, which I have used to develop my own brand (lemon for its acid ph, wheat germ for its fortifying action…). I wanted a product which combined caring and styling effects, and which could be used after shampo...
The platform combines the strengths of Singtel's extensive, intelligent network capabilities with Microsoft's cloud expertise to create a unique solution that sets new standards for IoT applications," said Mr Diomedes Kastanis, Head of IoT at Singtel. "Our solution provides speed, transparency and flexibility, paving the way for a more pervasive use of IoT to accelerate enterprises' digitalisation efforts. AI-powered intelligent connectivity over Microsoft Azure will be the fastest connected pat...
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
Codete accelerates their clients growth through technological expertise and experience. Codite team works with organizations to meet the challenges that digitalization presents. Their clients include digital start-ups as well as established enterprises in the IT industry. To stay competitive in a highly innovative IT industry, strong R&D departments and bold spin-off initiatives is a must. Codete Data Science and Software Architects teams help corporate clients to stay up to date with the mod...
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Druva is the global leader in Cloud Data Protection and Management, delivering the industry's first data management-as-a-service solution that aggregates data from endpoints, servers and cloud applications and leverages the public cloud to offer a single pane of glass to enable data protection, governance and intelligence-dramatically increasing the availability and visibility of business critical information, while reducing the risk, cost and complexity of managing and protecting it. Druva's...
BMC has unmatched experience in IT management, supporting 92 of the Forbes Global 100, and earning recognition as an ITSM Gartner Magic Quadrant Leader for five years running. Our solutions offer speed, agility, and efficiency to tackle business challenges in the areas of service management, automation, operations, and the mainframe.