Home

Wednesday, May 15, 2024

Illuminating Cancer: The Crucial Role of Software Testing in Comprehensive Cancer Profiling

Cancer is a frightening and complex illness that impacts the lives of numerous individuals across the globe. In the past few years, remarkable progress has been achieved in diagnosing and treating cancer, largely due to the creation of comprehensive cancer profiling methods. One such method involves using immunofluorescence (IF) assays to identify specific cancer biomarkers, like HER2 and ER, in blood samples. Measuring HER2 and ER levels with IF assays help doctors determine the cancer subtype, diagnosis, and best treatment approach. However, the precision and dependability of these assays heavily rely on the software programs used to examine and interpret the results. This is where software testing becomes critical.

Understanding Comprehensive Cancer Profiling

Comprehensive cancer profiling is an innovative strategy for diagnosing and treating cancer that entails examining a patient's cancer at the molecular level. By pinpointing specific genetic changes, protein expression patterns, and other biomarkers, physicians can acquire a more thorough understanding of a patient's unique cancer and customize treatment accordingly.

One of the most encouraging methods for comprehensive cancer profiling is the use of IF assays to identify cancer biomarkers in blood samples. IF assays employ fluorescently labeled antibodies that attach to specific proteins or other molecules in a sample, enabling them to be visualized and measured under a microscope. By assessing the levels of certain biomarkers, such as HER2 and ER, doctors can establish the subtype and aggressiveness of a patient's cancer and choose the most suitable treatment options. To make it simple, imagine you have a special flashlight that only shines on a specific type of object, like a particular toy in a messy room. In this case, the flashlight is the fluorescently labeled antibody, and the toy is the protein or molecule you want to find in a sample, like a piece of tissue or a group of cells.

The Crucial Role of Software Testing

Although IF assays have the potential to transform cancer diagnosis and treatment, their precision and reliability depend on the software applications used to analyze and interpret the results. These applications must be capable of accurately detecting and quantifying the fluorescent signals produced by the assay, distinguishing true positive results from background noise, and generating consistent and reproducible results across various samples and assay runs. This is where software testing becomes essential.

There are several key areas where software testing helps enhance the precision and reliability of IF assays for cancer profiling:

1. Assay Validation

Before an IF assay can be utilized for clinical decision-making, it must undergo extensive validation to ensure its accuracy, precision, and reproducibility. Software testing plays a vital role in this validation process by verifying that the assay software is correctly detecting and quantifying the fluorescent signals generated by the assay. This is accomplished by testing the software with a range of known positive and negative control samples. Testing with these controls helps guarantee that the software can accurately differentiate between true positive and true negative results. It also involves testing the software's ability to produce consistent results across different assay runs and operators.

2. Image Analysis

IF assays generate intricate images of fluorescently labeled cells that must be analyzed by specialized software to extract meaningful data. Software testing is crucial for ensuring that the image analysis algorithms are correctly identifying and quantifying the relevant fluorescent signals while minimizing background noise and artifacts. For testing the software is put through a series of tests using a diverse set of images to ensure that it can correctly analyze the fluorescent signals, identify different cell types, and generate consistent and reliable data, even when the quality of the images may vary due to factors related to sample preparation or image acquisition.



3. Data Management

IF assays generate vast amounts of complex data that must be securely stored, managed, and analyzed to generate clinically meaningful results. Testing becomes critical for ensuring that the data management systems are reliable, efficient, and compliant with relevant regulations and standards. This is achieved by testing the software's ability to securely store and retrieve data, maintain data integrity and traceability, and generate accurate and complete reports. It also involves testing the software's performance and scalability to ensure that it can handle large volumes of data without compromising speed or accuracy. There are various COTS products available to achieve the goals listed above.

4. Clinical Decision Support

The goal of comprehensive cancer profiling using IF assays is to provide pathologists with actionable information to guide treatment decisions. Software testing is essential for ensuring that the clinical decision support systems are accurately interpreting the assay results and providing reliable and evidence-based recommendations. The process includes testing of software's ability to integrate data from multiple assays and other clinical sources, apply complex algorithms and decision rules, and generate clear and concise reports that highlight the most relevant findings and recommendations. It also involves testing the software's usability and user interface to ensure that lab technicians can easily access and interpret the results.

Bottom Line

As cancer profiling techniques continue to advance and become more complex, the role of software testing will only become more important. By collaborating closely with assay developers, clinicians, and researchers, software testers can help ensure that these powerful tools are used safely and effectively to improve the lives of cancer patients. This can lead to better patient outcomes, lower healthcare costs, faster drug development, and improved research insights.

Glossary:

  • Biomarkers are measurable indicators of the severity or presence of some disease state. In cancer, biomarkers can include proteins, genes, or other molecules that provide information about the cancer's behavior, prognosis, and response to therapy.
  • An assay refers to a laboratory procedure or test used to detect, measure, and analyze specific molecules or biological markers in a sample.
  • IF assays use fluorescent dyes to label and detect these biomarkers in tissue or blood samples. Two important biomarkers in breast cancer are HER2 and ER:
    • HER2 (human epidermal growth factor receptor 2) is a protein that promotes the growth of cancer cells. Cancers with high levels of HER2 tend to be more aggressive.
    • ER (estrogen receptor) is a protein that binds to the hormone estrogen and helps the cancer grow. Cancers with ER are called "ER-positive" and can be treated with hormone therapy drugs.
  • Positive controls contain the biomarker being tested and should always give a positive result. They ensure the assay is working properly.
  • Negative controls do not contain the biomarker and should always give a negative result. They check for any background noise or false positive signals.
  • Operators refer to the individuals or technicians who are running the assay and using the software to analyze the results. When validating an assay and its associated software, it is important to ensure that the results are consistent and reproducible, not only across different assay runs but also when different operators are using the system.

Sunday, March 31, 2024

Safeguarding Software Testing from Data Poisoning

Data poisoning has recently gained significant attention in the news due to its negative impact on machine learning (ML) and artificial intelligence (AI) systems. However, data poisoning is not a new phenomenon and has been a concern in various domains, including software testing. In the context of software testing, data poisoning refers to the deliberate manipulation or contamination of data used in the testing process, with the aim of compromising the accuracy and effectiveness of the tests. 

For example, consider a scenario where a malicious actor intentionally modifies the input data used in a software's login functionality test cases. They may introduce invalid or edge case inputs, such as extremely long usernames or passwords containing special characters, to test the system's resilience against unexpected or malicious inputs. Another example could be the manipulation of test environment variables, such as changing the database connection string to point to a corrupted or tampered database, leading to incorrect test results and potentially hiding critical defects.

What is Data Poisoning?

