Get familiar with the testing process in the organization

Get familiar with the testing process in the organization and know about: what is a Build?, How a QC team starts their testing and what is software installation process.

What is a Build in software testing?

A build is a piece of software which is copied, unzipped and installed on the testing server. All the programs and files are compiled and then compressed (compressed file should be in .zip, .rar, .war, .gunzip, .tar, .jar) and stored in one location, the compressed file is known as build which is copied and pasted in the test environment, installed and we start testing the software.

How industry works in software testing

CASE 1: – Test Engineer is installing the software

how industry works in software testing

 

The developers once get the whole requirement, they start developing the software. As each feature or module is built, the code is compiled, compressed and stored in a compressed file. In the above example, the first build is shown. As soon as the first build is ready, the development lead sends a mail to the test lead saying that the first build is ready and they can start testing. He also gives the name of the server and the file in which the first build is stored. The test engineer then goes to the development server and copies the file to the testing server. Test engineer unzips the file and install the software on the testing server and allows the various features of the first build to be tested by the testing team.

 

CASE 2: – Developer is installing the software

 

When the developer is installing the software in the testing environment, and test engineer team should open the browser, copy the URL that is sent by the developer and paste it in the browser. If the developer installs, they’ll give username and password. The test lead then logs in using the given the username and password and creates his own username and password through which the testing team will log in and start testing the software.

 

CASE 3: – Release engineer / Build Engineer

 

Release engineer is the one who manages the source code. If the developers are working at the different location, the release engineer first installs a Version Control Tool and creates a folder in the tool. The developers should copy and paste the programs into that folder. Once the folder is locked, the developers can’t send their programs when the folder is locked. Now, release engineer will compile, compress and then build a software. Now he will only install the software inside the test environment (testing server) and sends a mail to the testing team. The testing team starts testing on the software. If they find bugs, they report it to the developers.

The release engineer performs 2 functions,

  1. Manages source code
  2. Create a build and they install in the test environment

Whenever the Release Engineer compiles the program, if the program does not compile then he will send the program back to the developers and ask them to check (or) not to send that program at that particular build.

When do we need a Release Engineer?

  1. The product or project is complex and big.
  2. When numbers of developers are there to work on a project.

 

Prototype Model in Software Testing

What is Prototype Model?

The requirements are collected from the client in a textual format. The prototype or dummy of the software product is developed. The prototype is just an image or picture of the required software product as per requirements. The customer can look at the prototype or dummy and if the client is not satisfied, then he can request more changes in the requirements.

Prototype testing means developers and testers are checking if all the components mentioned in requirements are existing or not. The difference between prototype testing and actual testing – in Prototype testing, testers are checking all the components as per requirements are exist or not, and on the other hand, in Actual testing testers check all components are working.

The prototype is not a complete system and many of the details are not represented in the prototype. The goal of prototype model is to provide a system with overall functionality as per requirements.

There are two types of prototypes: –

  1. Static Prototype: – It does not contain detailed information about prototype or no information about other pages prototype or dummy.
  2. Dynamic Prototype: – It has links to other pages, links are for navigation of other pages prototype or dummy.

Steps that follow in Prototype model:-

  1. Requirement Collection: – In this step requirement collected from the client side.
  2. Design & Development of Prototype: – In this step prototype/ dummy are created as per requirement for the client.
  3. Prototype Testing: – Testers test the dummy that is created.
  4. Customer Review: – In this step, prototype sent to the client, changes made by the client then again designing of prototype steps involved. If customer finalized/approved the prototype then next step will follow.
  5. Designing: – Actual designing involved in this step.
  6. Coding: – Actual software is to develop in this step by developers
  7. Testing: – Tester tests the actual software.
  8. Installation: – In this step, software installation is done at client place.
  9. Maintenance: – Requirement change according to business demand and issue fixing are involved in this step.

 

prototype testing

 

Advantages of Prototype Model:

  1. Users are actively involved in the development.
  2. Errors can be detected much earlier in this SDLC process.
  3. Early user feedbacks, leads to better outcome.
  4. Missing and wrong functionality can be identified easily and early.
  5. This model helps us to gain high-quality product.

