Embracing Quality: A Deep Dive into Software Testing and Quality Assurance at Uttara University

As technology continues to evolve at a rapid pace, the demand for quality software has never been greater. In response to this need, I’m excited to announce that I will be leading a series of lectures on Quality Assurance (QA) and Software Testing at Uttara University under the EDGE project.

Why Quality Assurance Matters

Quality Assurance is more than just finding bugs; it’s about ensuring that software meets the highest standards of quality and reliability. With the increasing complexity of software applications, effective QA practices are essential for delivering products that not only meet user expectations but also perform well under real-world conditions.

Course Overview

Throughout this course, we will explore key concepts and methodologies in QA and software testing, including:

  1. Introduction to Quality Assurance: Understanding the principles of QA, its importance in the software development lifecycle, and the role of QA professionals.
  2. Testing Methodologies: Delving into various testing types such as unit testing, integration testing, system testing, and acceptance testing. We will also discuss manual vs. automated testing and when to use each approach.
  3. Test Planning and Design: Learning how to create effective test plans, design test cases, and establish testing criteria that align with project requirements.
  4. Defect Tracking and Reporting: Best practices for identifying, documenting, and communicating defects to ensure timely resolution.
  5. Tools and Technologies: An overview of popular testing tools (like Selenium, JUnit, and Postman) and how they can enhance the testing process.
  6. Real-World Applications: Case studies and practical exercises to apply the concepts learned and prepare students for real-world QA challenges.

Learning Outcomes

By the end of this course, students will be equipped with the knowledge and skills to:

  • Understand the critical role of QA in software development.
  • Develop comprehensive test plans and cases.
  • Utilize various testing tools effectively.
  • Analyze and report on testing outcomes to drive improvements.

Join the Journey

I am passionate about sharing my knowledge and experiences in QA and software testing. This course will not only provide theoretical insights but also hands-on experience that prepares students for careers in this vital field.

I look forward to engaging discussions, collaborative projects, and fostering a deeper understanding of quality assurance among aspiring software professionals.

Stay tuned for updates, and let’s embark on this journey towards achieving excellence in software quality together!

Database Testing Checklist

Database Testing

  • Synchronization between the database and the values displayed in our client/web.
  • Query results, views, stored procedures, indexers Etc.
  • Data manipulation (Update, Delete, insert Etc.).
  • Database performance.
  • Data maintenance.
  • Table’s structure.
  • Data recovery.
  • Data integrity.
  • Others

Clean database testing

  • Verify clean database testing.
  • Input 1st data

Database system-level tests

  • Validate the DB behavior of any case of service failures (recovery, error handling Etc.).
  • Validate that all indexes are created when it can increase the system performance.
  • Validate that appropriate events are created ad sent to the EventVwr/trace log.
  • Validate that DB tables are created with informative and reasonable names.
  • Try to work when the storage is ‘0’ and the e database is in running state.
  • Perform your tests on different versions (SQL 2005, 2008, 2012 etc.).
  • Validate the software security model (User roles, permissions etc.).
  • Validate the connection strings against SQL/Win authentications.
  • Validate data migrations (Different Database, Cluster, etc.).
  • Validate the behavior of the system against SQL injections.
  • Validate date to DB when the server is loaded.
  • Try to work when the database server is down.
  • Try to work with difference instance.
  • Validate restore and backup plans.

Database Integration Testing

  • Check that all columns are set with the relevant data type (Bigint, int, string Etc.)
  • Check that all data is logically organized in the relevant DB tables.
  • Check that each data item is located under the relevant column.
  • Is there any irrelevant data in the software dedicated tables?
  • Check that each table contains the relevant data.
  • Try to insert invalid database values.
  • Verify the data encryption (if any).

Data field tests

  • Validate that “Allow Null” condition is not allowed in a place that result a software failure.
  • Validate that all tables are created with logical structure (Primary, foreign keys.)
  • Validate that “Allow Null” condition is set when you need to allow it.
  • Validate that mandatory fields are created, this issue is very important when you work with multiple tables that depends on each other.

Procedure tests

  • Validate that the data the affected by the procedure is changed as expected.
  • Validate that all procedures are triggered when they supposed to run.
  • Validate that all the conditions receive an appropriate date inputs.
  • Validate that all procedures are created with the relevant code.
  • Is there an appropriate error handling for a failed procedure?
  • Validate that all the loops receive an appropriate date inputs.
  • Validate the procedure’s parameters (types, names, etc.).
  • Test the SP while executing the code manually.
  • Validate important code with SQL profiler.
  • Validate that all procedures names
  • Run tests with missing parameters.

Database and software integration (Client, web Etc.)

  • Validate that the user data is saved when the user “Apply” or “Submit” the changes.
  • Try to insert “NULL” values on fields that doesn’t supposed to receive it.
  • Validate that the user receives the current result when pulling data.
  • Validate that transaction the data type boundaries (Minima Etc.)
  • Validate that empty spaces are not committed to the database.
  • Validate that the values displayed based on the database data.
  • Try to insert UNICODE on Unicode character strings.
  • Try to insert values that exceed the field boundaries.
  • Validate that transactions the negative data values.
  • Insert invalid date format on Date and time fields.
  • Validate that the data integrity is not affected when the “Apply” or “Submit transactions are failing during the process.
  • Validate that the “Roll Back” option is available when the DB transaction is failed in the middle.

Data checking

  • Create Data from frontend and check by Query
  • Delete Data from frontend and check by Query