Data poisoning involves introducing malicious, misleading, or incorrect data into the testing dataset to disrupt the testing process and produce misleading results. It can occur at various stages of the testing lifecycle, from test case generation to test execution and result analysis. There are several types of data poisoning that can affect software testing:

  • Input Manipulation: This involves modifying the input data used in test cases to introduce edge cases, invalid inputs, or malformed data. The goal is to test the software's ability to handle unexpected or malicious inputs gracefully.
  • Test Data Corruption: In this type of data poisoning, the test data itself is corrupted or tampered with. This can include modifying existing test data, injecting false data, or deleting critical data points. The aim is to disrupt the testing process and produce misleading results.
  • Test Environment Manipulation: Data poisoning can also target the test environment by altering configuration settings, modifying environment variables, or introducing external dependencies that affect the behavior of the software under test.
  • Result Manipulation: In some cases, data poisoning may involve tampering with the test results themselves. This can include modifying log files, altering test reports, or manipulating the pass/fail criteria to hide defects or falsely indicate successful test runs.

Impact of Data Poisoning on Software Testing

Data poisoning can have severe consequences on the software testing process and the overall quality of the software being developed. Some of the key impacts include:

  • False Positives and False Negatives: Poisoned data can lead to incorrect test results, causing false positives (tests passing when they should fail) or false negatives (tests failing when they should pass). This can mislead testers and developers, leading to the release of software with hidden defects or the unnecessary allocation of resources to fix non-existent issues.
  • Reduced Test Coverage: Data poisoning can affect the thoroughness of the testing process by limiting the scope of test cases or skipping critical test scenarios. This can result in inadequate test coverage, leaving portions of the software untested and potentially harboring defects.
  • Wasted Time and Resources: Dealing with poisoned data can be time-consuming and resource intensive. Testers may spend significant effort investigating and resolving issues caused by manipulated data, diverting their attention from other important testing tasks. This can lead to project delays and increased costs.
  • Compromised Software Quality: If data poisoning goes undetected, it can lead to the release of software with hidden defects or vulnerabilities. This can have severe consequences, such as system failures, data breaches, or compromised user experience, damaging the reputation of the software and the organization.

Detecting Data Poisoning

Detecting data poisoning is crucial to mitigate its impact on software testing. Here are some techniques and approaches to identify poisoned data:

  • Data Validation: Implementing robust data validation mechanisms can help identify anomalies or inconsistencies in the test data. This includes validating input formats, ranges, and constraints to ensure data integrity. Any deviations from the expected data patterns can indicate potential poisoning.
  • Statistical Analysis: Applying statistical techniques to analyze test data can help detect outliers or unusual patterns. Techniques such as data profiling, distribution analysis, and anomaly detection algorithms can identify data points that deviate significantly from the norm, indicating possible poisoning.
  • Data Provenance Tracking: Maintaining a record of the origin and lineage of test data can help trace the source of poisoned data. By tracking data provenance, testers can identify the points of data manipulation or corruption and take appropriate actions to rectify the issue.
  • Data Integrity Checks: Implementing data integrity checks, such as checksums or digital signatures, can help detect unauthorized modifications to test data. Any discrepancies between the original and the current data can indicate tampering or poisoning.
  • Monitoring and Logging: Establishing comprehensive monitoring and logging mechanisms can help detect suspicious activities or unauthorized access to test data. Monitoring access logs, system events, and data modifications can provide insights into potential data poisoning attempts.

Preventing Data Poisoning

Prevention is key to safeguarding the software testing process from data poisoning. Here are some strategies and best practices to prevent data poisoning:

  • Access Control and Authentication: Implementing strict access control measures and authentication mechanisms can prevent unauthorized individuals from accessing or modifying test data. This includes role-based access control, multi-factor authentication, and secure password policies.
  • Data Encryption: Encrypting sensitive test data both at rest and in transit can protect it from unauthorized access or tampering. Encryption ensures that even if data is intercepted or stolen, it remains unreadable without the proper decryption keys.
  • Data Backup and Version Control: Regularly backing up test data and maintaining version control can help recover from data poisoning incidents. By having multiple versions of the test data, testers can revert to a clean state if poisoning is detected, minimizing the impact on the testing process.
  • Input Validation and Sanitization: Implementing robust input validation and sanitization techniques can prevent the introduction of malicious or invalid data into the testing process. This includes validating and sanitizing user inputs, external data sources, and test case parameters to ensure data integrity.
  • Security Testing: Incorporating security testing practices, such as penetration testing and vulnerability assessments, can help identify and address potential entry points for data poisoning. By proactively identifying and fixing security vulnerabilities, the risk of data poisoning can be reduced.
  • Employee Training and Awareness: Educating and training employees involved in the software testing process about data poisoning risks and best practices can help prevent unintentional or malicious data manipulation. Raising awareness about the importance of data integrity and the consequences of data poisoning can foster a culture of security and vigilance.

Overcoming Data Poisoning Challenges

Despite the best efforts to detect and prevent data poisoning, challenges may still arise. Here are some strategies to overcome data poisoning challenges:

  • Incident Response Plan: Developing and implementing a well-defined incident response plan can help quickly identify, contain, and recover from data poisoning incidents. The plan should outline the steps to be taken, the roles and responsibilities of team members, and the communication channels to be used during an incident.
  • Data Cleansing and Validation: If data poisoning is detected, it is crucial to cleanse and validate the affected data. This involves identifying and removing the poisoned data points, verifying the integrity of the remaining data, and re-running the affected test cases with clean data.
  • Root Cause Analysis: Conducting a thorough root cause analysis can help identify the underlying factors that led to the data poisoning incident. By understanding the root cause, organizations can implement targeted measures to prevent similar incidents in the future.
  • Continuous Monitoring and Improvement: Establishing a continuous monitoring and improvement process can help detect and respond to data poisoning incidents more effectively. This involves regularly reviewing and updating detection and prevention mechanisms, analyzing incident trends, and incorporating lessons learned into the testing process.
  • Collaboration and Information Sharing: Fostering collaboration and information sharing among software testing teams, security experts, and industry peers can help stay informed about emerging data poisoning techniques and best practices. Sharing knowledge and experiences can collectively enhance resilience against data poisoning threats.

Conclusion

Data poisoning poses a significant challenge to the software testing process, potentially compromising the accuracy, reliability, and effectiveness of the tests. By understanding the types of data poisoning, its impact, and the strategies for detection, prevention, and overcoming challenges, organizations can safeguard their software testing efforts.

Wednesday, February 21, 2024

Recipe for Disaster: The 'Don'ts' of Bug Reporting with a Dash of Humor

Welcome to the quirky kitchen of bug reporting, where the secret sauce is in the details and the main ingredient is clarity. Let's ensure your bug report isn't the equivalent of unseasoned dal—bland and unhelpful.

Vague Descriptions: The "Something's Wrong" Syndrome