Disadvantages of Prototype Model:

  1. Too much documentation required
  2. There is delay in starting the real project
  3. Once the prototype is ready you can’t use it in other projects
  4. Since you have satisfies the customer and built the prototype, this process is much time-consuming.

Applications of Prototype Model:

  1. We use this model when we don’t know what the client wants or client requirement is too abstract.
  2. We use this model whenever the client is new to the Software World

Rapid Application Development (RAD) in Software Testing

RAD stands for Rapid Application Development model. It is a type of incremental model and in this model, module and feature added incrementally one by one. In RAD model the components or functions are developed in parallel considering it as a mini project. The developments are time bounded, delivered and then assembled into working software/ product and it quickly provides the customer to see and use these feature and to give feedback regarding the delivery and their requirements if something missed  during the process. Rapid application development model is based on the module by module or feature by feature development. In RAD model every feature and module developed by separate/ different team at a time.

The phases of the rapid application development (RAD) model: –

Business Modeling: – Business model is the first step of RAD. in this step, In this phase, the information flow is identified between various business functions. In this phase business of the module conferred.

Data Modeling: – Data modeling is the second step of RAD. in this step, Information gathered from business modeling is used to define data objects that are needed for the business.

Process Modeling: – Business model is the third step of RAD. in this step, Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Descriptions are identified and created for CRUD of data objects.

Application Generation: – Application Generation is the fourth step of RAD. in this step, Automated tools are used to convert process models into code and the actual system. Software is develop in this step.

Testing: – This is the last step of RAD. in this step, Testing is performed for new components and all the interfaces of the feature/ module.

Rad Model

Advantages of the RAD model:

  1. Reduced development time.
  2. Increases reusability of components.
  3. Quick initial reviews occur.
  4. Encourages customer feedback.
  5. Integration from very beginning solves a lot of integration issues.

Disadvantages of RAD model:

  1. Depends on strong team and individual performances for identifying business requirements.
  2. System that can be modularized can be built using RAD
  3. Requires highly skilled developers/designers.
  4. High dependency on modeling skills
  5. Inapplicable to cheaper projects as the cost of modeling and automated code generation is very high.

 Applications of RAD model:

  1. Rapid application development model should be used when there is a need to create a system that can be developed in 2-3 months of time.
  2. It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools.
  3. Rapid application development model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short duration of time.

Spiral Model in Software Testing

What is Spiral Model?

We use Spiral model whenever there is a dependency between modules. In Spiral model, the software product is developed in small modules. Spiral model is used to develop a software that consists referential integrity between modules. In spiral model, software is developed in a series of incremental releases.  The spiral model is divided into a number of framework, activities or task. Each spiral consists of a deliverable product. Feedback of each spiral is incorporated in the text spiral. The client can start using the system after every spiral.

Steps followed in spiral model –

  1. Requirement collection
  2. Designing
  3. Development
  4. Testing

Spiral Model

Requirement Collection: – Requirement collection is the first step of spiral modal. In this step requirement collected from the client side as per module before designing. Business analyst collected requirements in the form of CRS (customer requirement specification) and Convert it into SRS (Software requirement specification).

Designing: – In designing step designs are prepared by the senior developer on the basis of requirement. Designs are will be changed as per requirements.

Development: – In this step, development starts as per designs or requirements.  Development is done by developers module by module. After developers develop one feature/module of the product, then only a  developers can go on to develop the next module of the product.

Testing:  – Testing performed for new modules/ features first. After that newly added feature or module dependency will be tested with other feature or modules.

When do we add new feature/ Module?

Firstly requirement collection takes place then design process done as per new requirement after that development steps involved, after completion of development, testing performed by testers, In this process test engineer firstly test new added feature/ module then test the dependency at old modules/ features to check the overall impact of the new feature.

