Home

Showing posts with label Black Box Testing. Show all posts
Showing posts with label Black Box Testing. Show all posts

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.

Saturday, November 13, 2010

A Feature which have become Bouquet of Bugs


Recently, I was testing an online shopping site – just for fun, nothing official. There I saw a feature called as “Tell A Friend”.  I found this feature useful in first glance. During shopping, if you see any product which you find usable for your friend and you think your friends might be interested, just forward info about the product in the mailbox of your friend. You just have to write name & email address of your friend. I think this is great idea to make new customers.
So, I thought to take my hands on this feature but I was highly disappointed when I used this feature. In hurry to introduce the new feature, the site managers kept a bouquet of bugs on the site. Let’s come with me to see the dissection of this feature with me.
Oh… I forgot to tell you the store name. It’s Zappos.com. First, some introduction with Zappos:
Zappos.com is an online shoe and clothing shop. Since its founding in 1999, Zappos has grown to be the largest online shoe store. Zappos did "almost nothing" in sales for 1999, but grossed over USD$800 million in merchandise sales in 2007 and grossed over $1 billion in 2009.
On Zappos.com I selected a product to see its description. The product seemed good to me and I was sure one of my friends would be interested in this product. I decided to forward the details of the product to my friend. So I clicked on “Tell A Friend” button available on the product page.

So I was on “Tell A Friend” Window.

After seeing this window I thought to play with this.
I clicked on Send button to see what would happen if values were not filled. On clicking send I saw two error messages. The error messages were:
  • ·         You  didn’t specify an email to send to
  • ·         You need to supply an email

Displaying an error message is not a formality. They could phrase the error messages in much better way.  Also they displayed the error messages in reverse order of the fields on the form. In the above screenshot you can see that the sender’s email address field appears before receiver’s email address. The error message should also display in the same order. This is not a rule but this is always expected.
From error messages it was clear that sender’s name is not mandatory here. Just one questions from all my readers – How many of you know email addresses of your all friends?
As a friend, I know all my friends by their name and not by their email addresses. So, I believe Sender’s name should be mandatory here.
After this I checked for the validations on the fields.
I filled numerals values in sender’s name, email and receiver’s email address fields.

Clicked on send button. The message had been sent.

As you can see there is no validation on sender’s name, email & receiver’s email address. The message had been sent. I didn’t know which poor devil was going to get this mail.
I have doubt that some professional developer has developed this window. It seems any school going kid has done the job. Even they are also aware of these validations.
Now let’s see the max length validation.
I used Perl Clip for generating the string of one million characters and pasted the string in each field.

No surprise, each field has accepted one million characters. Now I wanted to see what would happen if I click on Send button. So I did the job.
I had doubt that this message would ever go and guess what, I was right.

If they had put max length validation for each field, you have not to see this error. From here, I was sure that I was going to get many bugs in this feature.
This time I thought to select the checkbox to send a personalize message with the product details. So I clicked on check box. It displayed one more field along with Captcha verification.

I clicked on send button again without filling up any data in any field.

As you can see, It had given the same error messages. I was surprised why it didn’t show any error message for personalize message or Captcha. On looking down I saw that marked checkbox was unmarked. So you see on page refresh the data was lost.
Again, I filled up the complete form

and clicked Send button. See, what I got here.
 

Now, this was the biggest joke. The Captcha verification had been provided but application was unable to check the Captcha. Then, what it was doing here? Moreover, instead of fixing the error, the application was suggesting me to send the message without personalize message.
While sending the product details I wanted to tell my friend that why I have chosen this product for him but I couldn’t do that.
As application was unable to send a personalize message, it had also unmarked the checkbox itself, so I decided to send the product details without personalize message. I clicked on send button again.
What?????
It was still looking for Captcha.

To check behind the curtains I clicked on checkbox.
OMG!!!!

Text message was still there. Captcha also had been refreshed.  It means I couldn’t send product details until I remove the personalize message and Captcha text.
One funny thing I noted here: When Captcha text was incorrect, it has given the right error message but when correct Captcha text was entered earlier it was unable to process.
I was unable to understand whether they are making my job easy or tough. I could send direct mail to my friend much faster rather than using this add-on.
Next, I opened the “Tell A Friend” in Mozilla tab as you can see in the following image.

I wanted to see on clicking Cancel button whether it would close the single tab or all tabs. So I clicked on Cancel button. I was expecting tab to be closed but nothing happened.
So, I filled the data in the field and click on Send button. The message was sent.

I clicked on Close button but as usual nothing happened.
Finally I decided to close the window myself and never tried to open it again. I was frightened with “Tell A Friend”.
Before finishing, I just have one request – Just try to reduce the tasks of a user instead of multiplying them. They have lots of things to do in life. Before releasing, please make it sure that application doesn’t have such kinds of stupid bugs.

Tuesday, November 10, 2009

Lessons Learned from Pradeep Soundararajan

Chapter 2 - Kids can do Boundary Value Analysis!!

My niece is 5 years old. She doesn't know what is software testing, in fact she doesn't know what is software but still she can do Boundary Value Analysis. Amazing na.... although I have never asked her to do so but still I am sure that she can do it.

Surely, you will be surprised how I am so sure? Actually, she can add the numbers, subtract the numbers and that is exactly what most of us do on the name of Boundary Value Analysis.