Ever stumbled upon a bug report that simply states, "It's kaput"? That's as helpful as a chef shouting, "It's not tasty!" in the middle of a bustling kitchen. What's not tasty? The soup? The curry? A good bug report should be like a well-written recipe, with every ingredient and step laid out for a perfect replication of the dish—or in this case, the bug.

The Dance of Reproduction Steps

Trying to fix a bug without reproduction steps is like trying to bake a cake without a recipe. Developers need the full list of ingredients and the baking time to whip up a solution. The more precise your steps, the less likely they'll end up with a deflated cake—or an unfixed bug.



The Environment Puzzle

Saying a bug occurred "on my computer" is as vague as a food critic saying a dish was "good." Was it the spices? The texture? Similarly, was the bug on Windows, macOS, or Linux? Bugs can be finicky eaters, feasting on some systems while ignoring others. Provide a full menu of the environment details to help developers serve up a fix.

Clear Communication: Avoiding the Grammar Gremlins

A bug report with typos and grammatical errors is like a recipe with missing steps. Will your soufflé rise to the occasion, or will it flop? Keep your writing as clean and organized as a chef's prep area. And remember, a screenshot or a video is worth a thousand words—or in this case, a thousand lines of code.

Emotional Baggage: Keep It Checked

It's natural to get steamed up when you hit a bug, but remember, a bug report is not a place to vent. Keep the tone as cool as a cucumber raita. Stick to the facts, and leave the spicy outbursts for your biryani.

Feature Requests in Disguise

A feature request masquerading as a bug is like mistaking cardamom for cumin—they're both spices, but they belong in different dishes. Keep your feature requests and bug reports in separate containers to avoid flavor confusion in the development kitchen.

The Ripple Effect of Poor Reporting

A vague or incomplete bug report can send developers on a wild goose chase, much like sending someone to the market with a shopping list that just says "stuff." Be as specific as a meticulous grocery list, and you'll save everyone a lot of thyme (pun intended).

Conclusion: Serving Up Bug Reports with a Side of Precision

Imagine if writing bug reports were like hosting a cooking show. You'd want your audience (the developers) to follow each step with ease, leading to a perfectly 'baked' solution. While our kitchen (the development environment) might not appreciate literal sprinkles of humor in the 'dough' (the bug reports), our blog can certainly enjoy a light-hearted garnish.

So, as we wrap up our culinary journey through the world of bug reporting, remember: the essence of a great dish lies in its recipe. By avoiding the common pitfalls of vagueness, missing steps, and emotional overtones, your bug reports can be as clear and effective as a chef's prized recipe. Your goal is to present the problem with such precision that developers are guided to a solution as smoothly as a knife through soft butter.

With meticulous attention to detail—and perhaps a cheeky smile as you write—you'll help ensure a smooth and efficient path to a high-quality software product. After all, a well-crafted bug report, much like a well-executed dish, is a thing of beauty that brings satisfaction to all involved. Here's to making the development process not just productive, but also a tad more delightful.

Saturday, February 3, 2024

Epic Insights: Software Testing Wisdom from the Mahabharata

As a software tester who has delved into the profound narratives of the Mahabharata, I've discovered that the epic's wisdom is not just limited to the spiritual or philosophical realms but extends into the practical world of software testing. Here are ten lessons that I've drawn from the Mahabharata, which have become cornerstones of my testing philosophy:

Embrace Peer Review, Regardless of Your Role

Even the wise Lord Krishna, akin to a Project Manager or Test Manager in our field, had his actions reviewed. This teaches me that no matter my position, my work can benefit from the scrutiny and insights of others. Peer review is a cornerstone of quality assurance, ensuring that even the most experienced eyes don't miss critical details.

Heed the Guidance of Experienced Mentors

Arjuna's trust in Krishna, his charioteer, reminds me to always listen to those with more experience. In testing, this translates to valuing the insights of mentors and senior team members whose broader perspective can guide me through complex testing scenarios and strategic decisions.

Commit to Lifelong Learning

Arjuna's dedication to acquiring new skills and divine weapons resonates with the need for continuous learning in software testing. The landscape of technology is ever-changing, and staying abreast of the latest tools, techniques, and best practices is essential for delivering effective testing solutions.

Persevere Through Testing Challenges

Karna's life story, filled with trials and tribulations, inspires me to face testing challenges with unwavering determination. Whether it's a difficult bug or a demanding project timeline, I'm reminded to persist and apply my skills to navigate through these challenges.

Cultivate Discipline and Passion for Quality

Karna's discipline in archery, symbolized by his unyielding armor and earrings, teaches the importance of discipline and passion in mastering one's craft. As a tester, I strive to bring the same level of dedication to ensuring the quality and reliability of software.

Collaborate and Seek Assistance When Necessary

The epic's characters often sought Krishna's aid in times of need, highlighting the importance of seeking help. In my testing career, I've learned that collaboration and asking for assistance can lead to innovative solutions and shared success.

Set Clear Objectives for Each Testing Phase

Dronacharya's emphasis on clear goals is a lesson in the importance of having well-defined objectives for each phase of testing. This ensures that my focus remains sharp and that all necessary tests are executed to validate the software's functionality and performance.

Develop and Follow a Strategic Testing Plan

The strategic planning that led to the Pandavas' victory is akin to the need for a well-thought-out testing strategy. Crafting a strategy that aligns with project goals and resources is crucial for conducting effective and efficient testing.

Uphold Honesty in Reporting Test Results

Yudhishthira's commitment to truthfulness underscores the value of honesty in software testing. It's imperative to report test results accurately, even when they reveal significant issues, to maintain the integrity of the software development process.

Fulfill Your Testing Responsibilities with Dedication

Bhishma's adherence to his duties, despite personal conflicts, teaches the significance of responsibility. As a tester, I am responsible for the quality of the software, and I take this duty seriously, ensuring that every test is thorough and every finding is reported with precision.

In conclusion, the Mahabharata has not only enriched my understanding of life's complexities but has also provided a framework for my approach to software testing. The epic's lessons on review, guidance, learning, determination, discipline, collaboration, goal-setting, strategy, honesty, and responsibility have been instrumental in shaping my career and the quality of my work.

Tuesday, January 9, 2024

Unraveling the TSO500 Workflow: A Deep Dive into TSO500 Workflow Verification

As a software tester in the genomic healthcare technology field, my responsibility is to ensure the smooth functioning of the TruSight Oncology 500 (TSO500) workflow. This involves overseeing the journey of genetic data from the initial sample processing to the generation of comprehensive health reports, using pre-existing sequencing data. My goal is to clarify the process and highlight the critical steps, particularly the seamless integration of data into the Pierian system.

The Initial Phase: Accessioning and Plasma Batch Creation

