Better Requirements | Better Testability


“Good Manual Testers are hard to find..”

In order to do better testing, testers should understand the quality attributes. Testability is one important quality attribute.

Testability is the degree of difficulty of testing a system. This is determined by both aspects of the system under test and its development approach.

  • Higher testability: more better tests, same cost.
  • Lower testability:  Weaker tests, same cost.

When the degree of testability is lower, then there are chances of skipping bugs during the testing. Main causes for lower testability –


1. Functional/Non-functional Requirements – Poor/unambiguous requirements written by the author. Insufficient requirement reviews by testers.

2. Technical requirements/Architecture/Design of the system – Development teams concerns functionality for the customer, not for the testers. Testing Team does not get Management support and testing team not involved in the design meetings.

Higher testability can be achieved –
Note – Testability is not only testable, but also Easy to Test. The goal of increasing the testability of software is not just to detect defects but more importantly, to detect defects as soon as they are introduced.



1. If requirements are explicitly defined. The source for many improvements to the testability of the system will stem from the requirements. Business Analyst should keep the requirements language simple so that it should be easily understandable by testing and dev teams.
While reviewing the requirements/specifications – testers/test case designers should inspect requirements for testability. But how Testers can inspect the requirements for testability?
– James Bach has defined the Heuristics of Software Testability. Go thru this checklist. This is very useful while reviewing the spec documents.

– Go thru Guidelines and Checklist for Requirement Document Review.

2. Testers should be involved in the software design/architecture meetings, so that testers can understand how the software system is being developed. This is very required because it will help testers in understand the design, the complexity of the system and relations of one function/module with another function/module. This will help testers in getting the higher testability. Thru this testing team knows which programs are being touched in what scenario.
Sometimes, to cover the client’s requirements, development team develops the requirements in a complex way which makes the testing difficult. For example, developers might include some nightly jobs (db jobs) in the system which corrects the data. Now these things increase the complexity of the system which results into lower testability. These things should be avoided. This is one more reason that why testers should be involved in the software design/architecture meetings


References:


Crowd-sourced Software Testing by Pay4Bugs.com

Pay4Bugs is a software testing marketplace where clients create software testing projects, assign bounties to testing assignments, and pay testers when bugs are reported. The platform is designed to solve real world problems faced by software development teams: the difficulty to test software with different hardware, operating system versions, browsers, network connections, and usage behaviors.

The team behind Pay4Bugs originally created the software testing platform to provide an incentive for friends and family to test their other software products. The trial run proved so popular that the team decided to turn this platform into something useful to fellow programmers. Pay4Bugs.com was the result.

With the rapidly expanding market of web applications and mobile apps, inadequate testing is becoming a very serious problem. Smaller development shops simply cannot afford to hire a professional QA staff, nor can they acquire all of the different versions of mobile hardware. iOS and Android devices aren’t cheap! In addition, instantaneous application reviews, spread via social media, means that a successful bug-free launch is more important than ever towards the bottom line.

Pay4Bugs gives development teams of every size a flexible tool to perform real world, human driven testing. The platform is market-driven, meaning developers choose their own bounties for different types of bug reports. For example, if the software project is fun, easy to test, such as a game, then testers might be willing to work for a smaller bounty (or even for free!). On the other hand, if the testing process is very involved, or requires specific hardware setups, then a higher bounty will be required to gather sufficient interest. Again, only bug reports deemed valid by the developers will result in payment, and each tester’s performance is monitored and logged to keep the Pay4Bugs platform running smoothly. From the tester’s perspective, Pay4Bugs is not only a source of income, but also provides early access to many fun and interesting software projects.

The latest innovation from Pay4Bugs is iOS Testing. Apple has create a notoriously difficult process for app developers to provision their application onto devices, and it costs a lot of money to purchase iOS devices. With Pay4Bugs iOS Mobile Testing, developers can upload their IPA file directly into the website, then solicit interest from developers with registered iOS devices. Once the tester has been invited into the program, developers can send the IPA file to the customers via email. From there, it’s a one click install and update. Use the platform to find testers around the world with different versions of iOS, or to put a financial incentive behind a friend and family beta test program.

You’ll be surprised what types of bugs Pay4Bugs testers find. A tester found out that a client’s iPhone app crashed in Europe due to the currency default setting, which would not have been caught because in house testing only took place in the United States and Hong Kong. Another tester found that a site was crashing if the cursor was left idle in text box for too long before hitting “Submit”. Strange, but true and totally unexpected!

There are 5 usage plans specifically crafted for developers based on the team size, plus a Pay-Go plan to get started for free. All plans come with a 30 day free trial. With Pay4Bugs, our testers will help you make sure that your product is bug free when it hits the store!
Follow Pay4Bugs on Twitter: @Pay4Bugs

This is a guest post by – C.S. Hsia

 

Software Test Estimation – Webinar by Rex Black

How many testers do we need? How many test cases do we need? How many bugs will testing find? How long will testing take? Those are good questions, but those questions are often hard to answer. In this webinar, drawn from three decades of industry experience and materials in his best-selling book Managing the Testing Process, 3rd edition, Rex will discuss fundamental techniques for test estimation. Join in the discussion after the initial presentation, and ask Rex about the challenges you face with test estimation.

To support our international clientele, we will present this webinar at two times:
For the Americas, Europe, Africa, and the Middle East: 1:00 PM Central US Time (September 8) and 8:00 PM Central Europe Time (September 8).  To register, click here: https://www2.gotomeeting.com/register/154554659

For the Americas, Australasia, and Asia: 8:30 PM Central US Time (September 8), 9:30 AM Beijing Time (September 9), 10:30 AM Seoul/Tokyo Time (September 9), and 11:30 AM Sydney Time (September 9). To register, click here: https://www2.gotomeeting.com/register/546491514

Each live webinar session consists of one hour of presentation and a 30 minute post-webinar question-and-answer opportunity.

These webinars are free.  Webinar attendance registers you to win a free e-learning course from RBCS.  Congratulations to Wanda Butler, the winner in August!

Investment in Software Test Automation


A must read for Software Test Architects and Software Test Managers who want to understand the Fixed and Variable Cost in Test Automation

Investment in Automation:

  1. Fixed Cost in Test Automation:
    • Automation feasibility analysis cost
    • Tool selection and Acquisition cost
    • Hiring skilled resources OR training existing team members
    • Time in learning the application/ business processes
    • Pilot project identification effort / Proof of Concept
    • First time automation of the identified parts of application/product
    • Test suite Documentation effort
  2. Variable cost in Test Automation:
    • Test script versioning and documentation maintenance cost
    • Automated Test infrastructure maintenance cost
    • Execution cost

Remember that it may take long time to completely automate a test as it does to perform it manually. Also consider that a change to the application can cause twice as much or more maintenance in the test library because usually a single rule changes several test cases.

– by the author of “Quick 101 on Automation”

A Must read – Classic Test Automation Mistakes