Two types of changes involved in this modal: –

  1. Major changes: – When the changes made in the half part of the old features the changes known as major changes. In this change testing performed, firstly test half part in which changes made, after that test the remaining half part, then test the overall impact if there are other features involved.
  2. Minor changes: – When we add the new features, then bug fixing or changes we make in the feature is known as minor changes. After these changes first test the newly added feature, then test feature in which changes made after that bug fixing and at last test the dependency of all old features.

 Advantages of Spiral Model: –

  1. This model is Useful for large projects.
  2. It is a flexible model since it is allow requirement changes.
  3. Customer can see the product in early stages of development.
  4. Early availability of the usable system.

Disadvantages of Spiral Model: –

  1. It is a time consuming model.
  2. Testing is a small phase after coding.
  3. Development is module by module.
  4. Developers are involved in testing.

Applications: –

  1. Whenever customer is new to the software.
  2. Whenever requirements are not cleared.
  3. Use for large and complex projects.

Whenever there is a dependency in building the different modules of the software, then we use Spiral Model.

 

Waterfall Model in Software Testing

What is Waterfall Model?

 Waterfall Modal is a traditional model and it is a sequential design process. In Waterfall Model. we can’t do backtracking i.e. if we once freeze the requirements then we can’t go back and we can’t add a new feature in same development cycle and process. If we allow backtracking than in between if we have misunderstood the requirements then there will be a downward flow of defect.

Diagram of Waterfall Modal

Requirements Collection: – It is done by Business Analysts and Product Analysts. It is a process of gathering/ collection of requirements from the client side in the form of CRS (Customer requirement specification).

Feasibility Study: – It is done by software team consisting of project managers, architects, finance guy, HR, developers but not testers.

Architect – Architect is the person who makes the decision as per the technical point of view. The architect thinks about operating system and language that should be used to develop the software or product.

HR – HR will make decisions about the resources. Resources are available for decided technology or not which we are going to use while developing the system or product.

Finance guy – Finance related person think about the financial aspects of the project, regarding profit and loss.

Design: – There are 2 stages of designing in which we prepare

  1. HLD – High Level Design
  2. LLD – Low Level Design

HLD – It is a basic representation of product or software. In this design, there are no detailed descriptions of the features and product.

LLD – It is done by senior developers and it is a detailed description of a product. It describes how each and every feature in the product should work and how every component should work.  This design is based on feature separately.

Coding / Programming: – Coding done by all developers – seniors, juniors, fresher that exist in the team of product development. This is the process where we start building the software and start writing the code for the product as per requirement specification.

 Testing:  – In this phase testing performed at developed software to check where the software is useful or not. Testing is done by test engineers.

Installation: – Installation done by installation/Release/Senior Developer engineers, to install the product at a client’s place for using after the software has been developed and tested.

Maintenance: – Bug fixing and changes like addition, deletion or modification of any feature in the software product is involved in this process.

Advantages of Waterfall Model: –  

  1. Easy to understand and implement.
  2. Since the requirements are fixed we can expect a stable project.

Disadvantages of Waterfall Model: –  

  1. Since requirements are fixed, is not a flexible model we cannot add new features in between them.
  2. If we don’t freeze the requirements there will be a downward flow of defect.
  3. Testing is a small phase, only takes place after coding.

Applications: –

  1. Can be applied to a simple and small projects.

Can be applied only when requirements will not change in any case.

Keywords related to Software Testing

Some technical words that are in used while testing: –

Error: – Mistakes done in program or code that is written by a developer is known as Error. It is identified by a Developer.

Defect: – Anything which deviates from plan and software misses some feature or function that specify in requirement specification is known as Defect. It is identified by a tester.

Bug: – When actual result deviates from the expected result while testing a software application is known as a Bug. A bug is an Informal name of Defect and it is identified by a tester.

Failure: – The issue and deviation identified by end-user while using a system are called a failure. Cause of defect which leads to a Failure.

Bug-tracking: – Tracking and maintaining all the defects in one centralized location is called Defect tracking.

Bug-tracking tool: – The tools that are used for Tracking and Maintaining all the defects in one centralized location is called defect tracking tool.