The process begins with "accessioning," where each blood sample is meticulously cataloged with a unique identifier. This step is akin to assigning a library card to every book, ensuring each sample can be tracked throughout its journey. Although I work with pre-existing sequencing data, I simulate this step to maintain the integrity of the workflow. Following accessioning, we proceed to create plasma batches. While the lab's capacity allows for up to 192 samples in a single run, my testing typically involves 2 to 4 batches. This scaled-down approach enables me to concentrate on the system's efficiency and accuracy in a more controlled environment.

The Role of DRAGEN: A Black Box in the Workflow

DRAGEN (Dynamic Read Analysis for GENomics) is a key component in the analysis of genetic data, known for its speed and accuracy. However, as a software tester, I do not verify the data analysis within DRAGEN. Instead, my role is to ensure that the data reaches the Pierian system correctly. DRAGEN remains a black box to us, meaning we trust the analysis conducted by DRAGEN without direct verification.

Ensuring Data Integrity and Workflow Efficiency

My primary focus is on the following stages:

  • Data Analysis: While I don't verify the data analysis within DRAGEN, I monitor the workflow to ensure that the data is being processed and sent out correctly.
  • Data Transfer: A critical part of my role is to confirm the successful transfer of data from the DRAGEN platform to the Pierian Clinical Genomics Workspace, maintaining the integrity of the genetic information.
  • Report Generation:
    I evaluate the Pierian platform's ability to produce comprehensive and actionable health reports from the analyzed data.

Integrating Comprehensive Insights: Beyond TSO500

Once the Pierian report is finalized, it is sent to our order management system, where it is merged with other test reports, such as AR-v7 or DefineMBC. These additional tests provide a broader view of the patient's genomic profile, enhancing the personalized care approach.

AR-v7 is a critical test for metastatic prostate cancer, indicating resistance to specific treatments.

DefineMBC offers a comprehensive profile of metastatic breast cancer, analyzing circulating tumor cells (CTCs) and cell-free DNA (cfDNA) to detect genomic alterations that guide personalized treatment strategies.

Conclusion

My role in testing the TSO500 workflow is crucial for ensuring the workflow's accuracy and reliability. By monitoring each step and confirming seamless integration with PierianDx, we help ensure that the platform delivers clinically actionable insights essential for personalized patient care. This blog post aims to provide a clear understanding of the complex process of turning DNA data into a health report from a software tester's perspective, emphasizing the operational side of the workflow and the importance of data integrity in the overall process.

Thursday, March 23, 2023

Pitch Perfect or Out of Bounds? A Gamer's Review of Cricket 22 on Switch

Hey fellow cricket enthusiasts and gamers! I've been diving into the digital pitch of Cricket 22 on my Nintendo Switch, and let me tell you, it's been quite the adventure. From the roar of the crowd to the crack of the bat, this game brings the excitement of cricket right to your fingertips. But no game is without its quirks, and I'm here to give you the scoop on what's hot and what's not in Cricket 22.

Test Environment:

  • Console: Nintendo Switch
  • Version: 1.0.0

Courtesy: Big Ant Studios

My Game Plan:

I mixed up my gameplay with a bit of everything – career mode, quick matches, and the thrill of online challenges. I also put on my detective hat, using some smart testing strategies to really get into the nitty-gritty of the game.

The Detective Work:

  •  Boundary Value Analysis: Pushing the game to its limits, I tested everything from epic high scores to the nail-biting finishes.
  • Error Guessing: I tried to outsmart the game, predicting where it might trip up, like when I sneak in a quick single or push for a risky double.
  • Equivalence Partitioning: I played with all sorts of deliveries and batting shots to see if the game could handle my all-rounder skills.
  • State Transition Testing: I switched things up, hopping between game modes and saving my progress to test the game's versatility.
  • Exploratory Testing Charter: I zeroed in on specific features like career mode, responsiveness, and those all-important graphics.

Courtesy: Big Ant Studios

The Good, The Bad, and The Glitchy:

What I Loved:

Cricket 22 really does bring the stadium home, with a stellar lineup of teams and competitions. The controls are intuitive, making batting and bowling feel like second nature.

What Needs Work:

  1. Career Mode Hurdles: Ever dreamt of leading your team to glory? Well, you might hit a snag. Sometimes your created player just doesn't make the cut for the match lineup, leaving you benched and missing out on the XP action.
  2. Batsman Blues: When it comes to quick runs, every second counts. But sometimes, our virtual batsmen seem to be stuck in the mud, leading to some frustrating run-outs.
  3. Visuals That Don't Bowl You Over: We all love a game that looks as good as it plays, but Cricket 22's graphics might leave you wanting more, especially when compared to other sports games out there.

The Game Changers:

  1. The Infamous System Crash: Imagine this- you've just downloaded some cool extra content, and you're ready to play, but then – bam! – the game crashes, and all that new content vanishes into thin air, along with your precious game data.
  2. Player Info Mix-up: You're all set to play as your favorite star, but wait a minute – the stats are all wrong! Yep, some of the player info is about as accurate as a blindfolded umpire's LBW decision.

Wrapping Up:

Cricket 22 has the makings of a great game, but it's like a promising innings cut short by a few unforced errors. The biggies? That dreaded system crash and the player info errors. But hey, nothing that can't be fixed with a bit of elbow grease from the devs.

My Two Cents:

  • Let's get those system crashes sorted, pronto!
  • A little fact-checking goes a long way – let's update those player stats.
  • And while we're at it, a graphics polish wouldn't hurt.

So, what do you think? Have you faced similar issues, or has your experience been smooth sailing? Drop your thoughts and let's chat about all things Cricket 22. Until then, keep your eye on the ball and your gaming spirits high!

Tuesday, April 26, 2022

A Novice's Tale: Learning the Ropes of Game Testing

As I delve into the world of game testing, I'm discovering the many layers that make this field so intriguing. My journey has led me to test games on platforms like the Nintendo Switch and Steam, each offering unique challenges and learning opportunities. A significant part of my testing experience has been with the charming world of "Animal Crossing: New Horizons" on the Nintendo Switch. The game's delightful characters and immersive environment have provided a rich backdrop for honing my testing skills.

Game testing is far from just leisurely play; it's a critical examination of a game's every aspect to ensure a smooth player experience. For example, during my sessions with "Animal Crossing: New Horizons," I encountered a peculiar issue where my character began to move sluggishly without any input from the controller. This odd behaviour led me to investigate the controller's calibration, revealing it was off-center at rest—a potential compatibility issue between the game and the hardware. Such findings highlight the importance of thorough testing to catch issues that could hinder gameplay enjoyment.

Courtesy: Nintendo

