Software Testing in Software Engineering
What is software?
- Software is a collection of specialized programs which takes user input and generate the desired output.
What is testing?
- Testing is checking whether the given software or application is generating the desired output.
What is Software Testing in Software Engineering?
The process of checking the completeness and correction of software with respect to the client’s or customer’s expectations is called software testing.
Software testing is a process, to evaluate the functionality of a software or application with the intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect-free.
- We are analyzing product requirements for completeness and accuracy in various contexts such as industry context, business perspective, implementation feasibility and workability, usability, performance, security, infrastructure considerations, etc.
- Reviewing product architecture and overall product design
- Working with product developers on the improvement of coding techniques, design patterns, and tests that can be written as part of code based on various techniques like boundary conditions, etc.
- Executing a program or application with the intent to test behavior.
- Reviewing deployment infrastructure and related scripts and automation.
- Participate in productive activities using supervisory and observational techniques.
Resources involved in the software development
- Customers want some product.
- BA (Business Analyst) gathers all the requirements from the customer.
- BA (Business Analyst) then makes BRS (Business Requirement Specification) documents and sends them to the developer.
- The developer then develops the application per the client’s requirement and sends the product to the tester.
- Testers then test the application with positive and negative testing concepts. Positive testing means suppose there is a name field. Tester test a field by entering credentials. This is a positive test by doing it in the correct manner.
- Negative testing is done by entering the wrong credentials in the field. For the name, the field tester enters numbers. This number should not get accepted. This is negative testing.
Objectives of Software Testing:
- To make sure that the end result meets the business and user requirements.
- To ensure that it satisfies the BRS (Business Requirement Specification) and SRS (Software Requirement Specification).
- To gain the confidence of the customers by providing them with a quality product.
- Finding defects.
- Gaining confidence in and providing information about the level of quality.
- To prevent defects.
How will you understand that Software has a bug?
- The software doesn’t do something that the product specification says it should do.
- The software does something that the product specification says it shouldn’t do.
- The software is difficult to understand, and hard to use.
What is Software Quality Assurance (SQA)?
- Communication between customers and the BA (Business Analyst) is called software quality assurance (SQA).
- Software quality assurance (SQA) monitors and measures software development factors.
Factors involved in Software quality assurance (SQA).
1. To meet the customer’s requirement
Which type of application customer want and for which purpose.
I.e. Banking domain, Telecom domain, etc.
2. To meet the customer’s Expectations
Privacy: Privacy includes security.
Suppose a banking application gathering customer data which is sensitive so the customer wants privacy
Performance: Software should balance load properly it should have to work properly in predefined load.
3. Costing of the project
Project costing for MNC is per hour cost. Customers have to pay for it. This payment depends upon resource utilization as well as time to complete the project.
4. Timing Delivery
At the time of resource gathering and documentation time to compete for a project gets decided.
If a company exceeds the delivery time, then the company has to pay a penalty, that penalty is called escalation.
Maintenance is the part of the service provided by the company after the delivery of the project
If any problem occurs after delivering the project then the company has to fix it.
Projects in Software Engineering
Projects have two categories-
- Critical Project
- Normal Project
1. Critical Project
Example: Banking Domain Project
Resources requirement: 2 developers, 1 tester
2. Normal Project
Example: ERP System
Resource Requirement: 3 developers, 1 tester