Prototype Model in Software Engineering
What is Prototyping Model?
Prototyping Model is a software development model in which prototype is built,
tested, and reworked until an acceptable prototype is achieved. It also creates
base to produce the final system or software. It works best in scenarios where the
project’s requirements are not known in detail. It is an iterative, trial and error
method which takes place between developer and client.
Prototyping Model Phases
Prototyping Model has following six SDLC phases as follow:
Step 1: Requirements gathering and analysis
A prototyping model starts with requirement analysis. In this phase, the
requirements of the system are defined in detail. During the process, the users of
the system are interviewed to know what is their expectation from the system.
Step 2: Quick design
The second phase is a preliminary design or a quick design. In this stage, a simple
design of the system is created. However, it is not a complete design. It gives a
brief idea of the system to the user. The quick design helps in developing the
prototype.
Step 3: Build a Prototype
In this phase, an actual prototype is designed based on the information gathered
from quick design. It is a small working model of the required system.
Step 4: Initial user evaluation
In this stage, the proposed system is presented to the client for an initial
evaluation. It helps to find out the strength and weakness of the working model.
Comment and suggestion are collected from the customer and provided to the
developer.
Step 5: Refining prototype
If the user is not happy with the current prototype, you need to refine the
prototype according to the user’s feedback and suggestions.
This phase will not over until all the requirements specified by the user are met.
Once the user is satisfied with the developed prototype, a final system is
developed based on the approved final prototype.
Step 6: Implement Product and Maintain
Once the final system is developed based on the final prototype, it is thoroughly
tested and deployed to production. The system undergoes routine maintenance
for minimizing downtime and prevent large-scale failures.
TEST PLAN: What is, How to Create (with Example)
Test Plan
A Test Plan is a detailed document that describes the test strategy, objectives,
schedule, estimation, deliverables, and resources required to perform testing for
a software product. Test Plan helps us determine the effort needed to validate
the quality of the application under test. The test plan serves as a blueprint to
conduct software testing activities as a defined process, which is minutely
monitored and controlled by the test manager.
How to write a Test Plan
You already know that making a Test Plan is the most important task of Test
Management Process. Follow the seven steps below to create a test plan as per
IEEE 829
1. Analyze the product
2. Design the Test Strategy
3. Define the Test Objectives
4. Define Test Criteria
5. Resource Planning
6. Plan Test Environment
7. Schedule & Estimation
8. Determine Test Deliverables
Step 1) Analyze the product
How can you test a product without any information about it? The answer is
Impossible. You must learn a product thoroughly before testing it.
The product under test is Guru99 banking website. You should research clients
and the end users to know their needs and expectations from the application
Who will use the website?
What is it used for?
How will it work?
What are software/ hardware the product uses?
Step 2) Develop Test Strategy
Test Strategy is a critical step in making a Test Plan in Software Testing. A Test
Strategy document, is a high-level document, which is usually developed by Test
Manager. This document defines:
The project’s testing objectives and the means to achieve them
Determines testing effort and costs
Back to your project, you need to develop Test Strategy for testing that banking
website. You should follow steps below
Step 2.1) Define Scope of Testing
Before the start of any test activity, scope of the testing should be known. You
must think hard about it.
The components of the system to be tested (hardware, software,
middleware, etc.) are defined as “in scope“
The components of the system that will not be tested also need to be
clearly defined as being “out of scope.”
Defining the scope of your testing project is very important for all stakeholders. A
precise scope helps you
Give everyone a confidence & accurate information of the testing you are
doing
All project members will have a clear understanding about what is tested
and what is not
How do you determine scope your project?
To determine scope, you must –
Precise customer requirement
Project Budget
Product Specification
Skills & talent of your test team
Step 2.2) Identify Testing Type
A Testing Type is a standard test procedure that gives an expected test outcome.
Each testing type is formulated to identify a specific type of product bugs. But, all
Testing Types are aimed at achieving one common goal “Early detection of all the
defects before releasing the product to the customer”
The commonly used testing types are described as following figure
Step 2.3) Document Risk & Issues
Risk is future’s uncertain event with a probability of occurrence and a potential
for loss. When the risk actually happens, it becomes the ‘issue’.
Risk Mitigation
Team member lack the required
Plan training course to skill up your members
skills for website testing.
The project schedule is too tight;
it’s hard to complete this project Set Test Priority for each of the test activity.
on time
Test Manager has poor
Plan leadership training for manager
management skill
A lack of cooperation negatively
Encourage each team member in his task, and
affects your employees’
inspire them to greater efforts.
productivity
Establish the scope before beginning work, pay a lot of
Wrong budget estimate and cost
attention to project planning and constantly track and
overruns
measure the progress
Step 2.4) Create Test Logistics
In Test Logistics, the Test Manager should answer the following questions:
Who will test?
When will the test occur?
Who will test?
You may not know exact names of the tester who will test, but the type of tester
can be defined.
To select the right member for specified task, you have to consider if his skill is
qualified for the task or not, also estimate the project budget. Selecting wrong
member for the task may cause the project to fail or delay.
Person having the following skills is most ideal for performing software testing:
Ability to understand customers point of view
Strong desire for quality
Attention to detail
Good cooperation
Step 3) Define Test Objective
Test Objective is the overall goal and achievement of the test execution. The
objective of the testing is finding as many software defects as possible; ensure
that the software under test is bug free before release.
To define the test objectives, you should do 2 following steps
List all the software features (functionality, performance, GUI…) which may
need to test.
Define the target or the goal of the test based on above features
Step 4) Define Test Criteria
Test Criteria is a standard or rule on which a test procedure or test judgment can
be based. There’re 2 types of test criteria as following
Suspension Criteria
Specify the critical suspension criteria for a test. If the suspension criteria are met
during testing, the active test cycle will be suspended until the criteria are
resolved.
Test Plan Example: If your team members report that there are 40% of test cases
failed, you should suspend testing until the development team fixes all the failed
cases.
Step 5) Resource Planning
Resource plan is a detailed summary of all types of resources required to
complete project task. Resource could be human, equipment and materials
needed to complete a project
The resource planning is important factor of the test planning because helps in
determining the number of resources (employee, equipment…) to be used for the
project. Therefore, the Test Manager can make the correct schedule & estimation
for the project.
This section represents the recommended resources for your project.
Human Resource
The following table represents various members in your project team
No. Member Tasks
Manage the whole project
1. Test Manager Define project directions
Acquire appropriate resources
Identifying and describing appropriate test
techniques/tools/automation architecture
Verify and assess the Test Approach
Execute the tests, Log results, Report the defects.
2. Tester
Tester could be in-sourced or out-sourced members, base on the
project budget
For the task which required low skill, I recommend you
choose outsourced members to save project cost.
Developer in
3. Implement the test cases, test program, test suite etc.
Test
Builds up and ensures Test Environment and assets
Test are managed and maintained
4.
Administrator
SupportTester to use the test environment for test execution
Take in charge of quality assurance
5. SQA members
Check to confirm whether the testing process is meeting specified
requirements
System Resource
For testing, a web application, you should plan the resources as following tables:
Resource
No. Descriptions
s
Install the web application under test
1. Server
This includes a separate web server, database server, and application
server if applicable
The testing tool is to automate the testing, simulate the user operation,
generate the test results
2. Test tool
There are tons of test tools you can use for this project such as Selenium,
QTP…etc.
You need a Network include LAN and Internet to simulate the real
3. Network
business and user environment
4. Computer The PC which users often use to connect the web server
Step 6) Plan Test Environment
What is the Test Environment
A testing environment is a setup of software and hardware on which the testing
team is going to execute test cases. The test environment consists of real business
and user environment, as well as physical environments, such as server, front end
running environment.
How to setup the Test Environment
Back to your project, how do you set up test environment for this banking
website?
To finish this task, you need a strong cooperation between Test Team and
Development Team
You should ask the developer some questions to understand the web application
under test clearly. Here’re some recommended questions. Of course, you can ask
the other questions if you need.
What is the maximum user connection which this website can handle at the
same time?
What are hardware/software requirements to install this website?
Does the user’s computer need any particular setting to browse the
website?
Step 7) Schedule & Estimation
In the article Test estimation, you already used some techniques to estimate the
effort to complete the project. Now you should include that estimation as well as
the schedule to the Test Planning
In the Test Estimation phase, suppose you break out the whole project into small
tasks and add the estimation for each task as below
Task Members Estimate effort
Create the test specification Test Designer 170 man-hour
Perform Test Execution Tester, Test Administrator 80 man-hour
Test Report Tester 10 man-hour
Test Delivery 20 man-hour
Total 280 man-hour
Then you create the schedule to complete these tasks.
Making schedule is a common term in project management. By creating a solid
schedule in the Test Planning, the Test Manager can use it as tool for monitoring
the project progress, control the cost overruns.
To create the project schedule, the Test Manager needs several types of input as
below:
Employee and project deadline: The working days, the project deadline, resource
availability are the factors which affected to the schedule
Project estimation: Base on the estimation, the Test Manager knows how long it
takes to complete the project. So he can make the appropriate project schedule
Project Risk : Understanding the risk helps Test Manager add enough extra time
to the project schedule to deal with the risks
Step 8) Test Deliverables
Test Deliverables is a list of all the documents, tools and other components that
has to be developed and maintained in support of the testing effort.
There are different test deliverables at every phase of the software development
lifecycle.
Test deliverables are provided before testing phase.
Test plans document.
Test cases documents
Test Design specifications.
Test deliverables are provided during the testing
Test Scripts
Simulators.
Test Data
Test Traceability Matrix
Error logs and execution logs.
Test deliverables are provided after the testing cycles is over.
Test Results/reports
Defect Report
Installation/ Test procedures guidelines
Release notes