The game testing process is methodical, beginning with drafting a test blueprint. This blueprint considers recent game changes, new supported environments or hardware, potential test scenarios, and any feature modifications. Following the blueprint, the test strategy is executed, which includes setting up the testing environment, identifying and documenting issues, verifying fixes, and ensuring comprehensive coverage through repeated testing. Afterward, the test plan is revisited to confirm that the fixes hold up to our quality standards.

Exploratory testing is a dynamic part of game testing that relies on discovery and intuition rather than a set script. While testing "Animal Crossing: New Horizons," I often relied on my gaming instincts to guide me through the game's vibrant world, uncovering issues that structured testing might miss.

In addition to exploratory testing, other essential testing types ensure a game's quality, such as functionality testing, compatibility testing, progression testing, and regression testing. Each plays a vital role in the game testing process.

Game testing is a complex field that blends technical skills with an understanding of the player experience. It's a challenging yet rewarding endeavour that significantly contributes to creating games that resonate with players worldwide. As I continue my journey in game testing, I eagerly anticipate the learning experiences ahead and the chance to contribute to crafting enjoyable and engaging gaming experiences.

Wednesday, September 8, 2021

The Essentials of Lean Testing: Streamlining Software Quality and Efficiency

In the dynamic realm of software development, the importance of efficiency and quality cannot be overstated. This is where Lean Testing comes into play, a methodology that enhances the testing process by applying Lean manufacturing principles to software testing and verification. It aims to streamline testing by eliminating unnecessary steps, reducing waste, and focusing on value-adding activities. The core idea is to make the testing process more efficient and effective by only doing what is necessary to ensure the product meets customer needs and expectations.

The Origin of Lean Testing

Lean Testing draws inspiration from Lean manufacturing principles, which were first developed in the Toyota Production System. These principles aimed to optimize production by minimizing waste and maximizing productivity. Over time, the concept of Lean was adapted to software development, giving rise to methodologies like Agile, and eventually extending to the testing process itself. The transition to Lean Testing was driven by the desire to apply the same efficiency-focused mindset to the testing of software products.

Principles of Lean Testing

The principles of Lean Testing are derived from the broader Lean philosophy and include:

Eliminate Waste: The first principle of Lean Testing is to eliminate waste, which refers to any activities that do not add value to the customer or the product. In software testing, waste could be unnecessary or redundant tests, or bureaucratic processes that slow down the testing process. Lean Testing uses the concept of "feedback" rather than "testing" and "improvement" instead of "correction" to enhance the product continuously.

Amplify Learning: The second principle encourages continuous learning and knowledge sharing within the team. For instance, when one software tester gains new insights, these should be shared with the entire team. Pair testing, where two testers work together on the same module, exemplifies this principle by facilitating early error detection and knowledge sharing.

Decide as Late as Possible: This principle advocates for keeping options open as long as feasible to make more informed decisions.

Deliver as Fast as Possible: Lean Testing streamlines processes to reduce the time from development to delivery.

Empower the Team: Team members are given the autonomy and tools they need to take ownership of the testing process.

Build Quality In: Quality assurance is integrated into every step of the development process, rather than being treated as a separate phase.

See the Whole: This principle focuses on the entire development process and how testing fits into the larger picture, rather than just individual components.

Benefits of Lean Testing

Lean Testing offers numerous benefits, including:

Efficiency: By eliminating unnecessary steps and focusing on value-adding activities, Lean Testing streamlines the testing process, leading to faster delivery times and lower costs

Quality Improvement: Lean Testing ensures high-quality software products by building quality from the start. Techniques such as pair programming, test-driven development, and pair testing are used to integrate quality into the process.

Continuous Improvement: A culture of continuous learning and improvement is fostered, allowing teams to enhance their processes and the quality of their products consistently.

Collaboration: Lean principles of learning and respect encourage collaboration and knowledge sharing. Teams are empowered to make decisions and work together in the decision-making process.

Customer Value: Lean Testing focuses on delivering value to the customer by eliminating waste and improving quality, ensuring that products meet customer needs and expectations.

Remember, The goal of Lean Testing is not just to test faster or cheaper but to make the testing process more effective and valuable. By adhering to these principles, teams can deliver high-quality software products that satisfy customer needs and expectations.

Cons of Lean Testing

While Lean Testing has many advantages, there are also potential drawbacks to consider:

Over-Reliance on Team Expertise: Lean Testing can be heavily dependent on the skills and expertise of the team, which can be a risk if the team lacks experience or knowledge in certain areas.

Resistance to Change: Organizations with established testing processes may face resistance when trying to implement Lean Testing principles.

Potential for Over-Flexibility: Too much flexibility can sometimes lead to a loss of focus or direction, making it difficult to maintain a clear vision for the product.

Challenges in Scaling: While Lean Testing can be highly effective for small teams, scaling the approach to larger organizations with complex structures can be challenging.

Conclusion

Lean Testing is a modern approach to software testing that emphasizes efficiency, quality, and team empowerment. By adopting Lean principles, testing teams can reduce waste, improve product quality, and deliver value to customers more quickly. However, it is important to be aware of the potential challenges and to implement Lean Testing in a way that aligns with the organization's goals and capabilities. With careful planning and execution, Lean Testing can be a powerful tool in the software development arsenal, ensuring that the product is not only delivered efficiently but also meets the highest quality standards.

Saturday, December 19, 2020

Discovering the Power of Priorities: Lessons from "Juliet's School of Possibilities"

In Laura Vanderkam's book, "Juliet's School of Possibilities," we follow the story of Riley, a young professional struggling to balance her work and personal life. The book imparts valuable lessons about the power of priorities and effective time management. Here are some key takeaways from this insightful book, along with examples from everyday life:

  • The Importance of Priorities: The book emphasizes the significance of setting clear priorities. For example, by recognizing that spending quality time with family is a top priority, individuals can allocate their time and energy accordingly, leading to a more fulfilling and balanced life.
  • The Power of Saying No: Riley learns that saying no to certain tasks or requests can be empowering. For instance, by declining opportunities that don't align with her career goals, she frees up time for the things that truly matter, such as working on meaningful projects or spending time with loved ones.
  • The Myth of Multitasking: The book debunks the myth that multitasking is an effective way to manage time. Instead, Riley discovers that focusing on one task at a time, such as completing a work project without distractions, is a more efficient use of her time and energy.
  • The Value of Self-Reflection: Throughout the story, Riley engages in self-reflection, which helps her identify her priorities and make better decisions. For example, by reflecting on her career and personal goals, she gains clarity and perspective, allowing her to make choices that align with her values.
  • The Art of Delegation: Riley learns that she doesn't have to do everything herself. By delegating tasks to others, she frees up time to focus on her most important priorities, such as leading a team or working on high-impact projects.
  • The Importance of Boundaries: Riley discovers that setting boundaries is crucial for maintaining a healthy work-life balance. For instance, by establishing clear boundaries around work hours and personal time, she is able to protect her energy for the things that matter most.
  • The Power of Small Changes: The book demonstrates that small changes can have a big impact on our lives. For example, by making small adjustments to her daily routine, such as incorporating short breaks to recharge during the workday, Riley is able to create more time for her priorities.
  • The Value of Self-Care: The book highlights the importance of self-care, reminding us that taking care of ourselves is necessary for maintaining our well-being and productivity. For instance, by prioritizing activities that promote physical and mental health, individuals can perform better in all areas of their lives.