Some defect tracking tools- Bugzilla, Mantis, Jira, Bug genie, Project Management Tool etc.

 

What is Software Development Life Cycle (SDLC)?

 Software Development life cycle is a procedure to develop the software. It is a process of creating a system or a models or methodologies that people use to develop a system or software. Through SDLC a system meets high quality of work effectively and efficiently.

The various Phases of Software Development Life Cycle: –

  1. Requirement Gathering /Requirement collection
  2. System Analysis
  3. Design
  4. Development
  5. Testing
  6. Deployment / Installation
  7. Support

 

  1. Requirement Gathering: – In this phase, requirements are collected from the customer side. These requirements are based on business statics and points.
  2. System Analysis: – In this phase, system analysis is done by a team on requirements as per the market point of view by using domain knowledge. System analysis is also done by a team for technology and other required things for development of software.
  3. Design: – In this phase, we create a design as per requirements. Two types of design involved here first high-level design and second is low-level design.
  4. Development: – In this phase, actual development starts and the product/ software is built. Development is done by developers.
  5. Testing: – Testing is done by the testing team at developed software. Testing is performed only after the development process.
  6. Deployment/ Installation: – When the software becomes stable and ready to deploy then the software is deployed at live or client site. This process is done by the senior developer or development team lead.
  7. Support/Maintenance: – In this phase, support takes place after the product is released in the market. It is done for the addition of new features and change in existing feature as per market response in the software. Support also takes place for issues fixing after release process at the live/production server.

Different procedures / models are available to develop software:

  1. Waterfall Model
  2. Spiral Model
  3. Prototype Model
  4. V-Model
  5. Hybrid Model
  6. Rapid Application Development Model (RAD Model)
  7. Agile Model

Introduction to Software Testing and its types

What is Software Testing?

Software testing is the process of checking or testing all defects and it ensures software fulfilled all requirements and business statics.

Or

Software testing process is used to determine the software is developed as per client expectation or business perspective.

“Every software is developed to support the business and Software testing is performed for business support and improvement in the quality of software”.

Software testing has three main purposes: – Verification, Validation, and Defect Finding.

Verification process: – The verification process confirms that the software meets its technical specifications. It ensures that “Are we building the thing right”, and it ensures that the software has high quality.

Validation Process: – The validation process confirms that the software meets the business requirements. It ensures that “Are we building the right product or not”, and it ensures that the software is usable or useful.

Defect Finding: – A defect is a difference between the expected and actual result. The defect ensures the fault make in the specification, design or development. Defect find by the tester.

There are two ways to perform testing.

  1. Manual Testing
  2. Automation Testing

Manual Testing: – Checking or testing the application manually without using any automated tool or script is known as manual testing. Manual testing also includes exploratory testing in which testers explore the software by self-knowledge to identify errors in software.

Automation Testing: – Checking or testing the application with the help of an automation tool or script is known as automation testing. In automation testing process, the manual testing process does involve. Automation testing is performed to re-run and repeatedly the test scenarios that were performed manually.

Tolls that are used for automation testing:-  QTP(Quick test prof), Selenium, APM (used for mobile application test).

Types of Testing:-

  1. White box testing
  2. Gray box testing
  3. Black box testing

 

White-box testing: – White-box testing is a process of testing the internal logic and structure of the code. White-box testing is also known as glass testing or open-box or transparent testing. If white-box testing is performed by a tester, then tester should have known about the internal workings of the code.

Or

Testing performed on the source code by the developers to check does the source code is working as expected or not is called white box testing. Checking each and every line of code is called white box testing.

Gray-box testing: – Grey-box testing is a technique to test the application with having a limited knowledge of the internal workings of an application. In grey-box testing, the tester has access to design documents and the database.

Block-box testing: – The technique of testing without having any knowledge of the internal workings of the application is called black-box testing. When a tester performing a black-box test, a tester will interact with the system’s user interface by providing inputs and examining outputs and verifying the functionality against the requirement specification.

Or

Verifying the functionality against the requirement specification is called black-box testing.