I was also following the same approach until Pradeep Sir has not mentioned it in one of his workshop. The question is - Are we really doing analysis?

The Wikipedia says:
Analysis is the process of breaking a complex topic or substance into smaller parts to gain a better understanding of it.

As definition says Analysis is just not adding or subtracting 1. It seems that we have changed the definition of analysis. If what we are doing is analysis then perhaps the software testers at NASA are doing the same :) They are just adding and subtracting the numbers. If that so, any body who can do addition and subtraction can join panel of Software Testers in NASA.

Boundary value analysis is a software testing design technique in which tests are designed to include representatives of boundary values. Values on the edge of an equivalence partition or at the smallest value on either side of an edge. The values could be either input or output ranges of a software component.

The definition doesn't mention +1/-1 approach. It also doesn't tell us that BVA can be be applied on input fields only which we generally do.

It is said that most of the bugs reside on the boundaries. Don't know who made this statement. Might be a tester has made the statement when he found most of the bugs at the boundaries when he was testing an application.

But is he right?

Might be he is right but did he really applied the +1/-1 approach. I don't think so. Check out the total bugs logged by you and then see how many bugs you have found by +1/-1 approach. I am sure the percentage would be very low.

Perhaps we are misunderstanding the concept of Boundary Value Analysis or Might be we need to rename the +1/-1 approach. How about calling it “Kids Approach”.

Think about it tell then let me try to find out what is Boundary Value Analysis?

Monday, May 18, 2009

Black Box Testing

A testing technique in which tester doesn't need to know the internal structure of the code to test an application. The main objective of Black Box Testing is to test the functionality of the application as a whole.

The Black Box testing considers the application as black box so explicitly it doesn't need the knowledge of internal structure or code. While designing test cases, tester takes external perspective of the application and based on the perspective the test cases are derived which can be functional and non functional.

The Black Box testing techniques is applicable to all levels of testinng : Unit, Integration, System and Acceptance Testing.

Advantage of Black Box Testing:

  • More Effective when used for large systems

  • As the tester and developer are independent of each other, test is balanced and unprejudiced

  • Tester can be non-technical.

  • There is no need of having detailed functional knowledge of system to the tester.

  • Testing helps to identify the vagueness and contradiction in functional specifications.

  • Test cases can be designed as soon as the functional specifications are complete

Disadvantage of Black Box Testing:

  • Test cases are tough and challenging to design, without having clear functional specifications

  • It is difficult to identify tricky inputs, if the test cases are not developed based on specifications.

  • It is difficult to identify all possible inputs in limited testing time. So writing test cases is slow and difficult

  • Chances of leaving many program paths untested

  • Chances of repeating the tests that are already done by programmer.

Black Box Testing Techniques: Typical Black Box testing techniques are as follows:

  • Error Guessing

  • Equivalence Partitioning

  • Boundary Value Analysis

Error Guessing: Error Guessing is a testing technique which is based upon the tester's past experience, knowledge and intution to predict where the bugs can be found in application under test. Some areas to guess are: empty or null strings, zero instances, occurrences, blank or null characters in strings, Negative numbers etc.

Equivalence Partitioning: Equivalence Partitioning is a Black Box testing technique in which input domain data is divided into different equivalence data classes. This technique tries to define test case that uncovers classes of errors, thereby reducing the total number of test cases that must be developed.

For E.g.: Consider you are testing a date field which can accept date from 01-01-2001 to 31-12-2010 . In this case there is no use to write 3652 test cases for all valid inputs plus test cases for invalid inputs.

By using Equivalence Partitioning, we can divide all the inputs into three classes:

  1. Dates before 01/01/2001 - Input data class with all values below lower limit. i.e. any value below 01/01/2001, as a invalid input data test case.

  2. Dates from 01/01/2001 to 31/12/2009 - One input data class with all valid inputs. Choose a single value from 01/01/2001 to 31/12/2009 as a valid test case. One test case for valid input data is sufficient because If you select other values between 1 and 1000 then result is going to be same.

  3. Dates after 31/12/2009 - Input data class with all values upper to higher limit. i.e. any value after 31/12/2010, as a invalid input data test case.

By using Equivalence Partitioning, we have categorize all the test cases into three classes. Now we can choose an input value from each class to design our test cases. As you can see by using Equivalence Partitioning, we have covered maximum condition from fewest test cases.

Boundary Value Analysis (BVA): From Practice and Experience, it has been prove that most of the errors are found at the boundaries of input and output ranges of an application component that result in application faults. Boundary value analysis assists with the design of test cases that will exercise these boundaries in an attempt to uncover faults in the software during the testing process.

As Equivalence Partitioning, BVA is also used to design test cases where test cases are selected at the boundary of the input ranges.

For eg: In the above example test cases for date field accepting dates between 01/01/2001 to 31/12/2010 using BVA will be as follows:

  1. Test cases with test data exactly as the input boundaries of input domain i.e. values 01/01/2001 and 31/12/2010.

  2. Test cases with test data with values just below the boundaries of input domains i.e. 31/12/2000 and 30/12/2010.

  3. Test cases with test data with values just above the boundaries of input domains i.e. 02/01/2001and 01/01/2011.

After determining the necessary test cases with equivalence partitioning and subsequent boundary value analysis, it is necessary to define the combinations of the test cases when there are multiple inputs to an application component.