Tuesday 3 October 2023

KPI Trackers for QA Directors

Directors of Quality Assurance (QA) play a crucial role in ensuring the quality and reliability of software products. To effectively monitor and improve their QA efforts, it's essential to track Key Performance Indicators (KPIs) that provide valuable insights into the testing process and its impact on software quality. In this summary, we'll discuss the six KPIs that QA Directors should prioritize:

  1. Automation Percentage: This KPI measures the extent to which automated testing is employed in the QA process. A higher automation percentage indicates a reduced reliance on manual testing, which can lead to increased efficiency and faster testing cycles. Automation helps catch bugs early in the development process, reducing the cost of fixing issues later on.
  2. Unit Test Coverage: Unit testing is a critical component of QA, as it focuses on testing individual components or units of code. Tracking unit test coverage provides insights into how thoroughly the core features of the software are tested. Higher coverage suggests better validation of critical functionality, reducing the likelihood of defects in these areas.
  3. Escaped Bugs: Escaped bugs are defects that make their way into the production environment and reach end-users. Monitoring this KPI helps QA Directors identify weak points in their testing process and prioritize areas that require more comprehensive analysis. Addressing escaped bugs can significantly enhance software quality and customer satisfaction.
  4. Test Time: Analyzing the time required for testing activities is essential for optimizing QA processes. By understanding where time is spent during testing, QA teams can identify bottlenecks, allocate resources more efficiently, and ultimately accelerate project delivery. Reducing test time without compromising quality is a key goal for QA Directors.
  5. Time Allocation for Manual Testing vs. Automation: Balancing manual and automated testing is crucial for effective test coverage. This KPI ensures that the right mix of manual and automated tests is used to achieve the desired quality levels. Automation can handle repetitive and regression testing, allowing manual testers to focus on exploratory and high-priority testing tasks.

In summary, QA Directors should closely monitor these KPIs to drive improvements in their QA processes:

  • Increase Automation Percentage to reduce manual testing efforts and catch defects earlier.
  • Enhance Unit Test Coverage to thoroughly validate core software features.
  • Address Escaped Bugs to prevent defects from reaching end-users.
  • Optimize Test Time to expedite project delivery and resource management.
  • Fine-tune Time Allocation for Manual Testing vs. Automation to maintain effective test coverage.
Lastly, the most significant impact on software quality among these KPIs may vary depending on the specific project, team, and goals. However, a strong case can be made that addressing Escaped Bugs has the most significant impact. These bugs can harm the reputation of a software product and result in costly post-release fixes. By minimizing escaped bugs, QA Directors can contribute significantly to overall software quality and customer satisfaction.

There are many Generative AI tool and testTiger is one of the powerful tool which can be used to automate tests.

Sunday 28 June 2020

Export Blob(BINARY or VARBINARY) From SQL Server Table and save it as a file

Export Blob(BINARY or VARBINARY) From SQL Server Table and save it as a file

binary value or type in SQL Server is a series of bytes (known as a byte array in some programming languages). Just like char/varchar, there are fixed-length types, binary(1-8000), and variable-length ones, varbinary(1-8000) and varbinary(max).

Some time we store this type of  data in SQL Tables and loose the source files. This type of data stored in a binary format which is system formatted. 
A PDF file is converted and stored in this format. And the text looks similar to this,

"0x255044462D312E340A25C3A4C3BCC3B6C39F0A322030206F626A0A3C3C2F4C656E6774682033203020522F46696C7465722F466C6174654465636F64653E3E0A73747265616D0A789C358CBD1240401083FB7D8AD48A75B71CABD728551EC0F8291C43E3F5ED0D26453"

Now to recreate a file from this data is not something which can be crated by simple copy paste.

Here is the process which can be used to get the source file.



DECLARE @outPutPath varchar(50) = 'C:\ExtractedFiles'
, @i bigint
, @init int
, @data varbinary(max)
, @fPath varchar(max) 
, @folderPath  varchar(max)

--Get Data into temp Table variable so that we can iterate over it
DECLARE @Doctable TABLE (id int identity(1,1), [FileName]  varchar(100), [Doc_Content] varBinary(max) )

INSERT INTO @Doctable( [FileName],[Doc_Content])
Select [RecordID],[FileUpload] FROM  [dbo].[tbl_AuthorConferenceList]

--SELECT * FROM @table

SELECT @i = COUNT(1) FROM @Doctable

WHILE @i >= 1
BEGIN

       SELECT
        @data = [Doc_Content],
        @fPath = @outPutPath +  '\' +[FileName] +'.pdf',
        @folderPath = @outPutPath
       FROM @Doctable WHERE id = @i

  --Create folder first
 
  EXEC sp_OACreate 'ADODB.Stream', @init OUTPUT; -- An instance created
  EXEC sp_OASetProperty @init, 'Type', 1; 
  EXEC sp_OAMethod @init, 'Open'; -- Calling a method
  EXEC sp_OAMethod @init, 'Write', NULL, @data; -- Calling a method
  EXEC sp_OAMethod @init, 'SaveToFile', NULL, @fPath, 2; -- Calling a method
  EXEC sp_OAMethod @init, 'Close'; -- Calling a method
  EXEC sp_OADestroy @init; -- Closed the resources

  print 'Document Generated at - '+  @fPath  

--Reset the variables for next use
SELECT @data = NULL 
, @init = NULL
, @fPath = NULL 
, @folderPath = NULL
SET @i -= 1
END

Now you might end up getting compilation issues.
The reason is all the System Stored Procedures are unavailable.
To solve this we have to enable the Facets Property "OleAutomatedEnabled"