Sunday, September 9, 2018

Introduction of Manual Testing

a) What is Software Engineering?
b) What is Software Testing? (Manual)
c) What is Quality and QA and QC?

d) Software testing Necessity
e) What are the software testing Principles?
f) What are the Testing Objectives?
-----------------------------------------------------------------------------------------

a) What is Software Engineering?

The technology encompasses a process, a set of methods, and an array of tools that we call s/w engineering. It is focus on quality.

Process, Methods and Tools: S/W ENGINEERING IS A LAYERED TECHNOLOGY.

Tools: S/W Engineering tools provide automated support for the process and methods.

Methods: S/W Engineering Methods provide “How to build the software”.

Process: It defines for a set of KPA’s (key process area) that must be established for effective delivery of s/w engineering technology.

Software Project:

A set of problems assigned by the client, who can be solved by the software people through the process of software Engineer called Software project.

In short,
       The problem,
       The people,
       The process called project.

Software related problem is solved by software engineers through software engineer process is software project.
---


b) What is Software Testing? (Manual)   

What is Testing? 

Testing is a set of activities that can be planned in advance and conducted systematically.

What is Software Testing? (Manual):   

The Verification and Validation of a process is called S/W Testing.
Ex: For this reason T.C template for s/w testing.

Verification:
Testing Quality work products (Documentation such as Test Plan, Test Cases Etc…) by performing Reviews and conducting meeting etc… and it is Static.

Validation

Testing the Working Software based on its Requirements and it is Dynamic.

Technical Reasons
Meet Customer Requirements
Meet Customer Expectations (Ease of use, performance, security)


Non Technical Reasons
-Possible Cost to Purchase
-Time to Market


c) What is Quality and QA and QC?

Software Quality:

Software satisfies quality only when it meets to Customer Requirement / Customer Satisfaction / Customer Expectations. Meets Customer Requirement refers to proper output and Customer Expectations refers to extra characteristics, good interface, speed, privacy, security, easy to operate, good functionality.

Non-technical reasons: Cost of product and Time to market

Quality: Meet the Customer Requirements and expectations.

Technical Factor
Non-Technical Factor
Software satisfies quality only when it meets to
·      Customer Requirements (Functionality)
                     or
·      Customer Expectations (Performance, Usability, portability etc…)
                     or
·      Customer Satisfaction

meets the customer requirement refers to proper output and good interface, speed, privacy, security, easy to operate, good functionality.
·     Cost to purchase license
·     Time to release

Cost of product and Time to market / release.


Quality Assurance (QA)
Defining, Monitoring and Optimizing the process is called Quality Assurance, it is part of Quality Management and it is Prevention oriented.

Software Quality Assurance (SQA)
SQA are the concepts to be followed by company to develop the software.  An SQA team is responsible for Monitoring and Measuring the strength of developing processes is called SQA.  Ex: LCD along with LCT.

Quality Control (QC)

Checking the System (Final Outcome) with respect to Requirements is called Quality Control and it is Detection oriented.
---

d) Software testing Necessity? (ISTQB Exam Q.)

simply says 6 reasons why software testing is necessary

1. To Detect Software bugs
2. To Ensure product work as expected
3. To Avoid user detected problems
4. To Validate the reliability of the software
5. To Stay in business

6. To Satisfy customers

in brief-Software testing is very important because of the following reasons:

1. Software testing is really required to find the defects and errors that were made during the development phases.

Ex: Programmers or Developers may deviate the requirements, they make a mistake during the implementation of the software. That could be many reasons by lack of experience of the programmer, by lack of programming knowledge, insufficient experience in the domain, incorrect implementation of the algorithm due to complex logic or simply human error.

2. It’s essential since it makes sure that the customer finds the organization reliable and their satisfaction in the application is maintained.

.If the customer does not find the testing organization reliable or is not satisfied with the quality of the deliverable, then they may switch or go to some other competitor organization.

.Sometimes the contracts may also include monetary penalties with respect to the timeline and quality of the product. In such cases, if proper software testing may also prevent monetary losses.


3. It is very important to ensure the Quality of the product. Quality product delivered to the customers helps in gaining their confidence.

because delivering good quality product on time builds the customers confidence in the team and the organization.


4. Testing is necessary in order to provide the facilities to the customers like the delivery of high quality product or software application which requires lower maintenance cost and hence results into more accurate, consistent and reliable results.

High quality product typically has few defects and requires less maintenance effort, which in turn means reduced costs.

5. Testing is required for an effective performance of software application (Project) or Product.

6. It’s important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stages of the development.

Proper testing ensures that bugs / issues are detected early in the life cycle of the product or application.
If defects related to requirements phase or design phase are detected late in the life cycle, it can be very expensive to fix them since this might require redesign, re-implementation and retesting of the application.


7). It’s required to stay in the business.

Users are not inclined to use software that has bugs. They may not adopt a software if they are not happy with 

the stability of the application.
In case of a product organization or startup which has only one product, poor quality of software may result in 

lack of adoption of the product and this may result in losses which the business may not recover from.
---

e) What are the software testing Principles?

There are seven principles of testing.

1) Testing shows presence of defects:
2) Exhaustive testing is impossible:
3) Early Testing
4) Defect Clustering
5) Pesticide Paradox
6)Testing is context dependent
7)Absence of errors - fallacy

1) Testing shows presence of defects: Testing can show the defects are present, but cannot prove that there are no defects. Even after testing the application or product thoroughly we cannot say that the product is 100% defect free. Testing always reduces the number of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness.

2) Exhaustive testing is impossible:  Testing everything including all combinations of inputs and preconditions is not possible. So, instead of doing the exhaustive testing we can use risks and priorities to focus testing efforts. For example: In an application in one screen there are 15 input fields, each having 5 possible values, then to test all the valid combinations you would need 30 517 578 125 (515) tests. This is very unlikely that the project timescales would allow for this number of tests. So, accessing and managing risk is one of the most important activities and reason for testing in any project.

3) Early testing:  In the software development life cycle testing activities should start as early as possible and should be focused on defined objectives.

4) Defect clustering: A small number of modules contains most of the defects discovered during pre-release testing or shows the most operational failures.

5) Pesticide paradox: If the same kinds of tests are repeated again and again, eventually the same set of test cases will no longer be able to find any new bugs. To overcome this “Pesticide Paradox”, it is really very important to review the test cases regularly and new and different tests need to be written to exercise different parts of the software or system to potentially find more defects.

6) Testing is context dependent: Testing is basically context dependent. Different kinds of sites are tested differently. For example, safety – critical software is tested differently from an e-commerce site.

7) Absence–of–errors fallacy: If the system built is unusable and does not fulfill the user’s needs and expectations then finding and fixing defects does not help.
---

f) What are the Testing Objectives?

1. Testing is a process of executing a program with the intent of finding an error.
2. 
A good test case is one that has a high probability of finding an as-yet undiscovered error.
3. 
A successful test is one that uncovers and as-yet undiscovered error.

The above objectives imply a dramatic change in viewpoint.


***

No comments:

Post a Comment

Featured Post

How To Change Width & Height of Blogger's Top Menu Bar