SDLC
SDLC - Create
- Most labour-intensive stage
- Programmers write the code
- UI designers create the interface
- (Unit) Testing – Very important at this stage
- Users may be involved as 'Consultants!'
- May involve re-design and re-writing – Iteration
- Patience required!
- Flexibility required!
SDLC – Evaluate
- Testing essential to ensure
- Functionality
- Correctness
- Consistency
- Unit testing should be done at the Coding stage
- More testing remains to be done...
- Functionality testing
- System testing
-
Acceptance testing
-
Test Data:
- Conditions/Inputs that produce a known result
- Used to test every part of the software
- Must be prepared in advance and independently
- Testing can be manual or automatic
- Should include
- Normal values
- Incorrect values
- Extreme values
-
Boundary values
-
Functional Testing
- Compliance with specification – fit for purpose
- Usability
- User friendly?
- Intuitive
- Easy to find ones way around the syste?
- Accessibility – easy to access functions of systems?
- Feedback – appropriate and useful error messages
- Recovery from errors – does it crash?
- Security? Too easy to access system?
- Identify Functions or Features of the system
- Then for each one:
- Create test data
- Determine expected output
- Carry out test(s)
- Compare actual with expected results
- System testing
- Looks at complete system rather than Functions
- Ensures conformance with agreed specification
- Alpha testing
- In-house
- Satisfies technical team that the system works
- Beta testing
- On-site
- Gives assurance to the client that system is fit for purpose
- Alpha testing
- In-house
- First line of defence!
- Test as many paths through the system as possible
- Find bugs before the users discover them!
- Beta testing
- On-site
- Early (Beta) version of system released to users.
- Users test the system in 'real-life' environment
- Record errors and notify development team
- Wider range of use-cases and scenarios can be tested
- Continues until all (identified!) issues have been resolved
- When all issues have been resolved, the user will be asked to Sign-off
- Aka. Acceptance testing
- Evaluation stage
- After Alpha and Beta testing has been completed
- Product has probably been signed-off and in use
- Has been deemed 'Acceptable' but not perfect!
- Often a trade-off of Features vs Time available
- Modifications may be required
- Unforeseen 'features' may have been deferred to avoid Scope-Creep
- Might be time to plan Version 2
- Evaluation Stage – Questions to be Asked
- What about the Product?
- Does the system do what was required?
- How well does it meet requirements... in terms of:
- Introduction to workplace?
- User Ownership?
- Response time?
- Coping with data volumes?
- Reliability?
- Usability?
- What about the Project?
- How about Cost vs Budget?
- What about Value for Money?
- How did we score on the timescale?
- How easy to maintain and enhance the systems?
- How long will it last?
- What have we learned from the project?
SDLC – Document
- Effective Communication is KEY
- Informal Communication:
- Meetings, Phone calls, email, etc.
- Formal Communications:
- Project documentation, Feasibility study, Project plan, etc.
- Informal Communications:
- Meetings – Minutes should be recorded and made available as required
- Decisions made
- Actions agreed
- Issues to be resolved
- Phone Calls
- Any important or relevant phone calls should be logged in a diary or similar
- Correspondence
- Letters
- Emails and other messaging
- Changes to Requirements, Plan or Design should be documented
- Project Documentation
- Feasibility study
- Requirements specification
- Design documents
- Project plan
- Source code – including Libraries, etc.
- NOTE: Code should include Comments and other technical support
- Test plans and Test data
- Test results and details
- System Documentation
- Installation and Setup guides
- Training and End-user Documentation
-
Evaluation report
-
Reporting
- Inform stakeholders of progress
- Regularly!
- Manage expectations
-
Maintains Trust and Confidence
-
Reporting
- Avoid technical language (jargon) where possible
- Identify and report potential problems ASAP
- Timely information helps timely intervention
- Reduces risk of Cost and Time overruns
Software Project
- Usually, a Need or Problem is identified
- Urgent response needed
- Competitive factors
- Changing marketplace
- Changes in legislation
- Need to control costs
- Improve lead / response time
- GDPR
- etc..
- The main players:
- Business Analyst
- Project manager
- Systems Analyst
- Designer
- Developer
- Tester
- User liaison and training
- Administrative support