In conclusion, "Juliet's School of Possibilities" offers valuable lessons about the power of priorities and time management. By applying these lessons to our own lives, we can create more time and energy for the things that truly matter, leading to a more fulfilling and balanced existence.

This book is a thought-provoking and engaging read that can help readers rethink their approach to time, priorities, and possibilities

Saturday, July 18, 2020

My Journey as a Test Lead: Navigating the Exciting World of Team Management

Hey there, fellow testers and aspiring leaders! 👋 I'm excited to share my personal experience as a Test Lead, guiding teams of various sizes through the thrilling world of software testing. Let's dive into my journey, including the mistakes I've made and the lessons I've learned along the way.

When I first stepped into the role of a Test Lead, I was both excited and nervous. I knew that leading a team of testers meant more than just managing tasks and schedules. It was about fostering a collaborative environment, nurturing talent, and driving the team towards success. As I began my journey, I quickly realized that communication was the key to everything. However, I made a mistake by not being as communicative as I should have been. I learned that regular one-on-one meetings with each team member were crucial to understanding their strengths, weaknesses, and aspirations. This not only helped me assign tasks more effectively but also built trust and rapport within the team.

One of the most challenging aspects of being a Test Lead was balancing the needs of the team with the demands of the project. I made a mistake by being too bossy and not delegating tasks effectively. I learned to prioritize tasks and delegate responsibilities based on the team's skill sets and workload. This not only helped us meet our deadlines but also ensured that each team member felt valued and engaged.

Another lesson I learned was the importance of continuous learning. I encouraged my team to attend workshops, conferences, and training sessions to stay updated with the latest trends and technologies. However, I made a mistake by not recognizing their achievements enough. I learned to celebrate their accomplishments and provide them with opportunities to showcase their talents.

As a Test Lead, I also had to learn to be adaptable and flexible. I quickly realized that no two projects were the same, and I had to be prepared to adjust my leadership style accordingly. I made a mistake by not being open to feedback and not learning from my own failures. I learned to listen to my team's feedback and adapt my approach to better suit their needs.

One of the most rewarding aspects of being a Test Lead was witnessing the growth and success of my team members. I took pride in seeing them take on new challenges, develop new skills, and achieve their goals. I made a mistake by not recognizing their hard work and dedication enough. I learned to acknowledge their efforts and reward them with awards and recognition.

In conclusion, leading a team of testers has been an exciting and fulfilling journey. I've learned the importance of communication, prioritization, continuous learning, adaptability, and fostering a culture of growth and innovation. I've also learned that being a Test Lead is not just about managing tasks and schedules, but about nurturing talent, building trust, and driving the team towards success. I've made my fair share of mistakes, but I've learned from them and grown as a leader. I hope my personal experience as a Test Lead has provided you with some insights and inspiration. Remember, leading a team is a journey, and every step along the way is an opportunity to learn, grow, and make a difference. Happy testing, and keep striving for excellence!

🌟Best,
Your Test Lead Friend 😊

Pointers for Recognizing and Rewarding Team Achievements:

  • Celebrate milestones and achievements with the team.
  • Offer public recognition and praise for a job well done.
  • Provide bonuses, promotions, or other financial incentives for outstanding performance.
  • Offer additional training or development opportunities for team members who excel.
  • Encourage team members to nominate their peers for awards or recognition.

Recognizing and rewarding your team's achievements not only boosts morale but also encourages them to continue striving for excellence. 🏆

Wednesday, May 15, 2019

Navigating Remote Pair Testing: A Professional Account of My Experience

In my recent role as a software tester, I was tasked with the implementation of a lockbox banking feature into our customer invoice system. This project was unique, as it required a collaborative approach known as remote pair testing, where I worked in tandem with a developer over the phone. This blog post is a reflection on my journey, offering a clear and professional perspective on the process and its effectiveness.

Understanding Lockbox Banking

Lockbox banking is a service designed to streamline the payment process for businesses. It operates by having customers send their payments to a specific post office box managed by the bank. The bank then processes these payments, opening the mail, scanning the payment documents, and updating the company's accounts receivable. This service is particularly beneficial for businesses handling a high volume of mail payments, offering an efficient and secure method of processing these transactions.

The Rationale for Pair Testing

During the initial stages of our project, we encountered a significant number of bugs. This situation raised concerns about the quality and progress of our work. To address this, we decided to adopt pair testing. This collaborative approach allowed us to leverage our individual strengths and perspectives, leading to a more comprehensive examination of the software and a substantial reduction in bug counts. This strategic decision not only improved the quality of our product but also fostered a collaborative environment that aligned with the central principles of Agile development.

My Journey with Remote Pair Testing

  • Rapid Bug Identification and Resolution: One of the most significant advantages of working with a developer over the phone was the speed at which we could identify and resolve issues. My focus on potential user experience issues, combined with the developer's technical expertise, allowed for efficient problem-solving, accelerating the development process.
  • Reduction in Bug Count: By examining the software together in real time, we were able to identify and address many potential issues early in the development process. This proactive approach resulted in fewer bugs reaching the final stages of development, culminating in a more robust and dependable feature.
  • Delivery of a High-Quality Product: Our collaborative efforts during pair testing ensured that the lockbox banking feature underwent a rigorous evaluation process, satisfying both the technical requirements and the user experience criteria. The immediate feedback loop and the ability to make on-the-fly adjustments meant that the end product was not only operational but also refined and user-centric.
  • Enhanced Team Dynamics: An unforeseen yet valuable outcome of pair testing was the positive impact it had on our team dynamics. This method of working dismantled the traditional barriers between the development and testing teams, fostering an environment of open dialogue and mutual respect. The result was a more unified and efficient team, better equipped to face the challenges of the project.

The Realities of Remote Collaboration

Remote pair testing presented its own set of challenges. It demanded full engagement from both parties, often requiring us to synchronize our schedules to ensure effective collaboration. The need for rapid adaptation during the testing process also introduced a level of mental agility that could be demanding at times.

However, the advantages of this approach were significant. Pair testing facilitated a dynamic exchange of knowledge and skills. As the tester, I was able to share my insights into the user's perspective, while the developer provided a deeper dive into the technical aspects of the software. This reciprocal learning experience contributed to our professional development and deepened our collective understanding of the project.

