1. Software development process
The system development process provides a series of activities for developers to follow. It consists of steps in which each step of the software development process will use the results of the previous step.
The software development process follows important steps needed for developers such as requirements analysis and specification documentation, system analysis and design, implementation of coding and unit tests, testing and finalization. The same is installation and maintenance.
There are many software development models such as V model, Waterfall, Iterative and Incremental (iterative and incremental models), RAD model (fast application development model), Spiral model (spiral model), Scrum. models … Although these models have different stages, the steps in the stages are the same as the basic steps in the software development process.
2. Test procedure
Requirement analysis: Testing will usually start taking requirements in the stages of software development life cycle. During the design phase, testers work with developers to determine aspects of a verified design and what parameters are tested.
Test planning: Testing strategies, test plans, creative testing … And a plan is needed because many activities will be performed during the test time.
Test design: Test procedures, design of scripts, Test Case, data used in software testing.
Prepare the environment: Prepare the test environment, device test. When participating in a project we need to know what environment we need to test the product, this can be confirmed with the customer, the PO of the project.
For example: The product to be tested on Windows operating system, Chrome browser, lastest version
Execution: After the official build is based on the test script, the testcases have designed us to test. Based on the plans, test documents, and any bug reports found for the development team.
Test reports: After the test is completed, the Tester generates the final data and report on their testing efforts and whether or not they are ready to release the software. Analyze test results or defect analysis done by the development team in conjunction with the customer to make a decision about what deficiencies need to be delivered, fixed and abandoned (i.e. finding get the software working correctly) or resolve it later.
Retest defect: Once a defect has been handled by the development team, it must be verified by the test team.
Regression testing: It is common to build a small test program that is a collection of tests for each new integration, repair, or software fixation, to ensure that the latest offerings have not broken. Destroy anything and the entire software still works correctly.
3. What is software testing?
Software testing is the process of executing a program with the purpose of finding errors. Software testing ensures that software products meet exactly, fully and strictly according to customer requirements and product requirements. Software testing also provides software-independent goals and insights, which enables the evaluation and understanding of software implementation risks. Software testing enables you to make the most of creative and critical thinking so that you can discover points that others have not seen.
3.2 Why software testing? What is the test objective?
- Reason for software testing:• Software testing is a decisive factor of SQA and a typical stage of reviewing design specification and coding.
• Want to see the software as part of the operating system (see product) • Limiting the costs of future failure (efficiency)
• A good plan to improve the quality of the development process (solution)
- Importance of software testing:• Cost of testing accounts for: 40% of total development effort ≥ 30% of total development time
• With software affecting life costs can be 3 to 5 times the total cost of adding up.
- Short-term goal: Try to create test cases to show the software error with the lowest cost (time, cost). A successful test case is to reveal defects, and bring additional benefits.
- Final goal: have a good program, cost less
4. 7 Test principles
1. Testing gives an error
Software testing can only prove that software is defective but cannot prove that the software is no longer defective. Software testing helps reduce the probability of errors not found in software. So a good test case is needed to cover all possible cases to find as many errors as possible.
2. Test exhaustion is not possible
This principle means that testing everything including both input and preconditioning conditions is not feasible for cases with lots of complex input and system values. Instead we should use risk analysis, testing techniques and priorities to focus on testing the parts that are at higher risk of error.
3. Test as soon as possible
Testing should be started as early as possible in the software development life cycle. The sooner the bug is found, the more time and cost savings are there
4. The concentration of the error
Errors often focus on the main functions that are related to other functions in the system. Normally, we will find 80% of system errors in 20% of the system’s main functions. So it’s important to test important functions to find bugs and test functions close to them, in order to find more bugs.
5. The pesticide paradox
If the same test case we test again and again will be greasy and will not find a new bug. The effectiveness of the tests will decrease after a few runs so we should think of many different test perspectives and always update in the next tests.
6. Testing depends on the context
Testing is different in different contexts. If you think web and mobile tests will use the same test views, that’s wrong.
7. There are no mistakes
Not finding fault on a product does not mean that the product is ready to be released to the market that test case can create for the purpose of checking whether the system is working properly or not. It is not about finding a new error. According to principle 1 and principle 2, it is not possible to test all the cases exhausted and it cannot be proved that the system has no errors, so the system always has errors looking for inside.