Let's Talk About Software Testing

Let's Talk About Software Testing

So, What is it?

Software Testing is a process to evaluate the functionality of a software application, with an intent to find whether the developed software met the specified requirements or not, and to produce a bug free quality product.?

?Why do we Test Software??

  • Cost of fixing the bug is larger if testing is not done in early stage?
  • To produce good quality product?
  • To make software application defect free?
  • To check if behaviour of application is same in development and production environment?

How much testing is enough??

  • Selecting test conditions to cover the fundamental problem of testing.?
  • Number of test cases is infinite even for the simplest systems.?
  • Instead of trying all the possible test cases, the goal of testing is to focus on the tests that give us the greatest value by covering the most important parts of the system.?
  • We could say sufficient coverage is done when we are able to balance the project constraints such as time and the budget.?

What are the key activities in Software Testing??

  • Test Planning — Establishing the scope, approach, intent, specific tasks in the intended test activities.?
  • Test Control — Taking corrective actions to get a test project back on track in order to avoid further deviation from the project schedule.?
  • Test Analysis — Identifying what to test (component or functionality), choosing the test conditions we need to cover.?
  • Test Design — Determining how to test what we decided in the Test Analysis phase, we do this by transforming test cases to make it more generalized covering different conditions within its scope.?
  • Test Implementation — Carrying out the remaining activities that are required to begin the test execution, such as developing and prioritising test procedures, test data generation and setting-up the test environment.?
  • Test Execution — In this we run our tests against test objects.?
  • Checking results — As a part of test execution, we see actual results with respect to our test cases. We need to compare the outcomes with expected outcome to grade the test condition as pass/fail.?
  • Evaluating Exit Criteria — At a high level, exit criteria are a set of conditions that would allow some part of a process to complete. Exit criteria are fixed at the time of test planning.?
  • Test Result Reporting — In test result reporting, we want to report our progress against exit criteria, as described above.?
  • Test Closure — Involves collecting test process data obtained from various test process activities.?

What are the Principles of Testing?

There are seven fundamental principles of testing observed over the past 40 years:?

Principle 1: Testing shows presence of defect but cannot prove there are no defects.?

Principle 2: Exhaustive Testing is impossible, testing everything is not feasible. Instead of exhaustive testing, risk analysis and priorities should be used to focus the efforts.?

Principle 3: Early Testing reduces the cost and workload exponentially, hence testing activities should be started as soon as possible in the software development life cycle.?

Principle 4: Defect Clustering — testing effort should be focused proportionally to the expected and later observed defect density in the modules. A small number of modules usually contain most of the defects.?

Principle 5: Pesticide Paradox — if the same set of test cases are run over and over again, eventually the same test cases will no longer find any new defects. To overcome this, new and revised test cases should be used after each cycle.?

Principle 6: Testing is context dependent, testing is done differently in different contexts. For example, safety-critical software is tested differently for a net-banking website.?

Principle 7: Absence of errors fallacy — finding and fixing defects doesn’t help if the system built is unusable and doesn’t fulfil the user's needs and expectations.






#testing?#softwaretesting?#qa?#qualityassurance?#softwaretester?#qualitycontrol?#softwareengineer?#softwareengineering

Ibironke Yekinni??

Director, Product Quality Engineering || Project Management || Cybersecurity E. || Author, The First Software Testing Books In Africa || 4xFounder || I help product-led companies deliver quality-first products with AI

2 年

Amazing

Mohammed Umar

QA Engineer || Benefit Fulfillment Officer

2 年

Nice

要查看或添加评论,请登录

Jennifer Ugo的更多文章

  • Solutions and Innovations with AI

    Solutions and Innovations with AI

    As we all know or should all know, Artificial Intelligence (AI) is the most promising development for the future. I'm…

  • Performance Testing using JMeter

    Performance Testing using JMeter

    Apache JMeter is an open source tool which analyzes and measure the performance of certain services, focuses mainly on…

    3 条评论
  • Performance Testing

    Performance Testing

    Performance Testing ensures that the software applications performs well under their expected workload. The goal of…

  • Non-functional Testing

    Non-functional Testing

    Basically, Non-Functional Testing is done to check and evaluate all the non-functional parameters which are not covered…

  • Software Test Environments

    Software Test Environments

    What is a Test Environment? Test Environment is basically a replica of actual production environment which is provided…

  • Software Testing: Bug Reporting

    Software Testing: Bug Reporting

    In software, a bug is an error, flaw, or fault in an application. This error causes the application to produce an…

  • Some Test Management Tools

    Some Test Management Tools

    Yesterday we talked about some Important Fields for Test Case Document. Here's a couple of tools we we can use for…

  • Test Management

    Test Management

    Test Management Process is basically a set of activities which covers the whole testing phase i.e.

  • Some Important Fields for Test Case Document: Explained

    Some Important Fields for Test Case Document: Explained

    While creating a Test Sheet or a Test Case, there are some important fields that must be added during the preparation:…

  • Test Case Writing Process and Test Data Generation

    Test Case Writing Process and Test Data Generation

    Let's start with; What is Test Data? This is documented Data that is basically used to test the software program. Test…

社区洞察

其他会员也浏览了