Conclusion

The process of implementing the lockbox banking feature through remote pair testing was a journey filled with both challenges and triumphs. It highlighted the importance of collaboration and adaptability in achieving project goals. As we continue to navigate the world of software development, this experience serves as a reminder that with the right approach, collaboration can overcome the challenges of distance, leading to successful projects and stronger teams.

Wednesday, June 20, 2018

Illuminating the Tester's Path: Lessons from 'Are Your Lights On?'

As a software tester, diving into the pages of "Are Your Lights On?" by Donald C. Gause and Gerald M. Weinberg was akin to embarking on a journey of enlightenment. This book, while not specifically about software testing, has profoundly reshaped my approach to problem-solving in the testing arena. Here, I share with you ten transformative lessons that have not only illuminated my path but could also brighten yours.



1. Starting with the 'What'

Before you leap into action, pause and ask yourself, "What exactly is the problem here?" This initial step of clearly defining the problem is often overlooked, yet it's the cornerstone of effective software testing. It's a reminder that understanding the problem is half the battle won.

2. Seeing Through the Stakeholder's Eyes

Every problem has an owner, and recognizing their perspective is crucial. This insight has taught me to prioritize and address issues more effectively, ensuring that my testing efforts align with the stakeholders' needs and concerns.

3. Unleashing Creativity in Problem-Solving

The book paints problem-solving as an art form, encouraging creative thinking. This perspective has inspired me to explore unconventional approaches in testing, leading to more innovative and effective solutions.

4. The Art of Asking Questions

Asking the right questions is a powerful tool in the tester's arsenal. This strategy has been invaluable in uncovering the root causes of bugs and issues, allowing for more targeted and efficient testing efforts.

5. Peeling Back the Layers

Solutions often masquerade as problems. I've learned to peel back the layers to identify the true issues at hand, sharpening my ability to discern and tackle the real challenges in software testing.

6. Reframing the Problem

The advice to restate the problem has opened up new avenues of thought for me. By reformulating the problem statement, I've discovered alternative approaches and solutions that were not immediately apparent.

7. Connecting the Dots

Understanding that problems can be interconnected has been a game-changer. This realization has helped me trace issues to their source more effectively, leading to more comprehensive testing strategies.

8. Weighing the Consequences

The book cautions that solving one problem may inadvertently create others. This lesson has made me more mindful of the potential impacts of fixes, ensuring that my solutions don't lead to further issues down the line.

9. Choosing Your Battles

Not all problems are worth solving, at least not immediately. This wisdom has helped me prioritize testing issues, focusing my efforts on those that have the most significant impact.

10. Finding Joy in the Journey

Lastly, the engaging tone of the book has reminded me to find joy in the problem-solving process. This mindset has transformed my role as a tester into a fulfilling pursuit, filled with curiosity and discovery.

In conclusion, "Are Your Lights On?" has been a beacon, guiding me through the complexities of software testing. The lessons I've gleaned from its pages have not only enhanced my problem-solving skills but also enriched my professional journey. Whether you're a seasoned tester or just starting out, I believe these insights can illuminate your path too, turning challenges into opportunities for growth and innovation.

Thursday, February 26, 2015

Class & Instances

In Object Oriented world a class is a blueprint for the objects we want to create in code.

For example, let's say we wanted to represent a car in code. We can define a car using a C# class through attributes and behaviors. Some of the different attributes that make a car unique are its model, make, and color. For the car's behaviors, something a car does is start, so we can define this behavior. 


Putting this into code, we would have a car class with string attributes called model, make and color. We can also refer to these attributes as fields. This class would also have methods called start and stop because a car starts and stops. This is a behavior we want to define for the car. 


Car Class

string model;

string make;

string color;

start();

stop();


From the class blueprint, we can create several different types of cars. For example, one car could be a BMW 3 Series and have blue color. Another car might be a Merc Benz Class C and have green color. The way we create these individual cars from our car class blueprint is with the constructor. 


Now, both of these cars have a make, model, and color defined by the class blueprint, but the values of these attributes are different, depending on the car. Each of these cars can also start and stop so they would be able to call the start and stop method. This makes the Blue BMW car and the Green Merc car instances of the car class. 


These cars were constructed from the car class using a constructor, making them instances of the car class. 

Saturday, January 17, 2015

Speak Your Users’ Minds

The user based testing always fascinates me as the product is analyzed from the perspective of living person rather than dead code or design. A user is one who uses the “Product” or “Services”, the one who makes a product HIT or FLOP.

In last few years, I have observed that businesses are seriously considering the products from user’s point of view. Did you also update the test cases for the last product you tested? Does your test plan include scenarios for user based testing? Do you think about “User Experience” while testing the product?

The User Experience Testing or UX Testing, as most of the time we call it, is conducted to find out how user feels after using the product. Does user feel great about the product and come back for it or was it last time s/he used this product? Here, the product is tested against the emotions of the user and that is what makes it most difficult kind of testing.

When I think of Happy User Experience, the first example which comes in my mind is of IPhone. There are multiple brands with hundreds of smart phones running on different platform but still a large chunk of young population want to buy IPhone; even after the higher cost. Good user experience guarantees the Quality and people are ready to pay higher if product makes them happy.

How do you feel about IRCTC website?

Are you eager to try alternative of IRCTC, if available? If answer is “Yes”, I guess I made my point.

There are five factors I realized during testing which directly affect the user experience.

 

Factors affecting the UserExperience

Contextual: The product should be in context with the user requirement. If not, forget user will ever use the application.

Desirable: The need is over once product is contextual. Give user what he was wishing in the product. Little more than what was needed.

Usable: The product should be easy to use. Don’t make user to go and check for the manuals.

Accessible: The product is accessible to all users – abled and disabled.

Trustable: The user should have trust on what product does and what it conveys. Branding plays an important role in building the trust. Remember ‘I’ of HICUPPSF by Michael Bolton.

Customer is the King and King has broad spectrum of options. Now, it’s just not eBay only, there are Flipkart, Amazon, Tesco, SnapDeal and 50 other online retail and market places. Everybody is selling the same product then how one can differentiate itself from the herd. This is high time to include the user based testing in your test plan. You want to guarantee success of your product – Speak your users’ minds. Remember, the $300 million button.

Sunday, December 28, 2014

Friday, December 26, 2014

Secured Payee Account Number, Really?

This one was found in ICICI bank website while adding the new Payee. The Payee Account Number is masked for the first time but displayed in confirmation field.

ICICI - Adding the PAYEE for NEFT

Wednesday, December 24, 2014

The Orphan Error Message

This error message I used to see every time I started my system.

Error_Message_iMindMap1

It took me a while to find out that this error message belongs to iMindMap application which I removed from my system. Don't you think they shall display the application name while displaying such errors?

Monday, December 22, 2014

PSR - The tool to write Effective Bug Report

How often as a tester do you think that you spend a big chunk of your testing time in reporting the defects rather than testing actually? There could be multiple reasons of this:

  • The defect template could be complex
  • You might be slow in typing
  • You might not be so good in vocabulary

How many times did it happen that you logged a defect and developer rejected because the steps were not detailed enough to replicate the issue.

A good bug report is responsibility of the tester and each stakeholders expect the same. I noticed the same issue within my project; Team spend too much time on writing effective bug reports. On average it takes 30 minutes to log a defect. That is a big time. If one found 6 defects that means the person had spent around 3 hours to report those defect. That was something pinning me for last few months and I was eagerly looking for a solution to get over this problem.

Recently, I came to know about “Problem Steps Recorder” which caught my attention. Microsoft has provided this utility in Windows 7 to record the problem steps in Microsoft Window. PSR captures the events happening on the screen and create a low size zip file with all steps and screenshots happening at the desktop.

PSR

PSR also provides the facility to annotate the screenshot during the runtime. Just select the screen area and enter your comment. The same will be added in the Report. Isn’t it awesome?

You can even disable the screen capture as per your need.

This is kind of what I was exactly looking for. The next step was to know how team feels about it.

On a good day, I called my team for training and demonstrated this tool. They all were quite excited and wanted to use it immediately and there was no reason to stop them. So, I asked them to use the tool and let me know their opinion. Till now, I got very positive feedback about the tool so I am thinking to take it to next level; to get it approved from important stakeholders, mainly Project Manager and Customer. No matter how others’ take this, it has already become a mandatory part of my Test Armory.

If you practice testing, How about using it in your practice sessions? Please share your opinion in this thread.

Saturday, October 4, 2014

Website Accessibility Evaluation Methodology

Being an Accessibility Enthusiast, I generally get a question – How to evaluate accessibility of a website? Is there any approach or methodology which guarantees the accessible website? Well, I don’t think any methodology would guarantee a 100% accessible website until you get the website tested from real users – the users who face the pain of inaccessible websites.

Anyway, when the question became too common – I thought it's time to work on this and here I am presenting a methodology to evaluate accessible website. This methodology is evolved from fine tuning of industry’s best practices and Website Accessibility Conformance Evaluation Methodology by W3C.

This methodology includes the different phases of accessibility evaluation starting from collecting the baseline information to the last phase of retesting the fixed issues. This methodology can be used for existing websites and during earlier development stages of the website. This methodology can be used for evaluating static, dynamic, mobile and other types of websites.

Website Accessibility Evaluation Methodology

Draw a Line
The objective of this phase is to collect the information and understand the accessibility requirement of the customer. This is accessibility evaluation preparation phase wherein tester collects prerequisite information such as target website, business nature, current accessibility status, identification of Assistive Technology and conformance standards to be implemented.

Let’s Explore
The tester explores the target website to get thorough understanding of website functionality, use and purpose. The exploration carried out in this phase helps in later stages when evaluation of target website takes place. The objective of this phase is to identify:
Critical web pages of the website – The website is explored to identify mandatory functionality and critical web pages which are core of the website and might directly impact the business. The outcome of this step is the list of all critical web pages and mandatory functionality that user performs on the website.
Common web pages of the website – The website is explored to identify the common web pages of the website. These web pages are generally directly linked to home page and main navigation of website and sometimes represent the different states of website. The outcome of this step is the list of all common web pages on the website.
Dynamically generated web pages – The website might have web pages which are generated dynamically based on user input and important for the website. For example, product listing page on a website. The website is explored to identify such web pages on the website.
Other relevant web pages – Here, the website is explored to identify the web pages that are more relevant to users with disabilities and accessibility of website such as web page informing about the website accessibility features, settings, shortcuts etc. The outcome of this step is list of such web pages.
Variety of web page types – The target website may have web pages of variety of styles, templates, layout and structure, navigation and visual design etc. In this step, the website is explored to identify such web pages on the website. The outcome of this step is the list of all such web pages differentiated by varieties.

Collect the Samples
The objective of this step is to pick up the sample of all type of web pages which represent the target website. The purpose of this sampling procedure is to ensure the good enough accessibility evaluation of website with reasonable confidence. The sample set should include:
• Sample set of all critical web pages of the target website
• Sample set of Common web pages of the website
• Sample set of each dynamically generated web pages
• Sample set of Other Relevant web pages
• Sample set of each web page type
• Sample set representing the complete process
The sampling procedure could be skipped where it is feasible to evaluate all web pages in the target website; all the web pages are considered for accessibility procedure in such situation.
The selected sample sets are further evaluated to identify the common components such as navigation menu bars, headers and footers, search form etc. which do not require the re-evaluation on each occurrence.

Use Automation Tools
During this step, the selected sample set of web pages are evaluated by multiple automation tools as per the conformance standard selected in first step. The objective of automatic testing is to quickly identify the accessibility issues in the selected set of web pages of the website. The outcome of testing in this phase is:
• a list of confirmed accessibility issues which are failed to meet success criterion of selected conformance standard
• a list of potential accessibility risks which require manual intervention before next action
• a list of features which meets with the success criteria of selected conformance standard

Manual Testing with Assistive Technology
The tester further evaluates the selected set of web pages of target website manually to conformance with each success criterion of selected standard. The objective of this step is to identify the issues a disable user might be facing in using the target website. All content of the website is evaluated:
• to find out any occurrence of failure to meet success criteria of selected conformance standard
• to find out any occurrence of failure during the interaction of each web page and web page state along with complete process
• to find out any occurrence of failure in using the website with assistive technologies selected in first step
• to verify the list of potential accessibility risks generated in previous step
• to ensure that all content is supported by accessibility features

Make a Report, Retest
This step focuses on the analysis of reports collected from automated testing and observation made during manual testing process. The purpose is to identify all false positives and false negative before reporting the issues in the bug tracker. A report is produced with analysis outcome and recommendations and suggestions for all stakeholders.

Further, a decision should be made on retesting based on the outcome of the analysis. Retesting would have similar approach of testing - using automation tools followed by manual testing with AT.

Thursday, September 11, 2014

Web A11y* Beyond Guidelines

(A11y* - Accessibility)

Think about accessibility testing of a website - "WCAG" - the first word which comes in mind (Section 508, in some cases), why?

We are so obsessed of following the guidelines. When I second these guidelines are important piece of information, we also need to understand that these guidelines are mere documents for reference, they are not the laws. We shall start thinking of accessibility beyond the guidelines. The presentation is an attempt to point out the issues of blindly following the guidelines and how can we get over such issues.

Questions are welcome :)